rock_config 0.0.3 → 0.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/README.md CHANGED
@@ -33,7 +33,7 @@ RockConfig allows you to read these settings with an API like this:
33
33
  elastic_config = RockConfig.for "elastic_search"
34
34
  elastic_config.host # > 127.0.0.1
35
35
 
36
- RockConfig automatically chooses the current application environment. You select the environment yourself
36
+ RockConfig automatically chooses the current application environment. You can select the environment yourself
37
37
  with:
38
38
 
39
39
  RockConfig.for "elastic_search", "production"
@@ -4,18 +4,32 @@ module RockConfig
4
4
  @hash = hash
5
5
  end
6
6
 
7
- def method_missing(*args, &block)
8
- if value = @hash[args.first.to_s]
9
- if Hash === value
10
- Config.new(value)
11
- else
12
- value
13
- end
14
- end
7
+ def [](key)
8
+ fetch(key)
9
+ end
10
+
11
+ def method_missing(name, *args, &block)
12
+ fetch(name.to_s)
15
13
  end
16
14
 
17
15
  def raw
18
16
  @hash.dup
19
17
  end
18
+
19
+ private
20
+
21
+ def fetch(key, default = nil)
22
+ if value = @hash[key.to_s]
23
+ return value_or_config(value)
24
+ end
25
+ end
26
+
27
+ def value_or_config(value)
28
+ if Hash === value
29
+ Config.new(value)
30
+ else
31
+ value
32
+ end
33
+ end
20
34
  end
21
35
  end
@@ -7,7 +7,7 @@ module RockConfig
7
7
 
8
8
  def fetch(config_name, environment)
9
9
  if config = @configs[config_name]
10
- if config_for_environment = config.send(environment)
10
+ if config_for_environment = config[environment]
11
11
  return config_for_environment
12
12
  else
13
13
  raise EnvironmentNotFoundError,
@@ -1,3 +1,3 @@
1
1
  module RockConfig
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
data/spec/config_spec.rb CHANGED
@@ -50,5 +50,18 @@ module RockConfig
50
50
  config = Config.new(hash)
51
51
  config.development.elastic.host.should eq("localhost")
52
52
  end
53
+
54
+ it "supports accessing the values by brackets" do
55
+ hash = {
56
+ "development" => {
57
+ "elastic" => {
58
+ "host" => "localhost"
59
+ }
60
+ }
61
+ }
62
+
63
+ config = Config.new(hash)
64
+ config["development"]["elastic"]["host"].should eq("localhost")
65
+ end
53
66
  end
54
67
  end
data/spec/manager_spec.rb CHANGED
@@ -2,33 +2,26 @@ require "spec_helper"
2
2
 
3
3
  module RockConfig
4
4
  describe Manager do
5
- let(:configuration) { Configuration.new }
5
+ let(:configuration) do
6
+ configuration = Configuration.new
7
+ configuration.scanned_directories << File.join(Dir.pwd, "spec", "fixtures")
8
+ configuration.config_loaders << YamlLoader.new
6
9
 
7
- it "returns config if found" do
8
- result = mock("Config")
9
- result.should_receive(:send).with("development") { "yay" }
10
-
11
- scanner = mock("Scanner")
12
- scanner.should_receive(:new) .with(configuration) { scanner }
13
- scanner.should_receive(:find).with("sample") { result }
14
-
15
- manager = Manager.new(configuration, scanner)
16
- manager_result = manager.fetch "sample", "development"
10
+ configuration
11
+ end
17
12
 
18
- manager_result.should eq("yay")
13
+ it "returns config if found" do
14
+ manager = Manager.new(configuration)
15
+ manager_result = manager.fetch "database", "test"
16
+ manager_result.should_not be_nil
19
17
  end
20
18
 
21
19
  it "raises error if the config doesnt have the environment" do
22
- result = mock("Config")
23
- result.should_receive(:send).with("development") { nil }
24
-
25
- scanner = mock("Scanner")
26
- scanner.should_receive(:new) .with(configuration) { scanner }
27
- scanner.should_receive(:find).with("sample") { result }
20
+ manager = Manager.new(configuration)
21
+ manager_result = manager.fetch "database", "development"
28
22
 
29
- manager = Manager.new(configuration, scanner)
30
23
  expect do
31
- manager_result = manager.fetch "sample", "development"
24
+ manager_result = manager.fetch "database", "me no exist yo"
32
25
  end.to raise_error(EnvironmentNotFoundError)
33
26
  end
34
27
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rock_config
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-11-03 00:00:00.000000000 Z
12
+ date: 2012-11-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake