Ruby

Various notes, links, and information about the Ruby programming language (wikipedia).

Guides and Tutorial

Feature Flags

Feature flags can be used to enable and disable code dynamically. This makes it easier to do Continuous Deployment since a new feature can be enabled in a limited manner.

There are a variety of gems which implement features flags in various ways:

Sources and Discussion

Invariants and Assertions

Software Assertions are statements in a routine which should always be true. There statements may or may not be disabled in production.

A simple version of this could be implemented just by raising exceptions. However there are gems which allow for better control and make the difference between exceptions and assertions more clear.

Building Gems

Guidelines for building/maintaining gem projects

When setting up TravisCI and CodeClimate, for a gem supporting Ruby 2.0 and up, the following .travis.yml can be used:

language: ruby
os:
- linux
- osx
sudo: false
rvm:
  - 2.0
  - 2.1
  - 2.2
  - 2.3
  - 2.4
  - 2.5
  - ruby-head
matrix:
  allow_failures:
    - rvm: ruby-head
    - rvm: 2.0
      os: osx
    - rvm: 2.4
      os: osx
after_success:
  - bundle exec codeclimate-test-reporter

You will also need to add the CODECLIMATE_REPO_TOKEN to the TravisCI environment variables, getting the value from the Code Climate repository Settings > Test Coverage.

Deprecating a project

Once a gem is no-longer maintained, it should be clearly marked as such. Depending upon where the repository is hosted you should set as many of these points as possible.

  • update the title in the README.md to
# :no_entry: DEPRECATED project name
  • add the tags
    • unmaintained
    • deprecated
    • outdated
  • mark the repository as archived

Reference

Ruby Blog Entires

Finally, "Is Ruby Dead?"

A questions which seems to be continuously asked, but as Ruby continues to be a great language to write in, and pretty alive I think the answer a solid no.

There is also a website which answers the question Is Ruby Dead? And their answer is also NO.

But rubyisdead.science has graphs, fake quotes and "science". (And a tongue firmly planted in check.)