Hard Problems Made Easy
Ruby on rails icon

Ruby on Rails

We really like Ruby. It’s a great programming language: dynamic, and general-purpose, so you can use it in a lot of industries. Ruby on Rails is a great web framework; it’s simple to learn but powerful enough for even complex applications, and you can use it for anything from small internal projects to big customer facing sites.

We have experience using Ruby from 1.0 to 3.0 and beyond, and we can help you upgrade if you need. Of course, we’ve used Ruby on Rails and Sinatra, from ancient versions to those more current. 

We work with pure Ruby, Ruby on Rails, Sinatra, or whatever else you might be running – we work on both legacy projects and greenfield projects, whether you choose to use the framework or not.

We can help with a wide range of Ruby projects, including web applications, command-line tools, batch scripts, and other programming tasks that don’t use a framework.

Of course, we are not limited to web development: Ruby can be used to build anything in any domain that you might want. We’ve worked with a wide variety of Ruby-based projects, from Ruby applications to web applications.

In fact, Ruby can be used to leverage other technologies quite well; when we work with Ruby applications, we have a wide variety of experience with adjunct technologies: from MySQL databases to Redis, from PostgreSQL to MongoDB – we have experience working with all of these.

We’ve also used many Rails plugins – popular because of the rapid and prolific development of plugins, and their ease of use. We’ve worked with plugins such as Omniauth, CarrierWave, ActiveScaffold, and many others. 

You might say we “wrote the book” on Ruby Gems, the libraries used with Ruby – or at least our president did, David Berube, who wrote a book called “Practical Ruby Gems,” which was published in 2007.

Did You Know…

The President of Durable Programming, David Berube, wrote two books on Ruby and Ruby on Rails: Practical Ruby Gems and Practical Reporting with Ruby on Rails. He also co-wrote Practical Rails Plugins along with a fellow called Nick Plante. Although he’s worked with quite a few different languages, he loves writing Ruby code and working on Ruby applications.

A Well-Read Lapidary…

We have a lot of experience with many different Ruby Gems. Here is just a sampling of the Ruby and Ruby on Rails libraries we have worked with:

action-cable-testing
actionpack
activeadmin
activeadmin_addons
active_attr
activejob-perform_later
activemodel
active_model_attributes
active_model_serializers
activemodel-serializers-xml
activerecord
activerecord-copy
activerecord-deprecated_finders
active_record_doctor
activerecord-import
activerecord-jdbc-adapter
activerecord-jdbcmysql-adapter
activerecord-jdbcpostgresql-adapter
activerecord-jdbcsqlite3-adapter
active_record_query_trace
activerecord-session_store
activeresource
activesupport
activity_notification
acts_as_list
acts_as_shopping_cart
acts-as-taggable-on
acts-as-taggable-on
acts_as_votable
addressable
amoeba
ancestry
annotate
api_ruby_base
appraisal
arel
aruba
asciidoctor
asset_sync
authlogic
autoprefixer-rails
auto_strip_attributes
awesome_print
aws-sdk
aws-sdk-s3
babel-transpiler
bazaar
bb-ruby
bcrypt
bcrypt_pbkdf
benchmark-ips
bluecloth
bogus
bootsnap
bootstrap-sass
brakeman
brotli
browser
browserstack-local
browser-timezone-rails
bugsnag
bugsnag-capistrano
bugsnag-maze-runner
builder
bullet
bundler
bundler-audit
bundler-leak
bunny-mock
byebug
cancancan
capistrano
capistrano3-puma
capistrano-bundler
capistrano-maintenance
capistrano-rails
capistrano-rbenv
capybara
capybara-screenshot
capybara-select-2
carmen
case
caxlsx
celluloid
chartkick
chromedriver-helper
chronic
classy_enum
closure_tree
cloudflare-rails
cocoon
cod
codeclimate-test-reporter
codecov
coderay
coffee-rails
coffee-script
coinbase_commerce
combine_pdf
commonmarker
concourse
concurrent-ruby
concurrent-ruby-edge
concurrent-ruby-ext
connection_pool
contracts
counter_culture
countloc
countries
country_select
coveralls
coveralls_reborn
crass
creole
cucumber
cucumber-rails
curb
cypress-on-rails
daemons
dalli
danger
database_cleaner
database_cleaner-active_record
database_cleaner-core
database_cleaner-redis
date_validator
db-query-matchers
debugger
deep_cloneable
delayed_job
delayed_job_active_record
delayed_job_maintenance
delayed_job_web
derailed_benchmarks
devise
devise_invitable
diffy
dotenv-rails
draper
draper-cancancan
dry-inflector
duktape
ed25519
ejs
elasticsearch
elasticsearch-api
elasticsearch-extensions
elasticsearch-model
elasticsearch-persistence
elasticsearch-rails
elasticsearch-transport
email_spec
email_validator
embedly
em-http-request
em-synchrony
encryption
equivalent-xml
erubi
erubis
eventmachine
exception_notification
excon
execjs
ey_config
factory_bot
factory_bot_rails
factory_girl
factory_girl_rails
faker
fakeredis
fakes3
fakeweb
fast_jsonapi
ffi
figaro
flog
fog-aws
font-awesome-rails
footrest
foreman
foundation-rails
friendly_id
gem-compiler
gem lib
geocoder
get_process_mem
github_changelog_generator
github-markup
globalize
globalize-accessors
globalize-versioning
gmail_xoauth
gocardless
google-analytics-rails
google-api-client
google-id-token
gouteur
groupdate
growl
guard
guard-bundler
guard-minitest
guard-preek
guard-rake
guard-rspec
haml
hamlit
haml-rails
hashdiff
hashie
has_scope
heap
heredoc_unindent
highcharts-rails
hiredis
hoe
hoe-bundler
hoe-debugging
hoe-doofus
hoe-gemspec
hoe-gemspec2
hoe-git
hoe-rubygems
hoe-travis
holidays
hometown
html2haml
htmlentities
http
http_accept_language
httparty
httpclient
humanizer
i18n
i18n-js
ice_nine
idn
idn-ruby
image_processing
inch
inflecto
ingreedy
inherited-attributes
irb
iso_country_codes
itunes-receipt
jbuilder
jdbc-mysql
jdbc-postgres
jdbc-sqlite3
jekyll
jekyll-redirect-from
jekyll-sitemap
jeweler
jqplot-rails
jquery-atwho-rails
jquery-datatables-rails
jquery-fileupload-rails
jquery-minicolors-rails
jquery-rails
jquery-turbolinks
jquery-visibility-rails
jruby-openssl
json
jsonb_accessor
json
json_pure
json-schema
json-schema-generator
json_spec
kaminari
kgio
knapsack
koala
kramdown
kt-paperclip
kt-paperclip'
launchy
ledermann-rails-settings
less
letter_opener
librato-metrics
libsaml
liquid
listen
livescript
lograge
lorem
m
mail
mailboxer
mailcatcher
mail_gate
mailgun_rails
malloc_trim
markaby
maruku
md-ruby-eval
mechanize
memory_profiler
metamagic
method_profiler
middleman
mime-types
mini_magick
mini_portile
mini_portile2
minitest
minitest-line
minitest-reporters
mocha
mock_redis
money
money-rails
money-tree
mongrel
multi_json
mysql
mysql2
net-http-persistent
net-http-server
net-imap
net-pop
net-sftp
net-smtp
net-ssh
newrelic_rpm
nifty-generators
nokogiri
numbers_in_words
oauth2
octokit
oj
okcomputer
omniauth
omniauth-facebook
omniauth-google-oauth2
omniauth-linkedin
omniauth-oauth2
omniauth-openid
omniauth-rails_csrf_protection
omniauth-twitter
open_uri_redirections
org-ruby
os
pagy
pandarus
pandoc-ruby
paperclip
paper_trail
parallel
parslet
pdf-forms
pdf-inspector
pdf-reader
pg
pghero
pg_query
pg_search
phony_rails
pimpmychangelog
pluck_to_hash
posix-spawn
possessive
prawn
premailer-rails
progress_bar
pronto
pronto-flay
pronto-poper
pronto-reek
pronto-rubocop
protected_attributes_continued
pry
pry-byebug
pry-coolline
pry-nav
pry-rails
pry-stack_explorer
psych
public_suffix
puma
puma_worker_killer
pundit
pusher
query_count
queue-processor
quickbooks-ruby
rabl
racc
rack
rack-attack
rack-cors
rack-freeze
rack-mini-profiler
rack-protection
rack-proxy
rack-test
rack-timeout
radius
rails
rails'
rails_12factor
rails3-generators
rails_admin
rails_autolink
rails_autoscale_agent
rails-controller-testing
rails-i18n
rails-observers
rails-pg-extras
rainbows
rake
rake
rake-compiler
rake-compiler-dock
rake'source
ransack
rb-fsevent
rb-readline
rdiscount
rdoc
recaptcha
recurring_select
recursive-open-struct
redcarpet
RedCloth
redis
redis
redis-actionpack
redis-activesupport
redis-namespace
redis-rack
redis-rack-cache
redis-rails
redis-semaphore
redis-store
redjs
reel-rack
regexp_property_values
remote_syslog_logger
request_store
responders
resque
resque-batched-job
resque_mailer
resque-status
resque-workers-lock
rest-client
restforce
retryable
rexical
rexml
rollbar
ronn
roo
roo-xls
rr
rspec
rspec-activemodel-mocks
rspec-collection_matchers
rspec-core
rspec-expectations
rspec-html-matchers
rspec-its
rspec_junit_formatter
rspec-mocks
rspec-rails
rspec-sidekiq
rswag
rubinius-coverage
rubinius-developer_tools
rubocop
rubocop-performance
rubocop-rails
rubocop-rspec
ruby-debug
ruby-debug19
ruby-debug-base
rubyforge
ruby-graphviz
ruby-ole
ruby-prof
ruby-progressbar
ruby-saml
rubysl
rubysl-bigdecimal
rubysl-coverage
rubysl-mutex_m
rubysl-open3
rubysl-openssl
rubysl-singleton
rubysl-test-unit
rubyzip
sass
sassc
sassc-rails
sass-rails
savon
scout_apm
scrypt
sdoc
seamless_database_pool
second_level_cache
select_by
selenium-webdriver
selenium-webdriver
sentry-rails
sentry-ruby
shortener
shoulda
shoulda-matchers
sidekiq
sigdump
signet
simple_calendar
simplecov
simplecov-cobertura
simplecov-console
sinatra
sitemap
slackistrano
slack-notifier
slim
slim-rails
smarter_csv
sneakers
sneakers_handlers
spring
spring-commands-rspec
spring-watcher-listen
sprockets
sqlite3
sqlite3-ruby
squasher
sshkit
stackprof
state_machine
state_machines-activerecord
streamio-ffmpeg
StreetAddress
stripe
strong_password
stylus
talks
tddium
telephone_number
temple
term-ansicolor
terminal-notifier
terminal-notifier-guard
terser
test_after_commit
test_engine
test-prof
test-unit
text-highlight
therubyracer
therubyrhino
thin
thor
tilt
timecop
tinder
tins
tinymce-rails
tinymce-rails-documentupload
tlsmail
translation
transpec
travis-lint
trinidad
trix-rails
trizetto-api
truncate_html
tty-prompt
turbolinks
twilio-ruby
twitter-bootstrap-rails-confirm
twitter-text
typescript-node
typhoeus
tzinfo
tzinfo-data
uglifier
ultrahook
unicode-emoji
uniform_notifier
unread
validates_timeliness
vcr
wannabe_bool
wdm
web-console
webdrivers
webmock
webpacker
webrat
webrick
websocket-rails
whenever
wicked_pdf
wikicloth
will_paginate
wkhtmltopdf-binary
wkhtmltopdf-binary-edge
wkhtmltopdf-heroku
wlang
xmlenc
yajl-ruby
yaml
yard
Let us fix that problem for you.