stacked_config 1.2.2 → 2.0.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: 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