global 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: bf9612fdc8fa99d0ccb806cdd8f6c997d5341fd2
4
- data.tar.gz: 2fb51ee37ba5a8a8a84030d3a9ca88c659b92546
3
+ metadata.gz: a948818df60cb23dc3695891852506c443ca6130
4
+ data.tar.gz: 8765c67649a429336e040cbbbe000736474646bf
5
5
  SHA512:
6
- metadata.gz: 3c4cd0806d42bc1c84225b93c70d9ce64c6b4d4de551605d0686144b2c1c6acb62a7b99edeecedc08a0253c1764940f3e123f8959cd17eec5a455d1b3748c98f
7
- data.tar.gz: e7c5106419074bd61dbba4ea5ba80f23b237a0a05b6e40aafc1cba80e57588e786f46b87d2777388dd1513cc2983f0415506c064c8b99f72218c2ff59386b494
6
+ metadata.gz: 8b3eaf9cbcb32138af748b51943733026142df18a673bb1bd7a6928aa238d5b5b6b28f59a534eb058110725094e00876257485bb11e77310b2780f841f6a64b6
7
+ data.tar.gz: ca9b019175be4a8e5eccaa6a76e04025022dbde9cb0df498a59747f7e1166df86db231df9340d539b1ffca2d8100e8af3e2a18f82f3cd478c892b775564c4c84
@@ -1,4 +1,4 @@
1
- Copyright (c) 2013 paladiy
1
+ Copyright (c) 2013 Railsware LLC
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
data/README.md CHANGED
@@ -91,9 +91,31 @@ production:
91
91
 
92
92
  Data from default section uses until it's overridden in specific environment.
93
93
 
94
+ ### Nested configurations
95
+
96
+ Config file `global/nested.yml` with:
97
+ ```yml
98
+ test:
99
+ group:
100
+ key: "test value"
101
+ development:
102
+ group:
103
+ key: "development value"
104
+ production:
105
+ group:
106
+ key: "production value"
107
+ ```
108
+
109
+ Access to nested options provides like:
110
+
111
+ ```ruby
112
+ > Global.nested.group.key
113
+ => "development value"
114
+ ```
115
+
94
116
  ### ERB support
95
117
 
96
- Config file 'global/file_name.yml' with:
118
+ Config file `global/file_name.yml` with:
97
119
 
98
120
  ```yml
99
121
  test:
@@ -129,6 +151,6 @@ As a result in development environment we have:
129
151
 
130
152
  ## Copyright
131
153
 
132
- Copyright (c) 2013 paladiy. See LICENSE.txt for
154
+ Copyright (c) 2013 Railsware LLC. See LICENSE.txt for
133
155
  further details.
134
156
 
@@ -4,8 +4,8 @@ require "global/version"
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "global"
6
6
  s.version = Global::VERSION
7
- s.authors = ["paladiy"]
8
- s.email = "olexanderpaladiy@gmail.com"
7
+ s.authors = ["Railsware LLC"]
8
+ s.email = "contact@railsware.com"
9
9
 
10
10
  s.rubyforge_project = "global"
11
11
 
@@ -16,7 +16,13 @@ module Global
16
16
  protected
17
17
 
18
18
  def method_missing(method, *args, &block)
19
- key?(method) ? hash[method] : super
19
+ method = method.to_s[0..-2] if method.to_s[-1] == '?'
20
+ if key?(method)
21
+ value = hash[method]
22
+ value.kind_of?(Hash) ? Global::Configuration.new(value) : value
23
+ else
24
+ super
25
+ end
20
26
  end
21
27
  end
22
28
  end
@@ -1,3 +1,3 @@
1
1
  module Global
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -0,0 +1,5 @@
1
+ :default:
2
+ works: false
3
+
4
+ test:
5
+ works: true
@@ -0,0 +1,11 @@
1
+ :default:
2
+ nested:
3
+ test_value: "default value"
4
+
5
+ test:
6
+ nested:
7
+ test_value: "test value"
8
+
9
+ development:
10
+ nested:
11
+ test_value: "development value"
@@ -1,7 +1,7 @@
1
1
  require "spec_helper"
2
2
 
3
3
  describe Global::Configuration do
4
- let(:hash){ { "key" => "value" } }
4
+ let(:hash){ { "key" => "value", "nested" => { "key" => "value" } } }
5
5
  let(:configuration){ described_class.new hash }
6
6
 
7
7
  describe "#hash" do
@@ -54,5 +54,11 @@ describe Global::Configuration do
54
54
 
55
55
  it{ lambda { subject }.should raise_error(NoMethodError) }
56
56
  end
57
+
58
+ context "with nested hash" do
59
+ subject{ configuration.nested.key }
60
+
61
+ it{ should == "value" }
62
+ end
57
63
  end
58
64
  end
@@ -8,7 +8,7 @@ describe Global do
8
8
 
9
9
  describe ".environment" do
10
10
  subject{ described_class.environment }
11
-
11
+
12
12
  it{ should == "test" }
13
13
 
14
14
  context "when undefined" do
@@ -20,12 +20,12 @@ describe Global do
20
20
 
21
21
  describe ".config_directory" do
22
22
  subject{ described_class.config_directory }
23
-
23
+
24
24
  it{ should == File.join(Dir.pwd, "spec/files")}
25
25
 
26
26
  context "when undefined" do
27
27
  before{ described_class.config_directory = nil }
28
-
28
+
29
29
  it{ lambda{ subject }.should raise_error("config_directory should be defined") }
30
30
  end
31
31
  end
@@ -36,18 +36,23 @@ describe Global do
36
36
  it{ should be_instance_of(Global::Configuration) }
37
37
 
38
38
  context "when load from directory" do
39
- its("rspec_config.to_hash"){ should == {"default_value"=>"default value", "test_value"=>"test value"} }
39
+ its("rspec_config.to_hash"){ should == {"default_value"=>"default value", "test_value"=>"test value"} }
40
40
  end
41
41
 
42
42
  context "when load from file" do
43
43
  before{ described_class.config_directory = File.join(Dir.pwd, "spec/files/rspec_config") }
44
-
45
- its("rspec_config.to_hash"){ should == {"default_value"=>"default value", "test_value"=>"test value"} }
44
+
45
+ its("rspec_config.to_hash"){ should == {"default_value"=>"default value", "test_value"=>"test value"} }
46
46
  end
47
47
 
48
48
  context "when nested directories" do
49
49
  it{ subject.rspec["config"].to_hash.should == {"default_value"=>"default nested value", "test_value"=>"test nested value"} }
50
50
  end
51
+
52
+ context "when boolean" do
53
+ it{ subject.bool_config.works.should == true }
54
+ it{ subject.bool_config.works?.should == true }
55
+ end
51
56
  end
52
57
 
53
58
  context ".reload!" do
@@ -64,7 +69,7 @@ describe Global do
64
69
  end
65
70
 
66
71
  it{ should be_instance_of(Global::Configuration) }
67
- its("rspec_config.to_hash"){ should == {"default_value"=>"default value", "test_value"=>"development value"} }
72
+ its("rspec_config.to_hash"){ should == {"default_value"=>"default value", "test_value"=>"development value"} }
68
73
  end
69
74
 
70
75
  describe ".method_missing" do
@@ -79,5 +84,13 @@ describe Global do
79
84
 
80
85
  it{ lambda{ subject }.should raise_error(NoMethodError) }
81
86
  end
87
+
88
+ context "when file with nested hash" do
89
+ subject{ described_class.nested_config }
90
+
91
+ it{ should be_kind_of(Global::Configuration) }
92
+ end
93
+
82
94
  end
95
+
83
96
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: global
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
- - paladiy
7
+ - Railsware LLC
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-07-24 00:00:00.000000000 Z
11
+ date: 2013-12-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -67,7 +67,7 @@ dependencies:
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  description: Simple way to load your configs from yaml
70
- email: olexanderpaladiy@gmail.com
70
+ email: contact@railsware.com
71
71
  executables: []
72
72
  extensions: []
73
73
  extra_rdoc_files: []
@@ -85,6 +85,8 @@ files:
85
85
  - lib/global/base.rb
86
86
  - lib/global/configuration.rb
87
87
  - lib/global/version.rb
88
+ - spec/files/bool_config.yml
89
+ - spec/files/nested_config.yml
88
90
  - spec/files/rspec/config.yml
89
91
  - spec/files/rspec_config.yml
90
92
  - spec/global/configuration_spec.rb
@@ -110,11 +112,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
110
112
  version: '0'
111
113
  requirements: []
112
114
  rubyforge_project: global
113
- rubygems_version: 2.0.4
115
+ rubygems_version: 2.1.11
114
116
  signing_key:
115
117
  specification_version: 4
116
118
  summary: Simple way to load your configs from yaml
117
119
  test_files:
120
+ - spec/files/bool_config.yml
121
+ - spec/files/nested_config.yml
118
122
  - spec/files/rspec/config.yml
119
123
  - spec/files/rspec_config.yml
120
124
  - spec/global/configuration_spec.rb