ecg 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
[![Gem Version](https://badge.fury.io/rb/ecg.svg)](https://badge.fury.io/rb/ecg)
|
3
|
+
[![Build Status](https://github.com/epaew/ecg/workflows/TestUnit/badge.svg)](https://github.com/epaew/ecg/actions)
|
4
|
+
[![Maintainability](https://api.codeclimate.com/v1/badges/a043130a95580dc41610/maintainability)](https://codeclimate.com/github/epaew/ecg/maintainability)
|
5
|
+
[![Test Coverage](https://api.codeclimate.com/v1/badges/a043130a95580dc41610/test_coverage)](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