BioTCM is designed as a base gem to build advanced applications on Bioinformatics.
Install BioTCM from the command prompt:
$ gem install biotcm
We believe in self-documentation coding, so you could find all APIs, examples and guides you need in the documents.
Feel free to send pull requests. You could help us
- integrate your awesome application into BioTCM ecosystem
- refactor codes to improve the code climate
- write more tests to increase the test coverage
- refine docs to help more users
We develop this gem under some philosophies and some styles. Please follow the style while you are making amazing things.
- self-explanatory coding
- Do not Repeat Yourself (DRY)
- Convention over Configuration (CoC)
Practically we follow ruby-style-guide, a community-driven ruby coding style guide, and use Rubocop to check it.
For Atom users, we strongly recommend to use linter-rubocop package to lint Ruby code on the fly.
We write YARD document within codes to generate API docs and example usages for users and use (part of) these sections to describe a class or module.
- Overview (default) : briefly describe the purpose and the usage
- Requirement
- Example Usage
- Other Supplementary : such as the brief introduction of the database (this subtitle could be changed)
- Reference
For classes & modules, we
- define VERSION for each script or database class
- write the changes in the commit message and HISTORY.md
- use following structure in module/class definitions
- Special handling, such as autoloader
- Extends and includes
- Constants
- Attribute macros and other macros
- Public class methods
- Public instance methods
- Protected and private methods
- Special handling, such as overwriting (to escape YARD documenting)
Having no explicit map of our gem, we add new Class or Module when we need it, which make the popular test suite RSepc doesn't suit our need quite well. In such case, we choose to write our tests with minitest gem.
It's hard to decide when to test but better to write some tests for you module/class to make others understand the design purpose more easily.
Copyright (c) 2014-2019 BioTCM group under the MIT license.