Skip to content
This repository has been archived by the owner on Dec 23, 2019. It is now read-only.

sanger-archive/lims-core

Repository files navigation

Overview

This gem implements the core functionalities of the LIMS (Laboratory Information Management System). It's not meant to be a stand alone application but the core library of the LIMS server.

For more information consult the documentation.

Installation

gem install lims-core

Or, if you are using bundler , add the following line

 gem :lims-core, :git => "git+ssh://git@github.com/sanger/lims-core.git'

in your Gemfile.

Documentation

The documentation is generated using yard and can be found under the doc/ directory or using a yard server

Developers Guide

Gem requirements

Ideally each should be loadable on its own. This mean that every file should require everything it needs. The exception is for gems re-opening ruby basic classes as facet do. The common requirements are grouped in the lib/common.rb file.

For the user convenience, requiring a directory should requires everything underneath. However, requiring lims-core will require Persistence, but not the subdirectories of it (specific to each different stores like Sequel, or Logger). This to not force to install all the dependencies specific to each store.

Documentation Guide

The documentation is written using yard. It allows to write documentation within the doc and add typing hints/ expectations. The recommended format for stand alone documentation files is markdown, however it's easier to keep the native markup language used by yard, i.e. the rdoc one. This allows the code to be parsed via rdoc and doesn't need the extra spaces at the end of a line needed by markdown.

However, when the usage of pure markdown seems appropriate, it's still possible to the use @markup switch.

Some documentation can also be added in the specs.

Tests

We are using rspec.