ecg 0.1.1 → 0.1.2
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 +4 -4
- data/README.md +5 -0
- data/lib/ecg/option_parser.rb +5 -1
- data/lib/ecg/store.rb +17 -10
- data/lib/ecg/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 81f7dd877779549c7b32707909f9165d0d3e4b51490764301c58315da585cbf7
|
4
|
+
data.tar.gz: 48ab0baed120e7892e0398a312a9cc30532946d51e3a08b882094562e5d27601
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d281193f36bcbdd4de0ed51196a109e8e50baf27ce183d32012c4ac85805bf9c8668f8c590bb30439cd10cf4ec3931df156db351f23cc3ce6e8d3cf05322bd73
|
7
|
+
data.tar.gz: aa9f2782085a6747227a04529ee6f7efacf0f338e562f5230e2b4e8a173c1dd75c35f864222127cf4876f5422bded891c08176168d93f67bd31957571e2d4b67
|
data/README.md
CHANGED
@@ -1,4 +1,9 @@
|
|
1
1
|
# ecg
|
2
|
+
[](https://badge.fury.io/rb/ecg)
|
3
|
+
[](https://github.com/epaew/ecg/actions)
|
4
|
+
[](https://codeclimate.com/github/epaew/ecg/maintainability)
|
5
|
+
[](https://codeclimate.com/github/epaew/ecg/test_coverage)
|
6
|
+
|
2
7
|
ecg is an ERB(eRuby) based, simple and powerful configration file generator for general purpose.
|
3
8
|
|
4
9
|
## Requirements
|
data/lib/ecg/option_parser.rb
CHANGED
@@ -9,7 +9,7 @@ module ECG
|
|
9
9
|
class OptionParser
|
10
10
|
attr_reader :args, :option
|
11
11
|
|
12
|
-
def initialize(args)
|
12
|
+
def initialize(args = [])
|
13
13
|
@args = args
|
14
14
|
@option = {}
|
15
15
|
end
|
@@ -62,6 +62,10 @@ module ECG
|
|
62
62
|
key, value = str.split('=', 2)
|
63
63
|
@option[key] = value
|
64
64
|
end
|
65
|
+
opt.on('-V', '--version', 'Print version information') do
|
66
|
+
puts "#{File.basename($PROGRAM_NAME)} #{ECG::VERSION}"
|
67
|
+
exit
|
68
|
+
end
|
65
69
|
opt.on('-h', '--help', 'Print this help message', &method(:print_help))
|
66
70
|
end
|
67
71
|
end
|
data/lib/ecg/store.rb
CHANGED
@@ -7,7 +7,7 @@ module ECG
|
|
7
7
|
@store = map.to_h
|
8
8
|
end
|
9
9
|
|
10
|
-
def initialize_copy
|
10
|
+
def initialize_copy(obj)
|
11
11
|
super
|
12
12
|
@store = @store.dup
|
13
13
|
end
|
@@ -17,8 +17,8 @@ module ECG
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def inspect
|
20
|
-
detail = @store.map { |k, v| "
|
21
|
-
"#<#{self.class}#{detail}>"
|
20
|
+
detail = @store.map { |k, v| " @#{k}=#{v.inspect}" }.join(',')
|
21
|
+
"#<#{self.class}:#{object_id << 1}#{detail}>"
|
22
22
|
end
|
23
23
|
|
24
24
|
def method_missing(name, *args)
|
@@ -27,22 +27,29 @@ module ECG
|
|
27
27
|
if @store.key?(name)
|
28
28
|
transform_value(@store[name])
|
29
29
|
elsif @store.respond_to?(name)
|
30
|
-
@store.public_send(name)
|
30
|
+
@store.public_send(name, *args)
|
31
31
|
else
|
32
32
|
super
|
33
33
|
end
|
34
34
|
end
|
35
35
|
|
36
36
|
def respond_to_missing?(symbol, include_private = false)
|
37
|
-
|
37
|
+
symbol = symbol.to_sym
|
38
|
+
|
39
|
+
@store.key?(symbol) || @store.respond_to?(symbol) || super
|
38
40
|
end
|
39
41
|
|
40
42
|
def to_h
|
41
|
-
@store.transform_values do |
|
42
|
-
case
|
43
|
-
when self.class
|
44
|
-
|
45
|
-
|
43
|
+
@store.transform_values do |value|
|
44
|
+
case value
|
45
|
+
when self.class
|
46
|
+
value.to_h
|
47
|
+
when Array
|
48
|
+
value.map do |element|
|
49
|
+
element.respond_to?(:to_h) ? element.to_h : element
|
50
|
+
end
|
51
|
+
else
|
52
|
+
value
|
46
53
|
end
|
47
54
|
end
|
48
55
|
end
|
data/lib/ecg/version.rb
CHANGED