No commit activity in last 3 years
No release in over 3 years
JTRailsToolbox contains a list of common libs used for Ruby On Rails development.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Project Readme

JTRailsToolbox

Gem Version

JTRailsToolbox contains a list of common libs used for Ruby On Rails development.

Installation

JTRailsToolbox is distributed as a gem, which is how it should be used in your app.

Include the gem in your Gemfile:

gem 'jt-rails-toolbox', '~> 2.0'

Create a jt-toolbox.yml file:

rails g jt:toolbox

A simple configuration of jt-toolbox.yml file:

production:
  exception:
    slack:
      webhook_url: https://hooks.slack.com/services/XXXXXXXX
    email_prefix: '[ERROR]'
    sender_address: "Your website <error@example.com>"
    exception_recipients:
      - my_email_for_errors@example.com
  files:
    folder: upload
  mail:
    from: "Your website <contact@example.com>"
    delivery_method: smtp
    smtp_settings:
      address: smtp.gmail.com
      port: 587
      domain: example.com
      user_name: username
      password: password
      authentication: plain
      enable_starttls_auto: true
  hosts:
    host: https://www.example.com
    asset_host: https://asset.example.com
    cdn_host: https://cdn.example.com
  sidekiq:
    redis_url: redis://localhost:6379/my_app
    network_timeout: 5

What's in it?

http_accept_language

To install http_accept_language you just have to add a line in your ApplicationController

class ApplicationController < ActionController::Base
  include HttpAcceptLanguage::AutoLocale

end

Dotenv

It's a good practice to not include credentials for third party services in your code. You can defined it in a .env file which I recommend to not include in your git repository.

Exception Notification

If exception is not set in jt-toolbox.yml file, Exception Notification is disabled. In addition to the default ignored exceptions, the following exceptions are also muted:

  • ActionController::InvalidCrossOriginRequest
  • ActionController::InvalidAuthenticityToken

Paperclip

  • convert_options is set to -strip, which means all metadata of images are removed, this is used for reduced the weight of images.
  • use_timestamp is et to false, it's a good practice to have unique url for image and url without parameters, instead of using the timestamp we use the fingerprint of the image. More informations here.
  • the default fodler of images is upload (in public folder)

Sidekiq

  • configured for ActiveJob
  • configured to send notification error with Exception Notification
  • redis url is by default redis://localhost:6379/0 and the namespace is #{name of your application} for production and #{name of your application}-{environment} for others.

Warning

Don't forget to install redis server and to launch sidekiq with:

bundle exec sidekiq -e $RAILS_ENV -q default -q mailers -d -L log/sidekiq.log -P tmp/pids/sidekiq.pid

Hostname

  • host is the hostname of your website, it's used for setting the host when you email
  • asset_host is the hostname of the assets server. By default equal to host.
  • cdn_host is the hostname for serving uploaded files with paperclip. By default equal to asset_host.

It's a good practice to have a different domains for your web server and your file server (search "Cookieless Domain" on google for more informations).

ActionMailer

ActionMailer can be configured easily just with jt-toolbox.yml file.

Helper methods

google_anaytics_tag

It will add automatically in production environment the javascript code for Google Analytics. You just have add at the end of your app/views/layouts/application.html.erb file:

<%= google_anaytics_tag 'UA-XXXXXXX-X' %>

Author

License

JTRailsToolbox is released under the MIT license. See the LICENSE file for more info.