All Projects → dtaniwaki → Rack Dev Mark

dtaniwaki / Rack Dev Mark

Licence: mit
Show dev mark on development env

Programming Languages

ruby
36898 projects - #4 most used programming language

Labels

Projects that are alternatives of or similar to Rack Dev Mark

Letsencrypt heroku
Automated letsencrypt setup for heroku
Stars: ✭ 58 (-83.43%)
Mutual labels:  rails, rack
Rackula
Generate a static site from any rack middleware.
Stars: ✭ 49 (-86%)
Mutual labels:  rails, rack
Lamby
Simple Rails & AWS Lambda Integration 🐑🛤
Stars: ✭ 336 (-4%)
Mutual labels:  rails, rack
Split
📈 The Rack Based A/B testing framework
Stars: ✭ 2,539 (+625.43%)
Mutual labels:  rails, rack
Thin
A very fast & simple Ruby web server
Stars: ✭ 2,170 (+520%)
Mutual labels:  rails, rack
Rack Weixin
微信公众平台 开放消息接口 Rack Middleware
Stars: ✭ 105 (-70%)
Mutual labels:  rails, rack
Agoo
A High Performance HTTP Server for Ruby
Stars: ✭ 679 (+94%)
Mutual labels:  rails, rack
Vite ruby
⚡️ Vite.js in Ruby, bringing joy to your JavaScript experience
Stars: ✭ 112 (-68%)
Mutual labels:  rails, rack
Bugsnag Ruby
Bugsnag error monitoring & reporting software for rails, sinatra, rack and ruby
Stars: ✭ 211 (-39.71%)
Mutual labels:  rails, rack
Rack Reducer
Declaratively filter data via URL params, in any Rack app, with any ORM.
Stars: ✭ 241 (-31.14%)
Mutual labels:  rails, rack
Six
Ultra lite authorization library
Stars: ✭ 323 (-7.71%)
Mutual labels:  rails
Milia
Easy multi-tenanting for Rails5 (or Rails4) + Devise
Stars: ✭ 326 (-6.86%)
Mutual labels:  rails
Clearance
Rails authentication with email & password.
Stars: ✭ 3,467 (+890.57%)
Mutual labels:  rails
Codervault
An Open Source, Self-Hosted, Snippet Manager
Stars: ✭ 315 (-10%)
Mutual labels:  rails
Ansible Rails
Ansible: Ruby on Rails Server
Stars: ✭ 317 (-9.43%)
Mutual labels:  rails
Tomatoes
Pomodoro Technique® online time tracker
Stars: ✭ 344 (-1.71%)
Mutual labels:  rails
Housepricing
HousePricing旨在提供房价的可视化预测,帮助用户更好的评估房产和预测未来的价格(dev)
Stars: ✭ 314 (-10.29%)
Mutual labels:  rails
Maktoub
A simple newsletter engine for Rails
Stars: ✭ 308 (-12%)
Mutual labels:  rails
Wechat Starter
Template for developing wechat in rails
Stars: ✭ 347 (-0.86%)
Mutual labels:  rails
Api.rss
RSS as RESTful. This service allows you to transform RSS feed into an awesome API.
Stars: ✭ 340 (-2.86%)
Mutual labels:  rails

rack-dev-mark

Gem Version Download Dependency Status Build Status Coverage Status Code Climate

Differentiate development environment from production. You can choose themes to differentiate the page.

The running sample is available.

You can also try this gem on Heroku.

Deploy

Screenshot

screenshot development

On Development Env

screenshot development

On Production Env

screenshot production

Installation

Add the rack-dev-mark gem to your Gemfile.

gem "rack-dev-mark"

And run bundle install.

For Rack App

require 'rack/dev-mark'
use Rack::DevMark::Middleware
run MyApp

Middleman

Add the settings in config.rb.

require 'rack/dev-mark'
Rack::DevMark.env = "Your Env"
use Rack::DevMark::Middleware

For Rails App

In config/environments/development.rb

Rails.application.configure do
  config.rack_dev_mark.enable = true
end

Or In config/application.rb

module MyApp
  class Application < Rails::Application
    config.rack_dev_mark.enable = !Rails.env.production?
  end
end

Or Alternatively, use generator

bundle exec rails g rack:dev-mark:install

The middleware sets title and github_fork_ribbon themes as default.

Exclude Multiple Environments in Rails

Show the dev mark except env1, env2, env3.

In config/application.rb

module MyApp
  class Application < Rails::Application
    config.rack_dev_mark.enable = !%w(env1 env2 env3).include?(Rails.env)
  end
end

Rails on Heroku

Since Heroku uses production env for staging. You can't use the settings above. However, the gem provide an easier way to set it up on Heroku. Just set the environment variable on the environment in which you want to show the mark.

heroku config:set RACK_DEV_MARK_ENV=staging

That's it!

Custom Rack Middleware Order

rack-dev-mark should be inserted before ActionDispatch::ShowExceptions becase we want to show the dev mark on the error pages as well. However, it does not work well if it's inserted by incorrect order with some other rack middlewares. So, it provides the setting of inserted place.

module MyApp
  class Application < Rails::Application
    config.rack_dev_mark.insert_before SomeOtherMiddleware
  end
end

config.rack_dev_mark.insert_after is also available to insert rack-dev-mark after a middleware.

Here is the compatibility list which many people often ask.

Custom env string

Set the custom env string maually.

module MyApp
  class Application < Rails::Application
    config.rack_dev_mark.env = 'foo'
  end
end

Temporarily disable the dev mark

skip_rack_dev_mark controller helper works like around_filter.

class FooController < ApplicationController
  skip_rack_dev_mark only: [:iframe]

  def index
    # Do something
  end

  def iframe
    # Do something
  end
end

In this case, only index action will insert the dev mark.

I18n Support

Get i18n string with rack_dev_mark locale strings.

e.g. In config/locale/rack_dev_mark.ja.yml

ja:
  rack_dev_mark:
    development: '開発中'
    staging: 'ステージング'

Then, you will get translated string on the pages!

Custom Theme

Although the default themes are title and github_fork_ribbon, you can create your own themes inheriting Rack::DevMark::Theme::Base.

require 'rack/dev-mark/theme/base'

class NewTheme < Rack::DevMark::Theme::Base
  def insert_into(html, env, params = {})
    # Do something for your theme
    html
  end
end

class AnotherTheme < Rack::DevMark::Theme::Base
  def insert_into(html, env, params = {})
    # Do something for your theme
    html
  end
end

Then, insert them in your app.

For Rack App

use Rack::DevMark::Middleware, [NewTheme.new, AnotherTheme.new]

For Rails App

In config/application.rb

module MyApp
  class Application < Rails::Application
    config.rack_dev_mark.theme = [NewTheme.new, AnotherTheme.new]
  end
end

You can add any combination of themes. See more about themes.

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

Copyright

Copyright (c) 2014 Daisuke Taniwaki. See LICENSE for details.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].