stacked_config 1.2.2 → 2.0.0

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: aaad69a751d17f8def42463072c1bf81b2ebe779
4
- data.tar.gz: f2d3f33efdc46e9a4249be7e36b4406e63bfc9fd
3
+ metadata.gz: 74648d28f29b32a2a3fcdd704abeafc0219c94c4
4
+ data.tar.gz: f0946ee3a28f3e74ddbb84a0cac5790a1e52ae40
5
5
  SHA512:
6
- metadata.gz: cabb5f83ec75cb1591301164d65c1ecc6ec3f1039b68335f924b81fb40e67a32c49b94f0105e05a0079dc4c8183a4c0495992d625e1d98ed4ab25145c06b9059
7
- data.tar.gz: 051e389cbd48edab3d57bea46eb747095eae4e5658ff9a220668fab4dad22cca63bf615db4be879ef7f5ee4024981a953e65c560c0b1ac9ddbe462ea33c86ccf
6
+ metadata.gz: d0ed84faad7ef2cd9de6e93b1afa0989a8241ad49978d95734005056bb499d80bf9d8a34fee1c423d624f615ac9ba8bbb82dd6e9d8c4a95b238fa5760c0b8272
7
+ data.tar.gz: 3f2893a1d9ebcf9b4863edd1b27882022c17ecf8b5bf9c3f2cc8e6d0574626d4425b77ba3b7b78ad3a98c8edbb3a26ca14488fc23114e9b802c68609fc5c9e02
data/README.md CHANGED
@@ -32,6 +32,9 @@ All the config files are following the [YAML] syntax.
32
32
  __If you're looking for a complete solution for your command line scripts, including some logging features, then you
33
33
  are probably looking for the [easy_app_helper Gem][EAH], which is itself internally relying on [stacked_config][SC].__
34
34
 
35
+ Version 2.x introduces non compatibilities with previous versions. Check [below]
36
+ (#between-version-1x-and-2x) for more info.
37
+
35
38
  Version 1.x introduces some minor non compatibilities with previous versions. Check [below]
36
39
  (#between-version-0x-and-1x) for more info.
37
40
 
@@ -494,6 +497,55 @@ This layer contains the following data:
494
497
 
495
498
  ## Non backward compatible changes
496
499
 
500
+ ### Between version 1.x and 2.x
501
+
502
+ Versions 1.x of this gem were relying on the [super_stack][SS] 0.x, whereas versions 2.x are actually
503
+ relying on the [super_stack][SS] 1.x. The reason why this gem bumps to 2.x is because of non-backward
504
+ compatible features it introduces.
505
+
506
+ Basically it is about clarifying some inconsistencies on how to access the merged tree. Previously for
507
+ the first level (roots) you could access a value using indifferently a symbol or a string as a key,
508
+ ie `manager[:an_entry]` was giving the same result as `manager['an_entry']`.
509
+
510
+ This was clearly wrong and not consistent everywhere.
511
+ __Starting with version `2.0.0` this is no more the case__. Nevertheless a compatibility mode is provided for
512
+ applications relying on the legacy mechanism, you just need to do __just after requiring this gem__:
513
+
514
+ ```ruby
515
+ require 'stacked_config'
516
+ SuperStack.set_compatibility_mode
517
+ ```
518
+
519
+ Of course, if you don't want to use this compatibility mode, this may have an impact on you. As if in
520
+ your code you where using this feature, you either need to change your code or your config files. (to
521
+ access a yaml property as symbol you need to declare it with a leading colon).
522
+
523
+ For example, the following config file:
524
+
525
+ ```yaml
526
+ my_property: a value
527
+ an_array:
528
+ - value 1
529
+ - value 2
530
+ ```
531
+ Could be rewritten as
532
+
533
+ ```yaml
534
+ :my_property: a value
535
+ :an_array:
536
+ - value 1
537
+ - value 2
538
+ ```
539
+ and then if you were accessing my_property in your code using `config[:my_property]`, you won't need
540
+ to change your code without even activating the compatibility mode.
541
+
542
+ Actually depending on your case, you may want to:
543
+
544
+ * Adapt your code to the new version without compatibility mode
545
+ * Adapt your config files to the new version without compatibility mode
546
+ * Use the new version in compatibility mode
547
+ * Keep the old version
548
+
497
549
  ### Between version 0.x and 1.x
498
550
 
499
551
  The Gem layer has not really the same meaning as in version 0.x. In the v1.x it corresponds to the
@@ -1,3 +1,3 @@
1
1
  module StackedConfig
2
- VERSION = '1.2.2'
2
+ VERSION = '2.0.0'
3
3
  end
@@ -29,9 +29,9 @@ describe StackedConfig::Layers::GlobalLayer do
29
29
  end
30
30
 
31
31
  it 'should enable to load the file' do
32
- expect(subject['an_array']).to be_nil
32
+ expect(subject[:an_array]).to be_nil
33
33
  subject.load
34
- expect(subject['an_array']).to be_an Array
34
+ expect(subject[:an_array]).to be_an Array
35
35
  end
36
36
 
37
37
 
@@ -30,9 +30,9 @@ describe StackedConfig::Layers::SystemLayer do
30
30
  end
31
31
 
32
32
  it 'should enable to load the file' do
33
- expect(subject['stacked_config_copyright']).to be_nil
33
+ expect(subject[:stacked_config_copyright]).to be_nil
34
34
  subject.load
35
- expect(subject['stacked_config_copyright']).not_to be_nil
35
+ expect(subject[:stacked_config_copyright]).not_to be_nil
36
36
  end
37
37
 
38
38
 
@@ -28,9 +28,9 @@ describe StackedConfig::Layers::UserLayer do
28
28
  end
29
29
 
30
30
  it 'should enable to load the file' do
31
- expect(subject['an_array']).to be_nil
31
+ expect(subject[:an_array]).to be_nil
32
32
  subject.load
33
- expect(subject['an_array']).to be_an Array
33
+ expect(subject[:an_array]).to be_an Array
34
34
  end
35
35
 
36
36
 
@@ -23,7 +23,7 @@ Gem::Specification.new do |spec|
23
23
  spec.add_development_dependency 'pry'
24
24
  spec.add_development_dependency 'rspec'
25
25
 
26
- spec.add_dependency 'super_stack', '~> 0.5'
26
+ spec.add_dependency 'super_stack', '~> 1.0'
27
27
  spec.add_dependency 'slop', '~> 3.0'
28
28
 
29
29
  end
data/test/specific.yml CHANGED
@@ -1,6 +1,6 @@
1
1
  # This is supposed to be a file loaded using the config-file command line option.
2
2
  # It is dedicated to configuration for this particular user running the program.
3
3
 
4
- specific_property: foo
5
- an_array:
4
+ :specific_property: foo
5
+ :an_array:
6
6
  - something very specific
@@ -2,6 +2,6 @@
2
2
  # It is dedicated to configuration for this particular user running the program rspec.
3
3
  # To be used at user level
4
4
 
5
- gem_property: foo
6
- an_array:
5
+ :gem_property: foo
6
+ :an_array:
7
7
  - something super weird (at executable gem level)
@@ -2,6 +2,6 @@
2
2
  # It is dedicated to configuration for this particular user running the program rspec.
3
3
  # To be used at user level
4
4
 
5
- gem_property: foo
6
- an_array:
5
+ :gem_property: foo
6
+ :an_array:
7
7
  - something super weird (at gem level)
@@ -2,7 +2,7 @@
2
2
  # It is dedicated to configuration for all users running the program rspec
3
3
  # To be used at administrator level only
4
4
 
5
- global_property: foo
6
- an_array:
5
+ :global_property: foo
6
+ :an_array:
7
7
  - defined at global level
8
8
  - pretty cool (global)
@@ -2,5 +2,5 @@
2
2
  # It is dedicated to configuration for all gems that would use the stacked_config gem.
3
3
  # To be used at administrator level only
4
4
 
5
- stacked_config_copyright: (c)2014 L.Briais under MIT license
6
- system_property: foo
5
+ :stacked_config_copyright: (c)2014 L.Briais under MIT license
6
+ :system_property: foo
@@ -2,6 +2,6 @@
2
2
  # It is dedicated to configuration for this particular user running the program rspec.
3
3
  # To be used at user level
4
4
 
5
- user_property: foo
6
- an_array:
5
+ :user_property: foo
6
+ :an_array:
7
7
  - something weird (at user level)
@@ -2,4 +2,4 @@
2
2
  # It is dedicated to configuration for this particular user running the program rspec.
3
3
  # To be used at user level
4
4
 
5
- weird_property: Defined in 'weird_name' config file.
5
+ :weird_property: Defined in 'weird_name' config file.
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stacked_config
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.2
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Laurent B.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-07-09 00:00:00.000000000 Z
11
+ date: 2016-07-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -72,14 +72,14 @@ dependencies:
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '0.5'
75
+ version: '1.0'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '0.5'
82
+ version: '1.0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: slop
85
85
  requirement: !ruby/object:Gem::Requirement