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 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