const 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile ADDED
@@ -0,0 +1,11 @@
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"
10
+ gem "jeweler"
11
+ end
data/Gemfile.lock ADDED
@@ -0,0 +1,25 @@
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
+ rspec (2.5.0)
12
+ rspec-core (~> 2.5.0)
13
+ rspec-expectations (~> 2.5.0)
14
+ rspec-mocks (~> 2.5.0)
15
+ rspec-core (2.5.1)
16
+ rspec-expectations (2.5.0)
17
+ diff-lcs (~> 1.1.2)
18
+ rspec-mocks (2.5.0)
19
+
20
+ PLATFORMS
21
+ ruby
22
+
23
+ DEPENDENCIES
24
+ jeweler
25
+ rspec
data/MIT-LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2010 [name of plugin creator]
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,111 @@
1
+ === Note for Rails 2.3.x users
2
+ Check out the branch rails_2_3_x.
3
+
4
+ Master is Rails 3 compatible only.
5
+
6
+ = AppConstants
7
+
8
+ It's funny how every (non)Rails application I work on ends up needing some sort of per-environment global constants.
9
+
10
+ Examples may include the application url - It might be used in account activation emails and thus should be different between the development and production environments.
11
+
12
+ Or perhaps your application depends on external services that, depending on the environment, are available in different URIs.
13
+
14
+ One common approach is to define these constants in your environment files:
15
+
16
+ # in environment.rb
17
+ Rails::Initializer.run do |config|
18
+ ...
19
+ ACTIVATION_URL = "http://www.example.com/activate"
20
+ end
21
+
22
+ #and then in development.rb
23
+ ACTIVATION_URL = "http://localhost:3000/activate"
24
+
25
+ But in my experience constants end up being scattered all around, people don't know where to look for them and much less where new ones should be defined.
26
+
27
+ AppConstants can be used as a gem or as a plugin. It provides a clean way to handle this need.
28
+
29
+ == Usage
30
+
31
+ === Installing AppConstants as a gem
32
+
33
+ Add it to your Gemfile:
34
+
35
+ gem 'app_constants'
36
+
37
+ Then bundle install and run the generator:
38
+
39
+ $ bundle install
40
+
41
+ $ rails generate app_constants
42
+ exists config
43
+ create config/constants.yml
44
+ exists config/initializers
45
+ create config/initializers/load_app_constants.rb
46
+
47
+ === Installing AppConstants as a plugin
48
+
49
+ Just install the plugin as you normally would and run the generator
50
+
51
+ $ rails plugin install git://github.com/leonardoborges/app_constants.git
52
+
53
+ $ rails generate app_constants
54
+ exists config
55
+ create config/constants.yml
56
+ exists config/initializers
57
+ create config/initializers/load_app_constants.rb
58
+
59
+ Now use the constants.yml file to define your own constants and the load_app_constants.rb initializer to customize the plugin. e.g: Change the default location for the constants.yml file.
60
+
61
+ === Using AppConstants without Rails
62
+
63
+ After installing the gem - either using bundler or otherwise - you'll be responsible for initializing it, like so:
64
+
65
+ #somewhere in your non-Rails app
66
+ AppConstants.config_path = "#{File.dirname(__FILE__)}/config/constants.yml"
67
+ AppConstants.environment = "development"
68
+ AppConstants.load!
69
+
70
+ Optionally you can set raise_error_on_missing which will raise a runtime error 1) during load if the environment doesn't exist and 2) all other times if a constant doesn't exist:
71
+
72
+ AppConstants.raise_error_on_missing = true
73
+
74
+ == Example
75
+
76
+ If you have a constants.yml file that looks like this:
77
+
78
+ # Enter your per-environment constants below
79
+
80
+ development: &default
81
+ activation_url: "http://localhost:3000/activate"
82
+ max_upload_in_bytes: <%= 1.megabyte %>
83
+
84
+ production:
85
+ <<: *default
86
+ activation_url: "http://www.example.com/activate"
87
+
88
+ Then you can use the AppConstant class to retrieve your constants anywhere in your app:
89
+
90
+ # somewhere in the activation email view
91
+ Visit this url to activate your account:
92
+ <%= "#{AppConstants.activation_url}/#{activation_code}" %>
93
+
94
+ Notice how I used embedded ruby code in the second constant. It works just fine:
95
+
96
+ # somewhere in your upload handling code
97
+ max_size = AppConstants.max_upload_in_bytes # 1048576
98
+
99
+ == Contributing to app_constants
100
+
101
+ * Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
102
+ * Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it
103
+ * Fork the project
104
+ * Start a feature/bugfix branch
105
+ * Commit and push until you are happy with your contribution
106
+ * Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
107
+ * 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.
108
+
109
+ == Copyright
110
+
111
+ Copyright (c) 2010-2011 {Leonardo Borges}[http://www.leonardoborges.com], released under the MIT license
data/Rakefile ADDED
@@ -0,0 +1,62 @@
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
+
11
+ require 'rake'
12
+ require 'rake/rdoctask'
13
+ require 'rspec/core/rake_task'
14
+ require 'jeweler'
15
+ require 'jeweler/tasks'
16
+ require 'jeweler/specification'
17
+ require 'jeweler/rubygems_dot_org_tasks'
18
+
19
+ begin
20
+ Bundler.setup(:default, :development)
21
+ rescue Bundler::BundlerError => e
22
+ $stderr.puts e.message
23
+ $stderr.puts "Run `bundle install` to install missing gems"
24
+ exit e.status_code
25
+ end
26
+
27
+ desc 'Default: run unit tests.'
28
+ task :default => :spec
29
+
30
+ Jeweler::Tasks.new do |gem|
31
+ # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
32
+ gem.name = "app_constants"
33
+ gem.homepage = "http://github.com/leonardoborges/app_constants"
34
+ gem.license = "MIT"
35
+ gem.summary = %Q{A clean and simple way to manage your application's per-environment constants}
36
+ gem.description = %Q{A clean and simple way to manage your application's per-environment constants}
37
+ gem.email = "leonardoborges.rj@gmail.com"
38
+ gem.authors = ["Leonardo Borges"]
39
+ # Include your dependencies below. Runtime dependencies are required when using your gem,
40
+ # and development dependencies are only needed for development (ie running rake tasks, tests, etc)
41
+ # gem.add_runtime_dependency 'jabber4r', '> 0.1'
42
+ gem.add_development_dependency 'rspec'
43
+ end
44
+ Jeweler::RubygemsDotOrgTasks.new
45
+
46
+ RSpec::Core::RakeTask.new(:spec) do |t|
47
+ t.pattern = Dir.glob('test/**/*_spec.rb')
48
+ end
49
+
50
+ desc 'Generate documentation for the app_constants plugin.'
51
+ Rake::RDocTask.new(:rdoc) do |rdoc|
52
+ rdoc.rdoc_dir = 'rdoc'
53
+ rdoc.title = 'AppConstants'
54
+ rdoc.options << '--line-numbers' << '--inline-source'
55
+ rdoc.rdoc_files.include('README')
56
+ rdoc.rdoc_files.include('lib/**/*.rb')
57
+ end
58
+
59
+
60
+
61
+
62
+
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 1.0.3
data/const.gemspec ADDED
@@ -0,0 +1,72 @@
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{const}
8
+ s.version = "1.0.3"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Leonardo Borges"]
12
+ s.date = %q{2011-04-10}
13
+ s.description = %q{A clean and simple way to manage your application's per-environment constants}
14
+ s.email = %q{leonardoborges.rj@gmail.com}
15
+ s.extra_rdoc_files = [
16
+ "README.rdoc"
17
+ ]
18
+ s.files = [
19
+ "Gemfile",
20
+ "Gemfile.lock",
21
+ "MIT-LICENSE",
22
+ "README.rdoc",
23
+ "Rakefile",
24
+ "VERSION",
25
+ "const.gemspec",
26
+ "init.rb",
27
+ "install.rb",
28
+ "lib/const.rb",
29
+ "lib/generators/USAGE",
30
+ "lib/generators/const_generator.rb",
31
+ "lib/generators/templates/README",
32
+ "lib/generators/templates/constants.yml",
33
+ "lib/generators/templates/load_const.rb",
34
+ "test/const_spec.rb",
35
+ "test/fixtures/constants.yml",
36
+ "test/fixtures/nested_constants.yml",
37
+ "test/fixtures/template_constants.yml",
38
+ "test/test_helper.rb",
39
+ "uninstall.rb"
40
+ ]
41
+ s.homepage = %q{http://github.com/redCashion/const}
42
+ s.licenses = ["MIT"]
43
+ s.require_paths = ["lib"]
44
+ s.rubygems_version = %q{1.5.0}
45
+ s.summary = %q{A clean and simple way to manage your application's per-environment constants}
46
+ s.test_files = [
47
+ "test/const_spec.rb",
48
+ "test/test_helper.rb"
49
+ ]
50
+
51
+ if s.respond_to? :specification_version then
52
+ s.specification_version = 3
53
+
54
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
55
+ s.add_development_dependency(%q<rspec>, [">= 0"])
56
+ s.add_development_dependency(%q<rspec>, [">= 0"])
57
+ s.add_development_dependency(%q<jeweler>, [">= 0"])
58
+ s.add_development_dependency(%q<rspec>, [">= 0"])
59
+ else
60
+ s.add_dependency(%q<rspec>, [">= 0"])
61
+ s.add_dependency(%q<rspec>, [">= 0"])
62
+ s.add_dependency(%q<jeweler>, [">= 0"])
63
+ s.add_dependency(%q<rspec>, [">= 0"])
64
+ end
65
+ else
66
+ s.add_dependency(%q<rspec>, [">= 0"])
67
+ s.add_dependency(%q<rspec>, [">= 0"])
68
+ s.add_dependency(%q<jeweler>, [">= 0"])
69
+ s.add_dependency(%q<rspec>, [">= 0"])
70
+ end
71
+ end
72
+
data/init.rb ADDED
@@ -0,0 +1 @@
1
+ require 'const'
data/install.rb ADDED
@@ -0,0 +1 @@
1
+ # Install hook code here
data/lib/const.rb ADDED
@@ -0,0 +1,61 @@
1
+ require 'yaml'
2
+ require 'erb'
3
+
4
+ class Const
5
+ @@config_path = Object.const_defined?(:Rails) ? "#{Rails.root}/config/constants.yml" : nil
6
+ @@environment = Object.const_defined?(:Rails) ? Rails.env : 'test'
7
+ @@raise_error_on_missing = false # if true this will raise an error if method you seek isn't in constants_hash
8
+
9
+ def self.config_path=(path)
10
+ @@config_path = path
11
+ end
12
+
13
+ def self.environment=(environment)
14
+ @@environment = environment
15
+ end
16
+
17
+ def self.raise_error_on_missing=(true_false)
18
+ @@raise_error_on_missing = true_false
19
+ end
20
+
21
+ def self.method_missing(method, *args)
22
+ @@instance.send(method).is_a?(Hash) ? Const.new(@@instance.constants_hash[method.to_s]) : @@instance.send(method)
23
+ end
24
+
25
+ def method_missing(method, *args)
26
+ fail_if_constant_missing(method.to_s)
27
+ constants_hash[method.to_s].nil? ? "" : constants_hash[method.to_s].freeze
28
+ end
29
+
30
+ def fail_if_constant_missing(constant)
31
+ unless constants_hash.keys.include?(constant) || @@raise_error_on_missing == false
32
+ raise "Constant #{constant} undefined in yml file. Options are: #{constants_hash.keys.join(", ")}"
33
+ end
34
+ end
35
+ private :fail_if_constant_missing
36
+
37
+ def self.load!
38
+ raise ArgumentError.new("No config file path specified. Use 'Const.config_path = PATH' to set it up") if @@config_path.nil?
39
+ constants_config = YAML::load(pre_process_constants_file)
40
+ fail_if_environment_missing(@@environment, constants_config)
41
+ constants_hash = constants_config[@@environment] || {}
42
+ @@instance = Const.new(constants_hash)
43
+ end
44
+
45
+ def self.fail_if_environment_missing(env, config)
46
+ unless config.keys.include?(env) || @@raise_error_on_missing == false
47
+ raise "Environment #{env} not found in yml file. Options are: #{config.keys.join(", ")}"
48
+ end
49
+ end
50
+ private_class_method :fail_if_environment_missing
51
+
52
+ def self.pre_process_constants_file
53
+ template = File.open(@@config_path).read
54
+ ERB.new(template).result
55
+ end
56
+
57
+ attr_reader :constants_hash
58
+ def initialize(constants_hash)
59
+ @constants_hash = constants_hash
60
+ end
61
+ end
@@ -0,0 +1,9 @@
1
+ Description:
2
+ Creates the default constants.yml file the the load_app_constants.rb initializer
3
+
4
+ Example:
5
+ rails generate app_constants
6
+
7
+ This will create:
8
+ config/constants.yml - constants definition file
9
+ config/initializers/load_app_constants.yml - Initialization and customization file
@@ -0,0 +1,14 @@
1
+ class ConstGenerator < Rails::Generators::Base
2
+ def self.source_root
3
+ @source_root ||= File.expand_path('../templates', __FILE__)
4
+ end
5
+
6
+ desc "Generates the constants.yml file under Rails.root/config" <<
7
+ "and the corresponding initializer under Rails.root/config/initializers"
8
+
9
+ def copy_config_files
10
+ copy_file('constants.yml', 'config/constants.yml')
11
+ copy_file('load_const.rb', 'config/initializers/load_const.rb')
12
+ readme("README")
13
+ end
14
+ end
@@ -0,0 +1,15 @@
1
+ ===============================================================================
2
+
3
+ AppConstants is now installed! A couple of things you should know:
4
+
5
+ 1. You now have a file under Rails.root/config called constants.yml
6
+
7
+ Use this file to add you environment specific constants
8
+
9
+ 2. The initializer lives under Rails.root/config/initializers and is called load_app_constants.rb
10
+
11
+ This is where the gem gets set up and where you can customize the location of the constants.yml file
12
+
13
+ 3. Enjoy!
14
+
15
+ ===============================================================================
@@ -0,0 +1,12 @@
1
+ # Enter your per-environment constants below
2
+
3
+ development: &default
4
+ constant1: "value1"
5
+ constant2: "value2"
6
+
7
+ production:
8
+ <<: *default
9
+ constant1: "overriden value1"
10
+
11
+ test:
12
+ <<: *default
@@ -0,0 +1,4 @@
1
+ # Loads the default configuration file located under RAILS_ROOT/config/constants.yml
2
+ # Change the default location by modifying the following line:
3
+ Const.config_path = "#{Rails.root}/config/constants.yml"
4
+ Const.load!
@@ -0,0 +1,67 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../lib/const')
2
+
3
+ describe "Const" do
4
+ it "should access the constants in the config file" do
5
+ Const.config_path = "#{File.dirname(__FILE__)}/fixtures/constants.yml"
6
+ Const.environment = "development"
7
+ Const.load!
8
+
9
+ Const.public_url.should == "development.myawesomeapp.com"
10
+ Const.app_name.should == "Master of awesomeness"
11
+ end
12
+
13
+ it "should raise a RuntimeError if trying to modify constants" do
14
+ Const.config_path = "#{File.dirname(__FILE__)}/fixtures/constants.yml"
15
+ Const.environment = "development"
16
+ Const.load!
17
+
18
+ Const.public_url.should == "development.myawesomeapp.com"
19
+
20
+ expect { Const.public_url << "trying something nasty" }.to raise_error(RuntimeError)
21
+ end
22
+
23
+ it "should return nil for non-existing environments" do
24
+ Const.config_path = "#{File.dirname(__FILE__)}/fixtures/constants.yml"
25
+ Const.environment = "invalid"
26
+ Const.load!
27
+ Const.public_url.should be_empty
28
+
29
+ end
30
+
31
+ it "should process embedded code" do
32
+ Const.config_path = "#{File.dirname(__FILE__)}/fixtures/template_constants.yml"
33
+ Const.environment = "development"
34
+ Const.load!
35
+
36
+ Const.max_upload_in_bytes.should == 1048576
37
+ end
38
+
39
+ it "should raise a runtime error if raise_error_on_missing is true" do
40
+ Const.config_path = "#{File.dirname(__FILE__)}/fixtures/constants.yml"
41
+ Const.raise_error_on_missing = true
42
+ Const.environment = "development"
43
+ Const.load!
44
+ expect { Const.private_url }.to raise_error(RuntimeError)
45
+
46
+ Const.public_url.should == "development.myawesomeapp.com"
47
+ Const.app_name == "Master of awesomeness"
48
+ Const.environment = "production"
49
+ Const.load!
50
+ expect { Const.private_url }.to raise_error(RuntimeError)
51
+
52
+ Const.public_url.should == "www.myawesomeapp.com"
53
+ Const.app_name == "Master of awesomeness"
54
+ Const.environment = "playpen"
55
+ expect { Const.load! }.to raise_error(RuntimeError)
56
+ end
57
+
58
+ describe "#load!" do
59
+
60
+ before(:each) do
61
+ Const.config_path = nil
62
+ end
63
+ it "should raise an ArgumentError if path is null" do
64
+ expect { Const.load! }.to raise_error(ArgumentError)
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,6 @@
1
+ development: &default
2
+ public_url: "development.myawesomeapp.com"
3
+ app_name: "Master of awesomeness"
4
+ production:
5
+ <<: *default
6
+ public_url: "www.myawesomeapp.com"
@@ -0,0 +1,9 @@
1
+ development: &default
2
+ public_url: "development.myawesomeapp.com"
3
+ app_name: "Master of awesomeness"
4
+ email:
5
+ admin: "admin@myapp.com"
6
+ support: "support@myapp.com"
7
+ production:
8
+ <<: *default
9
+ public_url: "www.myawesomeapp.com"
@@ -0,0 +1,4 @@
1
+ development: &default
2
+ max_upload_in_bytes: <%= 1 * 1024 * 1024 %>
3
+ production:
4
+ <<: *default
@@ -0,0 +1,4 @@
1
+ require 'test/unit'
2
+ require 'rubygems'
3
+ require 'active_support'
4
+ require 'active_support/test_case'
data/uninstall.rb ADDED
@@ -0,0 +1 @@
1
+ # Uninstall hook code here
metadata ADDED
@@ -0,0 +1,118 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: const
3
+ version: !ruby/object:Gem::Version
4
+ prerelease:
5
+ version: 1.0.3
6
+ platform: ruby
7
+ authors:
8
+ - Leonardo Borges
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+
13
+ date: 2011-04-10 00:00:00 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rspec
17
+ prerelease: false
18
+ requirement: &id001 !ruby/object:Gem::Requirement
19
+ none: false
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: "0"
24
+ type: :development
25
+ version_requirements: *id001
26
+ - !ruby/object:Gem::Dependency
27
+ name: rspec
28
+ prerelease: false
29
+ requirement: &id002 !ruby/object:Gem::Requirement
30
+ none: false
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: "0"
35
+ type: :development
36
+ version_requirements: *id002
37
+ - !ruby/object:Gem::Dependency
38
+ name: jeweler
39
+ prerelease: false
40
+ requirement: &id003 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ version: "0"
46
+ type: :development
47
+ version_requirements: *id003
48
+ - !ruby/object:Gem::Dependency
49
+ name: rspec
50
+ prerelease: false
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
+ version_requirements: *id004
59
+ description: A clean and simple way to manage your application's per-environment constants
60
+ email: leonardoborges.rj@gmail.com
61
+ executables: []
62
+
63
+ extensions: []
64
+
65
+ extra_rdoc_files:
66
+ - README.rdoc
67
+ files:
68
+ - Gemfile
69
+ - Gemfile.lock
70
+ - MIT-LICENSE
71
+ - README.rdoc
72
+ - Rakefile
73
+ - VERSION
74
+ - const.gemspec
75
+ - init.rb
76
+ - install.rb
77
+ - lib/const.rb
78
+ - lib/generators/USAGE
79
+ - lib/generators/const_generator.rb
80
+ - lib/generators/templates/README
81
+ - lib/generators/templates/constants.yml
82
+ - lib/generators/templates/load_const.rb
83
+ - test/const_spec.rb
84
+ - test/fixtures/constants.yml
85
+ - test/fixtures/nested_constants.yml
86
+ - test/fixtures/template_constants.yml
87
+ - test/test_helper.rb
88
+ - uninstall.rb
89
+ homepage: http://github.com/redCashion/const
90
+ licenses:
91
+ - MIT
92
+ post_install_message:
93
+ rdoc_options: []
94
+
95
+ require_paths:
96
+ - lib
97
+ required_ruby_version: !ruby/object:Gem::Requirement
98
+ none: false
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: "0"
103
+ required_rubygems_version: !ruby/object:Gem::Requirement
104
+ none: false
105
+ requirements:
106
+ - - ">="
107
+ - !ruby/object:Gem::Version
108
+ version: "0"
109
+ requirements: []
110
+
111
+ rubyforge_project:
112
+ rubygems_version: 1.8.5
113
+ signing_key:
114
+ specification_version: 3
115
+ summary: A clean and simple way to manage your application's per-environment constants
116
+ test_files:
117
+ - test/const_spec.rb
118
+ - test/test_helper.rb