Need help with rack-dev-mark?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

dtaniwaki
351 Stars 34 Forks MIT License 237 Commits 1 Opened issues

Description

Show dev mark on development env

Services available

!
?

Need anything else?

Contributors list

# 17,497
Rails
sidekiq
Kuberne...
knative
173 commits
# 450,828
Rails
rack
Erlang
Elixir
9 commits
# 155,057
Ruby
s3
Rails
Emacs
3 commits
# 265,443
Rails
HTML
Shell
batchin...
3 commits
# 633,759
Ruby
Rails
rack
2 commits
# 11,316
Ruby
Rails
object-...
faceboo...
1 commit
# 490,381
Rails
rack
HTML
Shell
1 commit
# 397,580
Python
HTML
Django
Rails
1 commit
# 89,140
Markdow...
imagema...
Swift
ios-ui
1 commit
# 174,121
Shell
HTML
PHP
Nuxt.js
1 commit
# 75,410
Ruby
sequel
Rails
gtd
1 commit
# 413
Zsh
assembl...
Haskell
posix
1 commit

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 githubforkribbon 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 rackdevmark 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.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.