dead_simple_conf 1.0.0 → 1.1.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 +7 -0
- data/README.md +7 -0
- data/Rakefile +7 -1
- data/dead_simple_conf.gemspec +3 -3
- data/lib/dead_simple_conf.rb +9 -0
- data/lib/dead_simple_conf/version.rb +1 -1
- data/specs/lib/dead_simple_conf_spec.rb +41 -0
- metadata +58 -39
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 2a87ddd9d150a950b3cb917f3abe5d0b1046c65b
|
4
|
+
data.tar.gz: 27c699aff7fd23de51c9556155c31a1d79504dc9
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 670b596e32aa97aa583d377ff1e18f768790aff4d6b69c9ab8d362757ec9f92db4bceb2afd2bdeb9b15face728b12603fcd92bfe3c545dfd8292ca433e85c6a2
|
7
|
+
data.tar.gz: 43f910a966769f8b0530fdd9e7d7525721f3be2435eec93aefe672b1d80002602daa9e8a594a9185f2c8be96a008317cae0e57a5de0ee24e465e52e43ead1209
|
data/README.md
CHANGED
@@ -6,6 +6,13 @@ too complicated.
|
|
6
6
|
I decided to extract this code in a proper gem when I got tired of copying it over
|
7
7
|
and over in my projects.
|
8
8
|
|
9
|
+
# Continuous integration ([](http://travis-ci.org/schmurfy/dead_simple_conf))
|
10
|
+
|
11
|
+
This gem is tested against these ruby by travis-ci.org:
|
12
|
+
|
13
|
+
- mri 1.9.2
|
14
|
+
- mri 1.8.7
|
15
|
+
|
9
16
|
# What this gem provides
|
10
17
|
|
11
18
|
My requirements for a config parser are:
|
data/Rakefile
CHANGED
@@ -1,8 +1,14 @@
|
|
1
1
|
require "bundler/gem_tasks"
|
2
2
|
|
3
|
+
task :default => :test
|
4
|
+
|
3
5
|
task :test do
|
4
6
|
require 'bacon'
|
5
|
-
|
7
|
+
|
8
|
+
# do not generate coverage report from travis
|
9
|
+
unless ENV['TRAVIS']
|
10
|
+
ENV['COVERAGE'] = "1"
|
11
|
+
end
|
6
12
|
|
7
13
|
# Bacon.summary_on_exit
|
8
14
|
|
data/dead_simple_conf.gemspec
CHANGED
@@ -17,10 +17,10 @@ Gem::Specification.new do |s|
|
|
17
17
|
s.test_files = `git ls-files -- specs/*`.split("\n")
|
18
18
|
s.require_paths = ["lib"]
|
19
19
|
|
20
|
-
s.add_development_dependency 'schmurfy-bacon', '
|
21
|
-
s.add_development_dependency 'guard-bacon', '
|
20
|
+
s.add_development_dependency 'schmurfy-bacon', '> 1.2'
|
21
|
+
s.add_development_dependency 'guard-bacon', '> 1.0.2'
|
22
22
|
s.add_development_dependency "growl", '~> 1.0.3'
|
23
|
-
s.add_development_dependency "rb-fsevent", '
|
23
|
+
s.add_development_dependency "rb-fsevent", '> 0.4.3'
|
24
24
|
s.add_development_dependency "mocha", '~> 0.10.0'
|
25
25
|
s.add_development_dependency "simplecov", '~> 0.5.3'
|
26
26
|
s.add_development_dependency "rake", '~> 0.9.2'
|
data/lib/dead_simple_conf.rb
CHANGED
@@ -12,6 +12,15 @@ module DeadSimpleConf
|
|
12
12
|
end
|
13
13
|
end
|
14
14
|
|
15
|
+
def self.sub_array(name, klass)
|
16
|
+
attr_reader(name)
|
17
|
+
|
18
|
+
define_method("#{name}=") do |arr|
|
19
|
+
res = arr.map{|itm| klass.new(itm) }
|
20
|
+
instance_variable_set("@#{name}", res)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
15
24
|
def initialize(attributes)
|
16
25
|
_load_data(attributes)
|
17
26
|
end
|
@@ -44,6 +44,47 @@ describe 'DeadSimpleConf' do
|
|
44
44
|
end
|
45
45
|
end
|
46
46
|
|
47
|
+
describe 'array subsections' do
|
48
|
+
before do
|
49
|
+
@conf_data = YAML.load(%{
|
50
|
+
login: user_login
|
51
|
+
path: /tmp
|
52
|
+
|
53
|
+
servers:
|
54
|
+
- address: 127.0.0.1
|
55
|
+
port: 5000
|
56
|
+
- address: 1.2.3.4
|
57
|
+
port: 42
|
58
|
+
})
|
59
|
+
end
|
60
|
+
|
61
|
+
should 'parse it with correct loader' do
|
62
|
+
class ServersSectionBlock < DeadSimpleConf::ConfigBlock
|
63
|
+
attr_accessor :address, :port
|
64
|
+
end
|
65
|
+
|
66
|
+
main_block = Class.new(DeadSimpleConf::ConfigBlock) do
|
67
|
+
attr_accessor :login, :path
|
68
|
+
sub_array :servers, ServersSectionBlock
|
69
|
+
end
|
70
|
+
|
71
|
+
data = main_block.new(@conf_data)
|
72
|
+
data.login.should == "user_login"
|
73
|
+
data.path.should == "/tmp"
|
74
|
+
|
75
|
+
data.servers.size.should == 2
|
76
|
+
data.servers[0].tap do |s|
|
77
|
+
s.address.should == '127.0.0.1'
|
78
|
+
s.port.should == 5000
|
79
|
+
end
|
80
|
+
|
81
|
+
data.servers[1].tap do |s|
|
82
|
+
s.address.should == '1.2.3.4'
|
83
|
+
s.port.should == 42
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
47
88
|
describe 'multi level config' do
|
48
89
|
before do
|
49
90
|
@conf_data = YAML.load(%{
|
metadata
CHANGED
@@ -1,101 +1,121 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dead_simple_conf
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
5
|
-
prerelease:
|
4
|
+
version: 1.1.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Julien Ammous
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2017-08-16 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: schmurfy-bacon
|
16
|
-
requirement:
|
17
|
-
none: false
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - ">"
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '1.2'
|
22
20
|
type: :development
|
23
21
|
prerelease: false
|
24
|
-
version_requirements:
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.2'
|
25
27
|
- !ruby/object:Gem::Dependency
|
26
28
|
name: guard-bacon
|
27
|
-
requirement:
|
28
|
-
none: false
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
29
30
|
requirements:
|
30
|
-
- -
|
31
|
+
- - ">"
|
31
32
|
- !ruby/object:Gem::Version
|
32
33
|
version: 1.0.2
|
33
34
|
type: :development
|
34
35
|
prerelease: false
|
35
|
-
version_requirements:
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 1.0.2
|
36
41
|
- !ruby/object:Gem::Dependency
|
37
42
|
name: growl
|
38
|
-
requirement:
|
39
|
-
none: false
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
40
44
|
requirements:
|
41
|
-
- - ~>
|
45
|
+
- - "~>"
|
42
46
|
- !ruby/object:Gem::Version
|
43
47
|
version: 1.0.3
|
44
48
|
type: :development
|
45
49
|
prerelease: false
|
46
|
-
version_requirements:
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 1.0.3
|
47
55
|
- !ruby/object:Gem::Dependency
|
48
56
|
name: rb-fsevent
|
49
|
-
requirement:
|
50
|
-
none: false
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
51
58
|
requirements:
|
52
|
-
- -
|
59
|
+
- - ">"
|
53
60
|
- !ruby/object:Gem::Version
|
54
61
|
version: 0.4.3
|
55
62
|
type: :development
|
56
63
|
prerelease: false
|
57
|
-
version_requirements:
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 0.4.3
|
58
69
|
- !ruby/object:Gem::Dependency
|
59
70
|
name: mocha
|
60
|
-
requirement:
|
61
|
-
none: false
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
62
72
|
requirements:
|
63
|
-
- - ~>
|
73
|
+
- - "~>"
|
64
74
|
- !ruby/object:Gem::Version
|
65
75
|
version: 0.10.0
|
66
76
|
type: :development
|
67
77
|
prerelease: false
|
68
|
-
version_requirements:
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 0.10.0
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: simplecov
|
71
|
-
requirement:
|
72
|
-
none: false
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
73
86
|
requirements:
|
74
|
-
- - ~>
|
87
|
+
- - "~>"
|
75
88
|
- !ruby/object:Gem::Version
|
76
89
|
version: 0.5.3
|
77
90
|
type: :development
|
78
91
|
prerelease: false
|
79
|
-
version_requirements:
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 0.5.3
|
80
97
|
- !ruby/object:Gem::Dependency
|
81
98
|
name: rake
|
82
|
-
requirement:
|
83
|
-
none: false
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
84
100
|
requirements:
|
85
|
-
- - ~>
|
101
|
+
- - "~>"
|
86
102
|
- !ruby/object:Gem::Version
|
87
103
|
version: 0.9.2
|
88
104
|
type: :development
|
89
105
|
prerelease: false
|
90
|
-
version_requirements:
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 0.9.2
|
91
111
|
description: YAML Config loader
|
92
112
|
email: []
|
93
113
|
executables: []
|
94
114
|
extensions: []
|
95
115
|
extra_rdoc_files: []
|
96
116
|
files:
|
97
|
-
- .gitignore
|
98
|
-
- .travis.yml
|
117
|
+
- ".gitignore"
|
118
|
+
- ".travis.yml"
|
99
119
|
- Gemfile
|
100
120
|
- Guardfile
|
101
121
|
- LICENSE
|
@@ -110,27 +130,26 @@ files:
|
|
110
130
|
- specs/lib/dead_simple_conf_spec.rb
|
111
131
|
homepage: ''
|
112
132
|
licenses: []
|
133
|
+
metadata: {}
|
113
134
|
post_install_message:
|
114
135
|
rdoc_options: []
|
115
136
|
require_paths:
|
116
137
|
- lib
|
117
138
|
required_ruby_version: !ruby/object:Gem::Requirement
|
118
|
-
none: false
|
119
139
|
requirements:
|
120
|
-
- -
|
140
|
+
- - ">="
|
121
141
|
- !ruby/object:Gem::Version
|
122
142
|
version: '0'
|
123
143
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
124
|
-
none: false
|
125
144
|
requirements:
|
126
|
-
- -
|
145
|
+
- - ">="
|
127
146
|
- !ruby/object:Gem::Version
|
128
147
|
version: '0'
|
129
148
|
requirements: []
|
130
149
|
rubyforge_project: dead_simple_conf
|
131
|
-
rubygems_version:
|
150
|
+
rubygems_version: 2.5.1
|
132
151
|
signing_key:
|
133
|
-
specification_version:
|
152
|
+
specification_version: 4
|
134
153
|
summary: Config loader
|
135
154
|
test_files:
|
136
155
|
- specs/common.rb
|