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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2b1f8f834cc3929568933915c10069f888c19c3d0007d1b7fb128f5be45bff91
4
- data.tar.gz: 22cd29c2455dc445d106ed10ebb78c0dfa556b43e9c15dbf48c0078f74284651
3
+ metadata.gz: 81f7dd877779549c7b32707909f9165d0d3e4b51490764301c58315da585cbf7
4
+ data.tar.gz: 48ab0baed120e7892e0398a312a9cc30532946d51e3a08b882094562e5d27601
5
5
  SHA512:
6
- metadata.gz: 0a77a492412d87b446219bca75dc9b852714b53b641474d14bffd9953bf819867350deb5df70d059ecaaeed25b766158c05a7d68a4145851175611dc6c9116c4
7
- data.tar.gz: 786ea962a539e2259a2e0e5f07a2ff99974efc9f5df89c09cc9a40bc469da491f17d3757f46c9ea58999f3d85c5bb387daac5815d2207015fe1417fced95536c
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
@@ -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| " #{k}=#{v.inspect}" }.join(',')
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
- @store&.key?(symbol.to_sym) || super
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 |v|
42
- case v
43
- when self.class then v.to_h
44
- when Array then v.map(&:to_h)
45
- else v
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ECG
4
- VERSION = '0.1.1'
4
+ VERSION = '0.1.2'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ecg
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - epaew