configurate 0.0.3 → 0.0.5

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b50fb25fde4dc42ae6cdc150bb6042fea6c0cd09
4
- data.tar.gz: 3a9b3988d4d030c58a14d58c116fdb6a3682629c
3
+ metadata.gz: ba2e5111a8d1a9882b5230e9ec15e673f2cb9e37
4
+ data.tar.gz: 28355f0874ff30a9607947a41da514fb1afdcb03
5
5
  SHA512:
6
- metadata.gz: b30760168a9e5da90281dd3756f661c05ef4db4f27a8cce9eb08c1d3fb3cf2ad609992af0685511ad027eb6398665a12c07b87f6e508e08cbe05643a740abcd5
7
- data.tar.gz: 387ce8d7237c183a3b214b9308d5c3227dfef1dbeea7b1ff97c208bceae2888483f2efce0aae60190a49c81e64e27ed20da6897741ec69e82078cfe4454677da
6
+ metadata.gz: 5a0bbf13823232c663225f52978c9a73d132d36e7ff16338b9d3181ec6d0c8faba3001839e0f50f7b1fb700c4516bc64606da7d4e209906524889fc0a672ab09
7
+ data.tar.gz: 25f1d06312902b428bf488894b76930df32b392b25964e10271e26bf09df2841a83471c6a9fde0cbb7aae99019195d6e4438c166c9a21356b97c459db4f474b3
@@ -1,11 +1,11 @@
1
1
  -----BEGIN PGP SIGNATURE-----
2
2
  Version: GnuPG v2.0.19 (GNU/Linux)
3
3
 
4
- iQEcBAABAgAGBQJRaxYFAAoJEPNH4OtHrHDWk80H/jAcCNmTYyFrUrm6lK3kOlo3
5
- SnhKm+xDqB/izEJD7EZMtCEPVeC4ArrNbrN10PJZ6mQgHApenBJ5CDXqFdlTIT0b
6
- n+qFL+kcfK0abBrJz5g0Sv4wS5rCDWWYZLl4CiGLmbalQRB6fSsWiXFNlBVawt7l
7
- 88ZGE8vL8eR/F0JycjiE6fjryvg8qplZiC7NzqkpSmN0hxzqc5leHY7JoYgAP4PN
8
- cloCT0I3iUH+fCqez8ujX3NX2RdURVfL+bilLf4LROOlaAvZgYYjngWUOWFnv3AJ
9
- e9+JXSgNme9zmuTA/DtD29r9CSHf0Sc7EO18vJrJTJ6a+Dv9Qe/2IwBYWkmibdo=
10
- =rgFX
4
+ iQEcBAABAgAGBQJRa/mCAAoJEPNH4OtHrHDWMN4IAKejANfU2ta7YG9RixX5PHmu
5
+ /AjTlpUCg/7InjX/xFmxUQo5MCuHxy9RImb12dA5k60MmLrIdNnFmUnBemyiwgo6
6
+ 9ArIc1qYX0C5GWFVOMWgRmfviPpW1cTGLSdd98sTlHMQcfT1IThS/ObXZZFZY1WS
7
+ BVxXEOpGDUf251HzCOWcaLz8VFumzht+gdWg6A2RtAToQnrDRXLwm/aRTr4dFYYm
8
+ sWi94JtRLOggNG8IqCkvv9AXn27ptkR+LOgnyXG9viUQx8XqPAdsssZ/Z3E5JGQN
9
+ Kjj9PtQrL50mi4EotRXFjlQ5H/qwunI1yqtBLDDOMM+uWbfkoPvuLdHa+dv7lE0=
10
+ =p6W9
11
11
  -----END PGP SIGNATURE-----
data.tar.gz.asc CHANGED
@@ -1,11 +1,11 @@
1
1
  -----BEGIN PGP SIGNATURE-----
2
2
  Version: GnuPG v2.0.19 (GNU/Linux)
3
3
 
4
- iQEcBAABAgAGBQJRaxYFAAoJEPNH4OtHrHDWpOIH/jkbHhYBNcCMizn4WTWWKvx+
5
- rIUozwKicxON4uebRoP6RIuzKQzhSs1mYZbQebo4qY/EVAI2zU+ysuyhCJlsELZG
6
- Au/Lh3xYCS7OIP3KGVCo8eblenEG0OjaeDIfe08TuoZumx9Hv39jmK6uRG9jvCBX
7
- tEZmw1T2bDn2uDOaolUD7BiMZgXYigH4RIZcpsd7qb7nniyHH7ULET2ofSWQpK3a
8
- GGHV6yZdtbgnpt3f4o3dFKF4+aEYmWZ/deJbCwsvA9rNIIDfQZzS91sNCQAPp7RK
9
- y8ryytPhGb2hCUqgNLZpNg/cfSwgkU3PRmcq2q8FxHvu9qCxafgmSYq4LWy70tA=
10
- =99eN
4
+ iQEcBAABAgAGBQJRa/mCAAoJEPNH4OtHrHDWbEYH/jS9zjsEY7m3WWU9ip+udadO
5
+ N2ct1TE64CI1FcnhcUMGPea29M97t0qaEJyCR5woGAmHXM7jMMIYByb6wTtzAr6x
6
+ i5MRnckiiDO/XmcFEgoEeCBQ9tpNhXXvBKVbCBguDGyNitlYbp0t9k8/u+PTMaFq
7
+ 3g7PTAuZvX4Nv7B6rLucNG1B9wovy8rDpx1IRqaesVO02iKSG97pkuEfpcIIIPGG
8
+ 6neSFek+pOhu7RDs7n5PUJDjT1XJhg7e+u8a8mKkc55mt4qRrADiOw1tcEslBt7M
9
+ 6S8v5rXW0gH7KfsNhtucXvOVRVxkM9fBRiQeBLaW44QlBBkdrFT+4CeSLEKBEzk=
10
+ =O1N3
11
11
  -----END PGP SIGNATURE-----
@@ -34,7 +34,7 @@ module Configurate
34
34
  setting = SettingPath.from_string(setting) if setting.is_a? String
35
35
  @provider.each do |provider|
36
36
  begin
37
- return special_value_or_string(provider.lookup(setting, *args))
37
+ return special_value_or_string(provider.lookup(setting.dup, *args))
38
38
  rescue SettingNotFoundError; end
39
39
  end
40
40
 
@@ -36,7 +36,7 @@ module Configurate
36
36
  end
37
37
 
38
38
  def respond_to?(method, include_private=false)
39
- method == :_proxy? || target.respond_to?(method, include_private)
39
+ method == :_proxy? || target_respond_to?(method, include_private)
40
40
  end
41
41
 
42
42
  def send(*args, &block)
@@ -66,13 +66,13 @@ module Configurate
66
66
  private
67
67
  COMMON_KEY_NAMES = [:key, :method]
68
68
 
69
- def target_respond_to?(setting)
69
+ def target_respond_to?(setting, include_private=false)
70
70
  return false if COMMON_KEY_NAMES.include? setting
71
71
 
72
72
  value = target
73
73
  return false if value.respond_to?(:_proxy?) && value._proxy?
74
74
 
75
- value.respond_to?(setting)
75
+ value.respond_to?(setting, include_private)
76
76
  end
77
77
  end
78
78
  end
@@ -19,6 +19,10 @@ module Configurate
19
19
  last.to_s.end_with?("=")
20
20
  end
21
21
 
22
+ def <<(component)
23
+ super component.to_s
24
+ end
25
+
22
26
  def to_s
23
27
  join(".").chomp("?").chomp("=")
24
28
  end
@@ -42,6 +42,25 @@ describe Configurate::LookupChain do
42
42
 
43
43
  subject.lookup(setting)
44
44
  end
45
+
46
+ it "converts a string to a SettingPath" do
47
+ provider = @provider.first
48
+ path = stub
49
+ path.stub(:stub).and_return(path)
50
+ provider.should_receive(:lookup).with(path).and_raise(Configurate::SettingNotFoundError)
51
+ setting = "bar"
52
+ Configurate::SettingPath.should_receive(:from_string).with(setting).and_return(path)
53
+ subject.lookup(setting)
54
+ end
55
+
56
+ it "passes a copy of the SettingPath to the provider" do
57
+ provider = @provider.first
58
+ path = mock("path")
59
+ copy = stub("copy")
60
+ path.should_receive(:dup).at_least(:once).and_return(copy)
61
+ provider.should_receive(:lookup).with(copy).and_raise(Configurate::SettingNotFoundError)
62
+ subject.lookup(path)
63
+ end
45
64
 
46
65
  it "stops if a value is found" do
47
66
  @provider[0].should_receive(:lookup).and_return("something")
@@ -37,6 +37,14 @@ describe Configurate::SettingPath do
37
37
  end
38
38
  end
39
39
 
40
+ describe "#<<" do
41
+ it 'converts the argument to a string' do
42
+ arg = mock
43
+ arg.should_receive(:to_s).and_return('bar')
44
+ described_class.new << arg
45
+ end
46
+ end
47
+
40
48
  describe "#to_s" do
41
49
  let(:path) { "example.path" }
42
50
  subject { described_class.new(path.split(".")).to_s }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: configurate
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonne Haß
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-04-14 00:00:00.000000000 Z
11
+ date: 2013-04-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
metadata.gz.asc CHANGED
@@ -1,11 +1,11 @@
1
1
  -----BEGIN PGP SIGNATURE-----
2
2
  Version: GnuPG v2.0.19 (GNU/Linux)
3
3
 
4
- iQEcBAABAgAGBQJRaxYFAAoJEPNH4OtHrHDW48EIAKYLXtBlFZNnezvqLJr7aQYt
5
- 6HGva0USAoso1Rvn7t3HV4BIR7rFhscOUMMWwddHElNMnLxzsQU1vLQ0Zzk7+bGZ
6
- pR2irAuTjEJHZUCifVwSmIGK5CbyHbwqDhFOhexQOh8cPxYWo3IcHT/Pq7H3graS
7
- /POfxD1kUClc/l/NMV0OdCCXjdDisbVP+j2Ju6pNQU8QPk7QOjKDlmx7WTmlP3c7
8
- RA+gzCqxpYw2+F6XHCFoQRAdb8KYLOkn2YGUmGzcpbh19qniEMTVcum4YhWqvG+S
9
- 3igR/0DX219J0332XhbqlcLzfcB+EeGHrRKlY1LGm8JeHA9MR6JNGpoROSPP2TY=
10
- =0vyr
4
+ iQEcBAABAgAGBQJRa/mCAAoJEPNH4OtHrHDWko0H/3ehr8t5DF3gsssk+8hd4p2T
5
+ wVPdWmzDovXT2zqM56MTCPtpKPQsG7/DaRvhxWIu/XfAmGpGuUTuNjLOURvslNun
6
+ aii2q7ZIJPiRkQPh38DQ+56k1xU3b8jtkgumHqQBFCnJr9wmXAF6XXM9NebeAktc
7
+ mfYNsJPye8oVUe8XsmVaDVNgVAY95FvG82E85ATIhL0muWTMLKhEzzuCVq59ZNVO
8
+ LOq7Ryh9Zb/xKo+ybb1vQujxQ4Db+offzKrpMmcQguVW9XKfitV8xd6wwaw6d/dr
9
+ jahH4UjIrsImu2eootgTT89gxjCkD1tXyH+UIm7PgoW551VsPk6N5YWhTXpg4s8=
10
+ =Tp+n
11
11
  -----END PGP SIGNATURE-----