visual-environments 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile ADDED
@@ -0,0 +1,13 @@
1
+ source "http://rubygems.org"
2
+ # Add dependencies required to use your gem here.
3
+ # Example:
4
+ # gem "activesupport", ">= 2.3.5"
5
+
6
+ # Add dependencies to develop your gem here.
7
+ # Include everything needed to run rake, tests, features, etc.
8
+ group :development do
9
+ gem "rspec", "~> 2.3.0"
10
+ gem "bundler", "~> 1.0.0"
11
+ gem "jeweler", "~> 1.5.2"
12
+ gem "rcov", ">= 0"
13
+ end
data/Gemfile.lock ADDED
@@ -0,0 +1,28 @@
1
+ GEM
2
+ remote: http://rubygems.org/
3
+ specs:
4
+ diff-lcs (1.1.2)
5
+ git (1.2.5)
6
+ jeweler (1.5.2)
7
+ bundler (~> 1.0.0)
8
+ git (>= 1.2.5)
9
+ rake
10
+ rake (0.8.7)
11
+ rcov (0.9.9)
12
+ rspec (2.3.0)
13
+ rspec-core (~> 2.3.0)
14
+ rspec-expectations (~> 2.3.0)
15
+ rspec-mocks (~> 2.3.0)
16
+ rspec-core (2.3.1)
17
+ rspec-expectations (2.3.0)
18
+ diff-lcs (~> 1.1.2)
19
+ rspec-mocks (2.3.0)
20
+
21
+ PLATFORMS
22
+ ruby
23
+
24
+ DEPENDENCIES
25
+ bundler (~> 1.0.0)
26
+ jeweler (~> 1.5.2)
27
+ rcov
28
+ rspec (~> 2.3.0)
data/LICENSE.txt ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2011 Zachery Moneypenny, David van Leeuwen
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.rdoc ADDED
@@ -0,0 +1,85 @@
1
+ = visual-environments
2
+
3
+ Automatic visual, in-browser cues about your current environment in Rails 3 applications.
4
+
5
+ If you're a developer accustomed to working across multiple development and staging environments, you have certainly been in the position where you have multiple browser windows/tabs open with the same site but pointing at different environments. This gem aims to help you keep your contexts straight!
6
+
7
+ This is a configurable means for showing, via an updated <title> tag or CSS corner banner, what the current runtime environment is (development, staging, test, etc.) This functionality is never enabled for production, and fully configurable to exclude other environments as well.
8
+
9
+ == Install & Configuration
10
+
11
+ Add the following to your Rails app Gemfile
12
+
13
+ gem 'visual-environments'
14
+
15
+ ...and run <tt>bundle install</tt>. Then use the visual-environments generator to install the configuration file to your <tt>config/initializers</tt> directory:
16
+
17
+ rails g visual_environments:install
18
+
19
+ There should now be a new file <tt>config/initializers/visual-environments.rb</tt> with the content
20
+
21
+ ActionController::Base::VisualEnvironments.enable_env_in_title = true
22
+
23
+ # By default, the corner banner is disabled
24
+ ActionController::Base::VisualEnvironments.enable_env_in_corner_banner = false
25
+ # By default, if the corner banner is enabled it is shown on the right side of the page. For
26
+ # those pages where it would be better for it to reside in the upper-left corner, uncomment
27
+ # the line below and change the argument to :left. Current possible values are (:right, :left)
28
+ # ActionController::Base::VisualEnvironments.corner_banner_side = :right
29
+
30
+ # By default, the full environment name is used in the visual cues (development, test, etc.) You
31
+ # can map environment names by using the below setting to alias one environment name to another
32
+ # Example: 'development' -> 'dev' or 'preproduction' -> 'preprod'
33
+ # ActionController::Base::VisualEnvironments.aliases = { 'development' => 'dev' }
34
+
35
+ # By default, the visual-environments will be enabled for all environments except production;
36
+ # to exclude additional environments, uncomment the line below and add them to the collection
37
+ # ActionController::Base::VisualEnvironments.excluded_environments = []
38
+
39
+ By default, visual environments are enabled in the page title but disabled for corner banner display. Also, by default only production environments are excluded from the gem functionality.
40
+
41
+ === Excluding Environments
42
+
43
+ You can add additional environments to be excluded by adding their names to the <tt>excluded_environments</tt> collection. For example, let's say you have an app with a test-oriented staging environment as well as a 'almost-ready-for-prime-time' preproduction environment. In this case you may want the visual cues on the staging but not on preproduction. In that case you can edit the initializer to:
44
+
45
+ ActionController::Base::VisualEnvironments.excluded_environments = ['preproduction']
46
+
47
+ And now preproduction will not use the visual-environments functionality.
48
+
49
+ Another way to configure is by using Gemfile groups to only conditionally load this gem. For example, if you have many different environments but only want this gem to operate in development and staging, for example, you can edit your Gemfile thusly:
50
+
51
+ gem 'visual-evironments', :groups => [:development, :staging]
52
+
53
+ === Changing the Side of the Banner
54
+
55
+ The corner banner is displayed in the upper-right corner of the screen by default. Some sites, however, may be designed such that a banner in that area would hamper functionality (by covering links, for example). In that case you can switch the banner to the left side by uncommenting and setting the following line in <tt>config/initializers/visual-environments.rb</tt>:
56
+
57
+ ActionController::Base::VisualEnvironments.corner_banner_side = :right
58
+
59
+ === Aliasing Environment Names
60
+
61
+ Having the string "[development]" prepended to your title may make things a bit unwieldy for some people. In that case, you may use the aliasing option to change such an identifier to something shorter (but still identifiable with the environment in question). For example, you can alias 'development' to 'dev' or 'D', which would result in "[dev]" or "[D]" being prepended to the page title.
62
+
63
+ To add an alias, uncomment and set the <tt>aliases</tt> setting as follows:
64
+
65
+ ActionController::Base::VisualEnvironments.aliases = { 'development' => 'dev', 'preproduction' => 'preprod' }
66
+
67
+ The above example would show use 'dev' in a development environment and 'preprod' in a preproduction environment. The point is, you can alias any environment you may use, not just the out-of-the-box environments Rails uses (development, test, production).
68
+
69
+ == Contributing to visual-environments
70
+
71
+ * Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
72
+ * Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it
73
+ * Fork the project
74
+ * Start a feature/bugfix branch
75
+ * Commit and push until you are happy with your contribution
76
+ * Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
77
+ * Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.
78
+
79
+ == Copyright
80
+
81
+ Copyright (c) 2011 Zachery Moneypenny, David van Leeuwen. See LICENSE.txt for
82
+ further details.
83
+
84
+ Big Ups to the Mad-Railers for their idea for this gem! If you're coding Ruby/Rails in the Madison, Wisconsin area search for MadRailers on meetup.com or check out the Google Group at http://groups.google.com/group/Mad-Railers
85
+
data/Rakefile ADDED
@@ -0,0 +1,50 @@
1
+ require 'rubygems'
2
+ require 'bundler'
3
+ begin
4
+ Bundler.setup(:default, :development)
5
+ rescue Bundler::BundlerError => e
6
+ $stderr.puts e.message
7
+ $stderr.puts "Run `bundle install` to install missing gems"
8
+ exit e.status_code
9
+ end
10
+ require 'rake'
11
+
12
+ require 'jeweler'
13
+ Jeweler::Tasks.new do |gem|
14
+ # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
15
+ gem.name = "visual-environments"
16
+ gem.homepage = "http://github.com/madrailers/visual-environments"
17
+ gem.license = "MIT"
18
+ gem.summary = %Q{Automatic visual, in-browser cues about your current environment}
19
+ gem.description = %Q{This gem provides a configurable means for showing, via an updated &lt;title&gt; tag or CSS corner banner, what the current runtime environment is (development, staging, test, etc.) This functionality is never enabled for production, and for all other environments you can exclude specific ones.}
20
+ gem.email = "whazzmaster@gmail.com"
21
+ gem.authors = ["Zachery Moneypenny, David van Leeuwen"]
22
+ # Include your dependencies below. Runtime dependencies are required when using your gem,
23
+ # and development dependencies are only needed for development (ie running rake tasks, tests, etc)
24
+ # gem.add_runtime_dependency 'jabber4r', '> 0.1'
25
+ # gem.add_development_dependency 'rspec', '> 1.2.3'
26
+ end
27
+ Jeweler::RubygemsDotOrgTasks.new
28
+
29
+ require 'rspec/core'
30
+ require 'rspec/core/rake_task'
31
+ RSpec::Core::RakeTask.new(:spec) do |spec|
32
+ spec.pattern = FileList['spec/**/*_spec.rb']
33
+ end
34
+
35
+ RSpec::Core::RakeTask.new(:rcov) do |spec|
36
+ spec.pattern = 'spec/**/*_spec.rb'
37
+ spec.rcov = true
38
+ end
39
+
40
+ task :default => :spec
41
+
42
+ require 'rake/rdoctask'
43
+ Rake::RDocTask.new do |rdoc|
44
+ version = File.exist?('VERSION') ? File.read('VERSION') : ""
45
+
46
+ rdoc.rdoc_dir = 'rdoc'
47
+ rdoc.title = "visual-environments #{version}"
48
+ rdoc.rdoc_files.include('README*')
49
+ rdoc.rdoc_files.include('lib/**/*.rb')
50
+ end
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.1.1
@@ -0,0 +1,2 @@
1
+ Usage:
2
+ rails generate visual-environments:install
@@ -0,0 +1,30 @@
1
+ require 'rails/generators/base'
2
+
3
+ module VisualEnvironments
4
+ module Generators
5
+ class InstallGenerator < Rails::Generators::Base
6
+
7
+ def copy_initializer_file
8
+ copy_file File.expand_path("../templates/initializer.rb", __FILE__), "config/initializers/visual-environment.rb"
9
+ end
10
+
11
+ def self.banner
12
+ "rails generate visual-environments:install"
13
+ end
14
+
15
+ private
16
+
17
+ def add_gem(name, options = {})
18
+ gemfile_content = File.read(destination_path("Gemfile"))
19
+ File.open(destination_path("Gemfile"), 'a') { |f| f.write("\n") } unless gemfile_content =~ /\n\Z/
20
+ gem name, options unless gemfile_content.include? name
21
+ end
22
+
23
+ def print_usage
24
+ self.class.help(Thor::Base.shell.new)
25
+ exit
26
+ end
27
+
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,17 @@
1
+ ActionController::Base::VisualEnvironments.enable_env_in_title = true
2
+
3
+ # By default, the corner banner is disabled
4
+ ActionController::Base::VisualEnvironments.enable_env_in_corner_banner = false
5
+ # By default, if the corner banner is enabled it is shown on the right side of the page. For
6
+ # those pages where it would be better for it to reside in the upper-left corner, uncomment
7
+ # the line below and change the argument to :left. Current possible values are (:right, :left)
8
+ # ActionController::Base::VisualEnvironments.corner_banner_side = :right
9
+
10
+ # By default, the full environment name is used in the visual cues (development, test, etc.) You
11
+ # can map environment names by using the below setting to alias one environment name to another
12
+ # Example: 'development' -> 'dev' or 'preproduction' -> 'preprod'
13
+ # ActionController::Base::VisualEnvironments.aliases = { 'development' => 'dev' }
14
+
15
+ # By default, the visual-environments will be enabled for all environments except production;
16
+ # to exclude additional environments, uncomment the line below and add them to the collection
17
+ # ActionController::Base::VisualEnvironments.excluded_environments = []
@@ -0,0 +1,38 @@
1
+ class ActionController::Base
2
+ after_filter :shim_visual_environments
3
+
4
+ def shim_visual_environments
5
+ unless Rails.env == 'production' || (VisualEnvironments.excluded_environments && VisualEnvironments.excluded_environments.include?(Rails.env))
6
+
7
+ current_env = Rails.env
8
+ current_env = VisualEnvironments.aliases[current_env] if !VisualEnvironments.aliases.nil? && VisualEnvironments.aliases.has_key?(current_env)
9
+
10
+ if VisualEnvironments.enable_env_in_title
11
+ shim = "<script type='text/javascript'>var te=document.getElementsByTagName('title')[0];var t=te.innerHTML;te.innerHTML=\"["+current_env+"] \"+t;</script></body>"
12
+ response.body = response.body.gsub /\<\/body\>/, shim
13
+ end
14
+
15
+ if VisualEnvironments.enable_env_in_corner_banner
16
+ shim = ""
17
+ # By default the banner will be on the right side
18
+ if VisualEnvironments.corner_banner_side.nil? || VisualEnvironments.corner_banner_side == :right
19
+ shim = "<script type='text/javascript'>var con=document.createElement('div');con.id='VisualEnvironment_container';document.body.appendChild(con);var ce=document.createElement('div');ce.id='VisualEnvironment_corner';ce.innerHTML='"+current_env+"';con.appendChild(ce);</script><style>#VisualEnvironment_corner{position:absolute;top:20px;right:-35px;font-family:Verdana;font-size:10px;color:#fff;padding:9px;width:120px;text-align:center;background:#000;border:#fff 1px solid;filter:alpha(opacity=70);-moz-opacity:0.7;-khtml-opacity:0.7;opacity:0.7;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);}#VisualEnvironment_container{position:absolute;top:0;right:0;width:120px;height:93px;overflow:hidden;}</style></body>"
20
+ elsif VisualEnvironments.corner_banner_side == :left
21
+ shim = "<script type='text/javascript'>var con=document.createElement('div');con.id='VisualEnvironment_container';document.body.appendChild(con);var ce=document.createElement('div');ce.id='VisualEnvironment_corner';ce.innerHTML='"+current_env+"';con.appendChild(ce);</script><style>#VisualEnvironment_corner{position:absolute;top:20px;left:-35px;font-family:Verdana;font-size:10px;color:#fff;padding:9px;width:120px;text-align:center;background:#000;border:#fff 1px solid;filter:alpha(opacity=70);-moz-opacity:0.7;-khtml-opacity:0.7;opacity:0.7;-webkit-transform:rotate(-45deg);-moz-transform:rotate(-45deg);}#VisualEnvironment_container{position:absolute;top:0;left:0;width:120px;height:93px;overflow:hidden;}</style></body>"
22
+ end
23
+ response.body = response.body.gsub /\<\/body\>/, shim
24
+ end
25
+
26
+
27
+ end
28
+ end
29
+
30
+ module VisualEnvironments
31
+ class << self
32
+ attr_accessor :enable_env_in_title, :enable_env_in_corner_banner
33
+ attr_accessor :corner_banner_side
34
+ attr_accessor :aliases
35
+ attr_accessor :excluded_environments
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,12 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
3
+ require 'rspec'
4
+ # require 'visual-environments'
5
+
6
+ # Requires supporting files with custom matchers and macros, etc,
7
+ # in ./support/ and its subdirectories.
8
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
9
+
10
+ RSpec.configure do |config|
11
+
12
+ end
@@ -0,0 +1,7 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ describe "VisualEnvironments" do
4
+
5
+ # Need to describe a way to test this without loading all of rails
6
+
7
+ end
@@ -0,0 +1,65 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{visual-environments}
8
+ s.version = "0.1.1"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Zachery Moneypenny, David van Leeuwen"]
12
+ s.date = %q{2011-02-20}
13
+ s.description = %q{This gem provides a configurable means for showing, via an updated &lt;title&gt; tag or CSS corner banner, what the current runtime environment is (development, staging, test, etc.) This functionality is never enabled for production, and for all other environments you can exclude specific ones.}
14
+ s.email = %q{whazzmaster@gmail.com}
15
+ s.extra_rdoc_files = [
16
+ "LICENSE.txt",
17
+ "README.rdoc"
18
+ ]
19
+ s.files = [
20
+ "Gemfile",
21
+ "Gemfile.lock",
22
+ "LICENSE.txt",
23
+ "README.rdoc",
24
+ "Rakefile",
25
+ "VERSION",
26
+ "lib/generators/visual_environments/USAGE",
27
+ "lib/generators/visual_environments/install_generator.rb",
28
+ "lib/generators/visual_environments/templates/initializer.rb",
29
+ "lib/visual-environments.rb",
30
+ "spec/spec_helper.rb",
31
+ "spec/visual-environments_spec.rb",
32
+ "visual-environments.gemspec"
33
+ ]
34
+ s.homepage = %q{http://github.com/madrailers/visual-environments}
35
+ s.licenses = ["MIT"]
36
+ s.require_paths = ["lib"]
37
+ s.rubygems_version = %q{1.5.2}
38
+ s.summary = %q{Automatic visual, in-browser cues about your current environment}
39
+ s.test_files = [
40
+ "spec/spec_helper.rb",
41
+ "spec/visual-environments_spec.rb"
42
+ ]
43
+
44
+ if s.respond_to? :specification_version then
45
+ s.specification_version = 3
46
+
47
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
48
+ s.add_development_dependency(%q<rspec>, ["~> 2.3.0"])
49
+ s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
50
+ s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
51
+ s.add_development_dependency(%q<rcov>, [">= 0"])
52
+ else
53
+ s.add_dependency(%q<rspec>, ["~> 2.3.0"])
54
+ s.add_dependency(%q<bundler>, ["~> 1.0.0"])
55
+ s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
56
+ s.add_dependency(%q<rcov>, [">= 0"])
57
+ end
58
+ else
59
+ s.add_dependency(%q<rspec>, ["~> 2.3.0"])
60
+ s.add_dependency(%q<bundler>, ["~> 1.0.0"])
61
+ s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
62
+ s.add_dependency(%q<rcov>, [">= 0"])
63
+ end
64
+ end
65
+
metadata ADDED
@@ -0,0 +1,116 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: visual-environments
3
+ version: !ruby/object:Gem::Version
4
+ prerelease:
5
+ version: 0.1.1
6
+ platform: ruby
7
+ authors:
8
+ - Zachery Moneypenny, David van Leeuwen
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+
13
+ date: 2011-02-20 00:00:00 -06:00
14
+ default_executable:
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: rspec
18
+ requirement: &id001 !ruby/object:Gem::Requirement
19
+ none: false
20
+ requirements:
21
+ - - ~>
22
+ - !ruby/object:Gem::Version
23
+ version: 2.3.0
24
+ type: :development
25
+ prerelease: false
26
+ version_requirements: *id001
27
+ - !ruby/object:Gem::Dependency
28
+ name: bundler
29
+ requirement: &id002 !ruby/object:Gem::Requirement
30
+ none: false
31
+ requirements:
32
+ - - ~>
33
+ - !ruby/object:Gem::Version
34
+ version: 1.0.0
35
+ type: :development
36
+ prerelease: false
37
+ version_requirements: *id002
38
+ - !ruby/object:Gem::Dependency
39
+ name: jeweler
40
+ requirement: &id003 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: 1.5.2
46
+ type: :development
47
+ prerelease: false
48
+ version_requirements: *id003
49
+ - !ruby/object:Gem::Dependency
50
+ name: rcov
51
+ requirement: &id004 !ruby/object:Gem::Requirement
52
+ none: false
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: "0"
57
+ type: :development
58
+ prerelease: false
59
+ version_requirements: *id004
60
+ description: This gem provides a configurable means for showing, via an updated &lt;title&gt; tag or CSS corner banner, what the current runtime environment is (development, staging, test, etc.) This functionality is never enabled for production, and for all other environments you can exclude specific ones.
61
+ email: whazzmaster@gmail.com
62
+ executables: []
63
+
64
+ extensions: []
65
+
66
+ extra_rdoc_files:
67
+ - LICENSE.txt
68
+ - README.rdoc
69
+ files:
70
+ - Gemfile
71
+ - Gemfile.lock
72
+ - LICENSE.txt
73
+ - README.rdoc
74
+ - Rakefile
75
+ - VERSION
76
+ - lib/generators/visual_environments/USAGE
77
+ - lib/generators/visual_environments/install_generator.rb
78
+ - lib/generators/visual_environments/templates/initializer.rb
79
+ - lib/visual-environments.rb
80
+ - spec/spec_helper.rb
81
+ - spec/visual-environments_spec.rb
82
+ - visual-environments.gemspec
83
+ has_rdoc: true
84
+ homepage: http://github.com/madrailers/visual-environments
85
+ licenses:
86
+ - MIT
87
+ post_install_message:
88
+ rdoc_options: []
89
+
90
+ require_paths:
91
+ - lib
92
+ required_ruby_version: !ruby/object:Gem::Requirement
93
+ none: false
94
+ requirements:
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ hash: -1131257249515580422
98
+ segments:
99
+ - 0
100
+ version: "0"
101
+ required_rubygems_version: !ruby/object:Gem::Requirement
102
+ none: false
103
+ requirements:
104
+ - - ">="
105
+ - !ruby/object:Gem::Version
106
+ version: "0"
107
+ requirements: []
108
+
109
+ rubyforge_project:
110
+ rubygems_version: 1.5.2
111
+ signing_key:
112
+ specification_version: 3
113
+ summary: Automatic visual, in-browser cues about your current environment
114
+ test_files:
115
+ - spec/spec_helper.rb
116
+ - spec/visual-environments_spec.rb