complex_config 0.7.0 → 0.8.0

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: d74e24dc69a917bf0f1e11a3d8a93238c11de4be
4
- data.tar.gz: d4c8f847392f993b03097ce58c3ea9d96ac8e5c7
3
+ metadata.gz: cf10d84d59d6c5fba770ffb599b24b2351d8cdc4
4
+ data.tar.gz: 4e02c4fe70c59842bc0f1da2062c804568887b95
5
5
  SHA512:
6
- metadata.gz: a9412892436dd53c2fa3d2570825b64acc947bb1c78b583b99e61e84747b4fb88077e1704c1f06c0a02eb112112cff911a90de5e7d456015365004a93a08445d
7
- data.tar.gz: 0a56013a9ea6a9afcb7aa194f689bf3ae7a05d1d6972e64837506a472f78a8217fab40ee8a6a084b30b0bcc337d30aad2b4262b651816fac59a8e1a68f30543e
6
+ metadata.gz: 98ec0b6c60695e4e95e65d3554c46676c787c9f64f73c853a97f20a13d6882cc5f025ed4f3c67464dc23acee82c94067b4d15d381ba5d227b72a9f012365ed81
7
+ data.tar.gz: b9e7d00e093ee401241d8689d295c0422677833d286fc88a60e4f3b0d4ac326e6e8085ef0fd5d101bb5f92a3e10f15e27cd623ae1fe422743a87da718432f5a5
data/README.md CHANGED
@@ -144,6 +144,10 @@ Here is the `ComplexConfig::Plugins::MONEY` plugin for example:
144
144
 
145
145
  ## Changes
146
146
 
147
+ * 2016-07-21 Release 0.8.0
148
+ * `ComplexConfig::Settings` can be replaced with `replace_attributes` which
149
+ allows for easier testing by calling:
150
+ `cc.foo.replace_attributes(new: 'settings')`.
147
151
  * 2016-07-15 Release 0.7.0
148
152
  * Slim down `ComplexConfig::Settings` interface to avoid clashes with methods
149
153
  mixed into `Object` class or `Enumerable#instance_methods`
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.7.0
1
+ 0.8.0
@@ -1,14 +1,14 @@
1
1
  # -*- encoding: utf-8 -*-
2
- # stub: complex_config 0.7.0 ruby lib
2
+ # stub: complex_config 0.8.0 ruby lib
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "complex_config"
6
- s.version = "0.7.0"
6
+ s.version = "0.8.0"
7
7
 
8
8
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
9
9
  s.require_paths = ["lib"]
10
10
  s.authors = ["Florian Frank"]
11
- s.date = "2016-07-18"
11
+ s.date = "2016-07-27"
12
12
  s.description = "This library allows you to access configuration files via a simple interface"
13
13
  s.email = "flori@ping.de"
14
14
  s.extra_rdoc_files = ["README.md", "lib/complex_config.rb", "lib/complex_config/config.rb", "lib/complex_config/errors.rb", "lib/complex_config/plugins.rb", "lib/complex_config/plugins/enable.rb", "lib/complex_config/plugins/money.rb", "lib/complex_config/plugins/uri.rb", "lib/complex_config/provider.rb", "lib/complex_config/proxy.rb", "lib/complex_config/railtie.rb", "lib/complex_config/rude.rb", "lib/complex_config/settings.rb", "lib/complex_config/shortcuts.rb", "lib/complex_config/version.rb"]
@@ -69,6 +69,11 @@ class ComplexConfig::Settings < BasicObject
69
69
  @table.values
70
70
  end
71
71
 
72
+ def replace_attributes(hash)
73
+ @table = self.class.from_hash(hash).table
74
+ self
75
+ end
76
+
72
77
  def to_h
73
78
  table_enumerator.each_with_object({}) do |(k, v), h|
74
79
  h[k] =
@@ -160,10 +165,12 @@ class ComplexConfig::Settings < BasicObject
160
165
  table_enumerator.each(&block)
161
166
  end
162
167
 
163
- private
168
+ protected
164
169
 
165
170
  attr_reader :table
166
171
 
172
+ private
173
+
167
174
  def table_enumerator
168
175
  @table.enum_for(:each)
169
176
  end
@@ -1,6 +1,6 @@
1
1
  module ComplexConfig
2
2
  # ComplexConfig version
3
- VERSION = '0.7.0'
3
+ VERSION = '0.8.0'
4
4
  VERSION_ARRAY = VERSION.split('.').map(&:to_i) # :nodoc:
5
5
  VERSION_MAJOR = VERSION_ARRAY[0] # :nodoc:
6
6
  VERSION_MINOR = VERSION_ARRAY[1] # :nodoc:
@@ -124,4 +124,10 @@ EOT
124
124
  settings = ComplexConfig::Settings[zip: 'a string']
125
125
  expect(settings.zip).to eq 'a string'
126
126
  end
127
+
128
+ it 'can be replaced for testing' do
129
+ result = settings.foo.replace_attributes(replaced: true)
130
+ expect(settings.foo.replaced).to eq true
131
+ expect(settings.foo).to eq result
132
+ end
127
133
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: complex_config
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Florian Frank
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-07-18 00:00:00.000000000 Z
11
+ date: 2016-07-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gem_hadar