app_constants 1.0.3 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.3
1
+ 1.0.4
@@ -4,14 +4,14 @@
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
- s.name = %q{app_constants}
8
- s.version = "1.0.3"
7
+ s.name = "app_constants"
8
+ s.version = "1.0.4"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
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}
12
+ s.date = "2012-02-13"
13
+ s.description = "A clean and simple way to manage your application's per-environment constants"
14
+ s.email = "leonardoborges.rj@gmail.com"
15
15
  s.extra_rdoc_files = [
16
16
  "README.rdoc"
17
17
  ]
@@ -31,6 +31,7 @@ Gem::Specification.new do |s|
31
31
  "lib/generators/templates/README",
32
32
  "lib/generators/templates/constants.yml",
33
33
  "lib/generators/templates/load_app_constants.rb",
34
+ "root",
34
35
  "test/app_constants_spec.rb",
35
36
  "test/fixtures/constants.yml",
36
37
  "test/fixtures/nested_constants.yml",
@@ -38,11 +39,11 @@ Gem::Specification.new do |s|
38
39
  "test/test_helper.rb",
39
40
  "uninstall.rb"
40
41
  ]
41
- s.homepage = %q{http://github.com/leonardoborges/app_constants}
42
+ s.homepage = "http://github.com/leonardoborges/app_constants"
42
43
  s.licenses = ["MIT"]
43
44
  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}
45
+ s.rubygems_version = "1.8.10"
46
+ s.summary = "A clean and simple way to manage your application's per-environment constants"
46
47
  s.test_files = [
47
48
  "test/app_constants_spec.rb",
48
49
  "test/test_helper.rb"
data/lib/app_constants.rb CHANGED
@@ -24,7 +24,13 @@ class AppConstants
24
24
 
25
25
  def method_missing(method, *args)
26
26
  fail_if_constant_missing(method.to_s)
27
- constants_hash[method.to_s].nil? ? "" : constants_hash[method.to_s].freeze
27
+ if constants_hash[method.to_s].nil?
28
+ ""
29
+ elsif constants_hash[method.to_s].is_a?(Hash)
30
+ AppConstants.new(constants_hash[method.to_s])
31
+ else
32
+ constants_hash[method.to_s].freeze
33
+ end
28
34
  end
29
35
 
30
36
  def fail_if_constant_missing(constant)
data/root ADDED
File without changes
@@ -54,6 +54,16 @@ describe "AppConstants" do
54
54
  AppConstants.environment = "playpen"
55
55
  expect { AppConstants.load! }.to raise_error(RuntimeError)
56
56
  end
57
+
58
+ it "should allow nested constants" do
59
+ AppConstants.config_path = "#{File.dirname(__FILE__)}/fixtures/template_constants.yml"
60
+ AppConstants.environment = "development"
61
+ AppConstants.load!
62
+
63
+ AppConstants.email.default_sender.should == "do-not-reply@test.com"
64
+ AppConstants.delayed_jobs.timeouts.default.should == 300
65
+ AppConstants.very.deep.nesting.level == true
66
+ end
57
67
 
58
68
  describe "#load!" do
59
69
 
@@ -64,4 +74,4 @@ describe "AppConstants" do
64
74
  expect { AppConstants.load! }.to raise_error(ArgumentError)
65
75
  end
66
76
  end
67
- end
77
+ end
@@ -1,4 +1,14 @@
1
1
  development: &default
2
2
  max_upload_in_bytes: <%= 1 * 1024 * 1024 %>
3
+ email:
4
+ default_sender: do-not-reply@test.com
5
+ delayed_jobs:
6
+ timeouts:
7
+ default: 300
8
+ very:
9
+ deep:
10
+ nesting:
11
+ level: true
12
+
3
13
  production:
4
14
  <<: *default
metadata CHANGED
@@ -1,71 +1,67 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: app_constants
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.4
4
5
  prerelease:
5
- version: 1.0.3
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - Leonardo Borges
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
-
13
- date: 2011-04-10 00:00:00 +10:00
14
- default_executable:
15
- dependencies:
16
- - !ruby/object:Gem::Dependency
12
+ date: 2012-02-13 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
17
15
  name: rspec
18
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &70108009980120 !ruby/object:Gem::Requirement
19
17
  none: false
20
- requirements:
21
- - - ">="
22
- - !ruby/object:Gem::Version
23
- version: "0"
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
24
22
  type: :development
25
23
  prerelease: false
26
- version_requirements: *id001
27
- - !ruby/object:Gem::Dependency
24
+ version_requirements: *70108009980120
25
+ - !ruby/object:Gem::Dependency
28
26
  name: rspec
29
- requirement: &id002 !ruby/object:Gem::Requirement
27
+ requirement: &70108009979500 !ruby/object:Gem::Requirement
30
28
  none: false
31
- requirements:
32
- - - ">="
33
- - !ruby/object:Gem::Version
34
- version: "0"
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
35
33
  type: :development
36
34
  prerelease: false
37
- version_requirements: *id002
38
- - !ruby/object:Gem::Dependency
35
+ version_requirements: *70108009979500
36
+ - !ruby/object:Gem::Dependency
39
37
  name: jeweler
40
- requirement: &id003 !ruby/object:Gem::Requirement
38
+ requirement: &70108009977780 !ruby/object:Gem::Requirement
41
39
  none: false
42
- requirements:
43
- - - ">="
44
- - !ruby/object:Gem::Version
45
- version: "0"
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
46
44
  type: :development
47
45
  prerelease: false
48
- version_requirements: *id003
49
- - !ruby/object:Gem::Dependency
46
+ version_requirements: *70108009977780
47
+ - !ruby/object:Gem::Dependency
50
48
  name: rspec
51
- requirement: &id004 !ruby/object:Gem::Requirement
49
+ requirement: &70108009993640 !ruby/object:Gem::Requirement
52
50
  none: false
53
- requirements:
54
- - - ">="
55
- - !ruby/object:Gem::Version
56
- version: "0"
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
57
55
  type: :development
58
56
  prerelease: false
59
- version_requirements: *id004
57
+ version_requirements: *70108009993640
60
58
  description: A clean and simple way to manage your application's per-environment constants
61
59
  email: leonardoborges.rj@gmail.com
62
60
  executables: []
63
-
64
61
  extensions: []
65
-
66
- extra_rdoc_files:
62
+ extra_rdoc_files:
67
63
  - README.rdoc
68
- files:
64
+ files:
69
65
  - Gemfile
70
66
  - Gemfile.lock
71
67
  - MIT-LICENSE
@@ -81,43 +77,41 @@ files:
81
77
  - lib/generators/templates/README
82
78
  - lib/generators/templates/constants.yml
83
79
  - lib/generators/templates/load_app_constants.rb
80
+ - root
84
81
  - test/app_constants_spec.rb
85
82
  - test/fixtures/constants.yml
86
83
  - test/fixtures/nested_constants.yml
87
84
  - test/fixtures/template_constants.yml
88
85
  - test/test_helper.rb
89
86
  - uninstall.rb
90
- has_rdoc: true
91
87
  homepage: http://github.com/leonardoborges/app_constants
92
- licenses:
88
+ licenses:
93
89
  - MIT
94
90
  post_install_message:
95
91
  rdoc_options: []
96
-
97
- require_paths:
92
+ require_paths:
98
93
  - lib
99
- required_ruby_version: !ruby/object:Gem::Requirement
94
+ required_ruby_version: !ruby/object:Gem::Requirement
100
95
  none: false
101
- requirements:
102
- - - ">="
103
- - !ruby/object:Gem::Version
104
- hash: -1519006393797098489
105
- segments:
96
+ requirements:
97
+ - - ! '>='
98
+ - !ruby/object:Gem::Version
99
+ version: '0'
100
+ segments:
106
101
  - 0
107
- version: "0"
108
- required_rubygems_version: !ruby/object:Gem::Requirement
102
+ hash: 4169077398743622493
103
+ required_rubygems_version: !ruby/object:Gem::Requirement
109
104
  none: false
110
- requirements:
111
- - - ">="
112
- - !ruby/object:Gem::Version
113
- version: "0"
105
+ requirements:
106
+ - - ! '>='
107
+ - !ruby/object:Gem::Version
108
+ version: '0'
114
109
  requirements: []
115
-
116
110
  rubyforge_project:
117
- rubygems_version: 1.5.0
111
+ rubygems_version: 1.8.10
118
112
  signing_key:
119
113
  specification_version: 3
120
114
  summary: A clean and simple way to manage your application's per-environment constants
121
- test_files:
115
+ test_files:
122
116
  - test/app_constants_spec.rb
123
117
  - test/test_helper.rb