keyword_init 1.4.0 → 1.5.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/.gitignore +4 -2
- data/.travis.yml +17 -7
- data/Gemfile +1 -1
- data/README.md +45 -15
- data/keyword_init.gemspec +15 -15
- data/lib/keyword_init.rb +44 -8
- data/lib/keyword_init/version.rb +1 -1
- data/spec/keyword_init_spec.rb +97 -14
- data/spec/spec_helper.rb +2 -2
- metadata +28 -55
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 0e8bc2a63aa1c7e7e6548c160bc51df2f23dfe1b
|
4
|
+
data.tar.gz: 57660108296d0af296eb473a9e318c63c10be197
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 138568b1d59f117a0f15ebeb8d9fb336d8c48eca62766000dab45ab32cfb0c75746ea42b034e335dba5ff5e86c244e44c7294d73f54b84cd41bd8596b9366f14
|
7
|
+
data.tar.gz: 118fa2ee52b19fe221dc6b52576aeab6c15627bfe81af639f97ef0610cdef4d1f471d9e55ae703adcf3df24b6dc4fe660b2749905413362640d8fe939bd189c5
|
data/.gitignore
CHANGED
@@ -50,8 +50,10 @@ build/
|
|
50
50
|
# for a library or gem, you might want to ignore these files since the code is
|
51
51
|
# intended to run in multiple environments; otherwise, check them in:
|
52
52
|
# Gemfile.lock
|
53
|
-
|
54
|
-
|
53
|
+
.ruby-version
|
54
|
+
.ruby-gemset
|
55
|
+
|
56
|
+
/cc-test-reporter
|
55
57
|
|
56
58
|
# unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
|
57
59
|
.rvmrc
|
data/.travis.yml
CHANGED
@@ -1,16 +1,26 @@
|
|
1
|
+
env:
|
2
|
+
global:
|
3
|
+
- CC_TEST_REPORTER_ID=9d7b49edac4909edf2e78624b9c0589e15bf2573e5fc2c3d9e79f4994ffcc411
|
4
|
+
|
1
5
|
language: ruby
|
2
6
|
cache: bundler
|
3
7
|
|
4
8
|
rvm:
|
5
|
-
- 2.
|
9
|
+
- 2.5.0
|
10
|
+
- 2.4.3
|
11
|
+
- 2.3.6
|
12
|
+
- 2.2.9
|
13
|
+
- 2.1.10
|
6
14
|
- 2.0.0
|
7
|
-
- 1.9.3
|
8
|
-
|
9
|
-
addons:
|
10
|
-
code_climate:
|
11
|
-
repo_token: 9d7b49edac4909edf2e78624b9c0589e15bf2573e5fc2c3d9e79f4994ffcc411
|
12
15
|
|
13
|
-
|
16
|
+
before_script:
|
17
|
+
- curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
|
18
|
+
- chmod +x ./cc-test-reporter
|
19
|
+
- ./cc-test-reporter before-build
|
20
|
+
script:
|
21
|
+
- bundle exec rake spec
|
22
|
+
after_script:
|
23
|
+
- ./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT
|
14
24
|
|
15
25
|
notifications:
|
16
26
|
email:
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -21,17 +21,6 @@ Or install it yourself as:
|
|
21
21
|
|
22
22
|
$ gem install keyword_init
|
23
23
|
|
24
|
-
## Changelog
|
25
|
-
|
26
|
-
### v1.4.0 (renamed from v1.3.1)
|
27
|
-
supports passing `nil` to both initializer and `_set_properties`
|
28
|
-
|
29
|
-
### v1.3.0
|
30
|
-
the work is done by a private method `_set_properties` that expects a hash of attributes. This way the work can be performed on an existing instance by calling that private method.
|
31
|
-
|
32
|
-
### 1.2.0
|
33
|
-
now works with private setters
|
34
|
-
|
35
24
|
## Usage
|
36
25
|
|
37
26
|
You can have the basic keyword initialization in your class, by including the `KeywordInit` module in your class. This will include the `initialize` method in the class.
|
@@ -53,19 +42,60 @@ class TestKlass
|
|
53
42
|
end
|
54
43
|
end
|
55
44
|
|
56
|
-
|
45
|
+
x = TestKlass.new attrib: 1, writeonly: 2, readonly: 3
|
57
46
|
x.attrib # => 1
|
58
|
-
|
59
47
|
# did not set the value because there is no `readonly=` method
|
60
48
|
x.readonly # => nil
|
61
49
|
|
62
50
|
x.my_data # => {attrib: 1, writeonly: 2, readonly: nil}
|
63
51
|
```
|
64
52
|
|
53
|
+
### Strict mode
|
54
|
+
|
55
|
+
if we include `KeywordInit::Strict` instead of `KeywordInit` or `KeywordInit::Relaxed`, when the initializer receives a key with no matching setter, it will raise a `KeywordInit::KeyError` exception.
|
56
|
+
|
57
|
+
```ruby
|
58
|
+
class TestKlass
|
59
|
+
include KeywordInit
|
60
|
+
|
61
|
+
attr_accessor :attrib
|
62
|
+
attr_writer :writeonly
|
63
|
+
attr_reader :readonly
|
64
|
+
|
65
|
+
def my_data
|
66
|
+
{attrib: attrib, writeonly: writeonly, readonly: readonly}
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
good = TestKlass.new attrib: 1, writeonly: 2
|
71
|
+
good.attrib # => 1
|
72
|
+
good.my_data # => {attrib: 1, writeonly: 2, readonly: nil}
|
73
|
+
|
74
|
+
bad = TestKlass.new attrib: 1, writeonly: 2, readonly: 4
|
75
|
+
# => raises KeywordInit::KeyError
|
76
|
+
#
|
77
|
+
bad2 = TestKlass.new attrib: 1, writeonly: 2, unknown: 4
|
78
|
+
# => raises KeywordInit::KeyError
|
79
|
+
```
|
80
|
+
|
81
|
+
|
82
|
+
## Changelog
|
83
|
+
|
84
|
+
### v1.5.0
|
85
|
+
supports **strict** mode.
|
86
|
+
|
87
|
+
### v1.4.0 (renamed from v1.3.1)
|
88
|
+
supports passing `nil` to both initializer and `_set_properties`
|
89
|
+
|
90
|
+
### v1.3.0
|
91
|
+
the work is done by a private method `_set_properties` that expects a hash of attributes. This way the work can be performed on an existing instance by calling that private method.
|
92
|
+
|
93
|
+
### 1.2.0
|
94
|
+
now works with private setters
|
95
|
+
|
65
96
|
## TODO
|
66
97
|
|
67
|
-
1. "
|
68
|
-
2. "direct" integration with `fluent_accessors` ?
|
98
|
+
1. "direct" integration with `fluent_accessors` ?
|
69
99
|
|
70
100
|
## Contributing
|
71
101
|
|
data/keyword_init.gemspec
CHANGED
@@ -4,27 +4,27 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
require 'keyword_init/version'
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
|
-
spec.name =
|
7
|
+
spec.name = 'keyword_init'
|
8
8
|
spec.version = KeywordInit::VERSION
|
9
|
-
spec.authors = [
|
10
|
-
spec.email = [
|
9
|
+
spec.authors = ['Eduardo Turiño']
|
10
|
+
spec.email = ['eturino@eturino.com']
|
11
11
|
spec.summary = %q{Gem that provides a keyword argument based initialize method to a class, executing the setter of all the recognised keywords.}
|
12
12
|
# spec.description = %q{TODO: Write a longer description. Optional.}
|
13
|
-
spec.homepage =
|
14
|
-
spec.license =
|
13
|
+
spec.homepage = ''
|
14
|
+
spec.license = 'MIT'
|
15
15
|
spec.files = `git ls-files -z`.split("\x0")
|
16
16
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
17
17
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
18
|
-
spec.require_paths = [
|
18
|
+
spec.require_paths = ['lib']
|
19
19
|
|
20
|
-
spec.add_development_dependency
|
21
|
-
spec.add_development_dependency
|
22
|
-
spec.add_development_dependency
|
23
|
-
spec.add_development_dependency
|
24
|
-
spec.add_development_dependency
|
25
|
-
spec.add_development_dependency
|
26
|
-
spec.add_development_dependency
|
27
|
-
spec.add_development_dependency
|
28
|
-
spec.add_development_dependency
|
20
|
+
spec.add_development_dependency 'bundler', '~> 1.6'
|
21
|
+
spec.add_development_dependency 'rake'
|
22
|
+
spec.add_development_dependency 'rspec'
|
23
|
+
spec.add_development_dependency 'rspec-nc'
|
24
|
+
spec.add_development_dependency 'pry'
|
25
|
+
spec.add_development_dependency 'pry-nav'
|
26
|
+
spec.add_development_dependency 'pry-rescue'
|
27
|
+
spec.add_development_dependency 'pry-stack_explorer'
|
28
|
+
spec.add_development_dependency 'pry-doc'
|
29
29
|
|
30
30
|
end
|
data/lib/keyword_init.rb
CHANGED
@@ -1,16 +1,52 @@
|
|
1
1
|
require "keyword_init/version"
|
2
2
|
|
3
3
|
module KeywordInit
|
4
|
-
def
|
5
|
-
|
4
|
+
def self.included(mod)
|
5
|
+
# if using the general KeywordInit module, use the Relaxed
|
6
|
+
mod.send(:include, Relaxed)
|
6
7
|
end
|
7
8
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
properties.each do |k, v|
|
12
|
-
normal_setter = "#{k}="
|
13
|
-
send normal_setter, v if respond_to? normal_setter, true
|
9
|
+
module Common
|
10
|
+
def initialize(properties = {})
|
11
|
+
_set_properties(properties || {})
|
14
12
|
end
|
13
|
+
|
14
|
+
def self.normal_setter(k)
|
15
|
+
"#{k}="
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
module Relaxed
|
20
|
+
def self.included(mod)
|
21
|
+
mod.send(:include, Common)
|
22
|
+
end
|
23
|
+
|
24
|
+
private
|
25
|
+
def _set_properties(properties)
|
26
|
+
return unless properties
|
27
|
+
properties.each do |k, v|
|
28
|
+
normal_setter = Common.normal_setter(k)
|
29
|
+
send normal_setter, v if respond_to? normal_setter, true
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
module Strict
|
35
|
+
def self.included(mod)
|
36
|
+
mod.send(:include, Common)
|
37
|
+
end
|
38
|
+
|
39
|
+
private
|
40
|
+
def _set_properties(properties)
|
41
|
+
return unless properties
|
42
|
+
properties.each do |k, v|
|
43
|
+
normal_setter = Common.normal_setter(k)
|
44
|
+
raise KeyError.new("no setter recognised for #{k}") unless respond_to? normal_setter, true
|
45
|
+
send normal_setter, v
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
class KeyError < ::KeyError
|
15
51
|
end
|
16
52
|
end
|
data/lib/keyword_init/version.rb
CHANGED
data/spec/keyword_init_spec.rb
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
RSpec.shared_examples "works" do
|
4
|
-
let(:expected_data) { {:attrib => 1, :writeonly => 2, :readonly => nil} }
|
5
|
-
let(:empty_data) { {:attrib => nil, :writeonly => nil, :readonly => nil} }
|
3
|
+
RSpec.shared_examples "works in relaxed mode" do
|
4
|
+
let(:expected_data) { { :attrib => 1, :writeonly => 2, :readonly => nil } }
|
5
|
+
let(:empty_data) { { :attrib => nil, :writeonly => nil, :readonly => nil } }
|
6
6
|
|
7
7
|
context '#initialize method' do
|
8
|
-
it 'accepts keyword parameters' do
|
8
|
+
it 'accepts keyword parameters (ignores read-only attributes or any given attribute with no setter)' do
|
9
9
|
expect { described_class.new :attrib => 1, :writeonly => 2, :readonly => 3 }.not_to raise_error
|
10
10
|
end
|
11
11
|
|
@@ -41,21 +41,104 @@ RSpec.shared_examples "works" do
|
|
41
41
|
end
|
42
42
|
end
|
43
43
|
|
44
|
-
|
45
44
|
RSpec.describe KeywordInit do
|
46
|
-
|
47
|
-
|
45
|
+
context 'normal behaviour (including KeywordInit)' do
|
46
|
+
class TestKlassWithPublicSetters
|
47
|
+
include KeywordInit
|
48
|
+
|
49
|
+
attr_accessor :attrib
|
50
|
+
attr_writer :writeonly
|
51
|
+
attr_reader :readonly
|
48
52
|
|
49
|
-
|
50
|
-
|
51
|
-
|
53
|
+
def my_data
|
54
|
+
{ :attrib => @attrib, :writeonly => @writeonly, :readonly => @readonly }
|
55
|
+
end
|
56
|
+
end
|
52
57
|
|
53
|
-
|
54
|
-
|
58
|
+
describe TestKlassWithPublicSetters do
|
59
|
+
it_behaves_like "works in relaxed mode"
|
55
60
|
end
|
56
61
|
end
|
57
62
|
|
58
|
-
|
59
|
-
|
63
|
+
context 'normal behaviour (including KeywordInit::Relaxed)' do
|
64
|
+
describe KeywordInit::Relaxed do
|
65
|
+
class TestKlassWithPublicSetters
|
66
|
+
include KeywordInit::Relaxed
|
67
|
+
|
68
|
+
attr_accessor :attrib
|
69
|
+
attr_writer :writeonly
|
70
|
+
attr_reader :readonly
|
71
|
+
|
72
|
+
def my_data
|
73
|
+
{ :attrib => @attrib, :writeonly => @writeonly, :readonly => @readonly }
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
describe TestKlassWithPublicSetters do
|
78
|
+
it_behaves_like "works in relaxed mode"
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
context 'strict behaviour (KeywordInit::Strict)' do
|
84
|
+
describe KeywordInit::Strict do
|
85
|
+
class TestStrictKlassWithPublicSetters
|
86
|
+
include KeywordInit::Strict
|
87
|
+
|
88
|
+
attr_accessor :attrib
|
89
|
+
attr_writer :writeonly
|
90
|
+
attr_reader :readonly
|
91
|
+
|
92
|
+
def my_data
|
93
|
+
{ :attrib => @attrib, :writeonly => @writeonly, :readonly => @readonly }
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
describe TestStrictKlassWithPublicSetters do
|
98
|
+
let(:expected_data) { { :attrib => 1, :writeonly => 2, :readonly => nil } }
|
99
|
+
let(:empty_data) { { :attrib => nil, :writeonly => nil, :readonly => nil } }
|
100
|
+
|
101
|
+
context '#initialize method' do
|
102
|
+
it 'accepts keyword parameters (ignores read-only attributes or any given attribute with no setter)' do
|
103
|
+
expect { described_class.new :attrib => 1, :writeonly => 2 }.not_to raise_error
|
104
|
+
end
|
105
|
+
|
106
|
+
it 'accepts keyword parameters (raises KeywordInit::KeyError if it receives read-only attributes or any given attribute with no setter)' do
|
107
|
+
expect { described_class.new :attrib => 1, :writeonly => 2, :readonly => 3 }.to raise_exception(KeywordInit::KeyError)
|
108
|
+
expect { described_class.new :attrib => 1, :writeonly => 2, :blaaah => 3 }.to raise_exception(KeywordInit::KeyError)
|
109
|
+
end
|
110
|
+
|
111
|
+
it 'executes the setter of each recognised keyword' do
|
112
|
+
expect_any_instance_of(described_class).to receive(:attrib=).with(1)
|
113
|
+
expect_any_instance_of(described_class).to receive(:writeonly=).with(2)
|
114
|
+
described_class.new :attrib => 1, :writeonly => 2
|
115
|
+
end
|
116
|
+
|
117
|
+
it 'sets the correct values' do
|
118
|
+
a = described_class.new :attrib => 1, :writeonly => 2
|
119
|
+
expect(a.my_data).to eq expected_data
|
120
|
+
end
|
121
|
+
|
122
|
+
it 'does nothing if nil passed' do
|
123
|
+
a = described_class.new nil
|
124
|
+
expect(a.my_data).to eq empty_data
|
125
|
+
end
|
126
|
+
end
|
127
|
+
|
128
|
+
context '#_set_properties method (private)' do
|
129
|
+
subject { described_class.new }
|
130
|
+
|
131
|
+
it 'sets the correct values (after creation) in the subject, in the same way of the initialize method' do
|
132
|
+
subject.send :_set_properties, :attrib => 1, :writeonly => 2
|
133
|
+
expect(subject.my_data).to eq expected_data
|
134
|
+
end
|
135
|
+
|
136
|
+
it 'does nothing if nil passed' do
|
137
|
+
subject.send :_set_properties, nil
|
138
|
+
expect(subject.my_data).to eq empty_data
|
139
|
+
end
|
140
|
+
end
|
141
|
+
end
|
142
|
+
end
|
60
143
|
end
|
61
144
|
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,158 +1,139 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: keyword_init
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
5
|
-
prerelease:
|
4
|
+
version: 1.5.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Eduardo Turiño
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2018-01-30 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: bundler
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- - ~>
|
17
|
+
- - "~>"
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '1.6'
|
22
20
|
type: :development
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- - ~>
|
24
|
+
- - "~>"
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: '1.6'
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: rake
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - ">="
|
36
32
|
- !ruby/object:Gem::Version
|
37
33
|
version: '0'
|
38
34
|
type: :development
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- -
|
38
|
+
- - ">="
|
44
39
|
- !ruby/object:Gem::Version
|
45
40
|
version: '0'
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: rspec
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
|
-
- -
|
45
|
+
- - ">="
|
52
46
|
- !ruby/object:Gem::Version
|
53
47
|
version: '0'
|
54
48
|
type: :development
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
|
-
- -
|
52
|
+
- - ">="
|
60
53
|
- !ruby/object:Gem::Version
|
61
54
|
version: '0'
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: rspec-nc
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
|
-
- -
|
59
|
+
- - ">="
|
68
60
|
- !ruby/object:Gem::Version
|
69
61
|
version: '0'
|
70
62
|
type: :development
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
|
-
- -
|
66
|
+
- - ">="
|
76
67
|
- !ruby/object:Gem::Version
|
77
68
|
version: '0'
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
70
|
name: pry
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
|
-
- -
|
73
|
+
- - ">="
|
84
74
|
- !ruby/object:Gem::Version
|
85
75
|
version: '0'
|
86
76
|
type: :development
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
|
-
- -
|
80
|
+
- - ">="
|
92
81
|
- !ruby/object:Gem::Version
|
93
82
|
version: '0'
|
94
83
|
- !ruby/object:Gem::Dependency
|
95
84
|
name: pry-nav
|
96
85
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
86
|
requirements:
|
99
|
-
- -
|
87
|
+
- - ">="
|
100
88
|
- !ruby/object:Gem::Version
|
101
89
|
version: '0'
|
102
90
|
type: :development
|
103
91
|
prerelease: false
|
104
92
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
93
|
requirements:
|
107
|
-
- -
|
94
|
+
- - ">="
|
108
95
|
- !ruby/object:Gem::Version
|
109
96
|
version: '0'
|
110
97
|
- !ruby/object:Gem::Dependency
|
111
98
|
name: pry-rescue
|
112
99
|
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
100
|
requirements:
|
115
|
-
- -
|
101
|
+
- - ">="
|
116
102
|
- !ruby/object:Gem::Version
|
117
103
|
version: '0'
|
118
104
|
type: :development
|
119
105
|
prerelease: false
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
107
|
requirements:
|
123
|
-
- -
|
108
|
+
- - ">="
|
124
109
|
- !ruby/object:Gem::Version
|
125
110
|
version: '0'
|
126
111
|
- !ruby/object:Gem::Dependency
|
127
112
|
name: pry-stack_explorer
|
128
113
|
requirement: !ruby/object:Gem::Requirement
|
129
|
-
none: false
|
130
114
|
requirements:
|
131
|
-
- -
|
115
|
+
- - ">="
|
132
116
|
- !ruby/object:Gem::Version
|
133
117
|
version: '0'
|
134
118
|
type: :development
|
135
119
|
prerelease: false
|
136
120
|
version_requirements: !ruby/object:Gem::Requirement
|
137
|
-
none: false
|
138
121
|
requirements:
|
139
|
-
- -
|
122
|
+
- - ">="
|
140
123
|
- !ruby/object:Gem::Version
|
141
124
|
version: '0'
|
142
125
|
- !ruby/object:Gem::Dependency
|
143
126
|
name: pry-doc
|
144
127
|
requirement: !ruby/object:Gem::Requirement
|
145
|
-
none: false
|
146
128
|
requirements:
|
147
|
-
- -
|
129
|
+
- - ">="
|
148
130
|
- !ruby/object:Gem::Version
|
149
131
|
version: '0'
|
150
132
|
type: :development
|
151
133
|
prerelease: false
|
152
134
|
version_requirements: !ruby/object:Gem::Requirement
|
153
|
-
none: false
|
154
135
|
requirements:
|
155
|
-
- -
|
136
|
+
- - ">="
|
156
137
|
- !ruby/object:Gem::Version
|
157
138
|
version: '0'
|
158
139
|
description:
|
@@ -162,9 +143,9 @@ executables: []
|
|
162
143
|
extensions: []
|
163
144
|
extra_rdoc_files: []
|
164
145
|
files:
|
165
|
-
- .gitignore
|
166
|
-
- .rspec
|
167
|
-
- .travis.yml
|
146
|
+
- ".gitignore"
|
147
|
+
- ".rspec"
|
148
|
+
- ".travis.yml"
|
168
149
|
- Gemfile
|
169
150
|
- LICENSE.txt
|
170
151
|
- README.md
|
@@ -177,36 +158,28 @@ files:
|
|
177
158
|
homepage: ''
|
178
159
|
licenses:
|
179
160
|
- MIT
|
161
|
+
metadata: {}
|
180
162
|
post_install_message:
|
181
163
|
rdoc_options: []
|
182
164
|
require_paths:
|
183
165
|
- lib
|
184
166
|
required_ruby_version: !ruby/object:Gem::Requirement
|
185
|
-
none: false
|
186
167
|
requirements:
|
187
|
-
- -
|
168
|
+
- - ">="
|
188
169
|
- !ruby/object:Gem::Version
|
189
170
|
version: '0'
|
190
|
-
segments:
|
191
|
-
- 0
|
192
|
-
hash: -3451831627487267256
|
193
171
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
194
|
-
none: false
|
195
172
|
requirements:
|
196
|
-
- -
|
173
|
+
- - ">="
|
197
174
|
- !ruby/object:Gem::Version
|
198
175
|
version: '0'
|
199
|
-
segments:
|
200
|
-
- 0
|
201
|
-
hash: -3451831627487267256
|
202
176
|
requirements: []
|
203
177
|
rubyforge_project:
|
204
|
-
rubygems_version:
|
178
|
+
rubygems_version: 2.6.14
|
205
179
|
signing_key:
|
206
|
-
specification_version:
|
180
|
+
specification_version: 4
|
207
181
|
summary: Gem that provides a keyword argument based initialize method to a class,
|
208
182
|
executing the setter of all the recognised keywords.
|
209
183
|
test_files:
|
210
184
|
- spec/keyword_init_spec.rb
|
211
185
|
- spec/spec_helper.rb
|
212
|
-
has_rdoc:
|