keyword_init 1.3.0 → 1.3.1
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.
- data/README.md +8 -2
- data/lib/keyword_init.rb +2 -1
- data/lib/keyword_init/version.rb +1 -1
- data/spec/keyword_init_spec.rb +11 -0
- metadata +54 -28
- checksums.yaml +0 -7
data/README.md
CHANGED
@@ -23,8 +23,14 @@ Or install it yourself as:
|
|
23
23
|
|
24
24
|
## Changelog
|
25
25
|
|
26
|
-
v1.3.
|
27
|
-
|
26
|
+
### 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
|
28
34
|
|
29
35
|
## Usage
|
30
36
|
|
data/lib/keyword_init.rb
CHANGED
@@ -2,11 +2,12 @@ require "keyword_init/version"
|
|
2
2
|
|
3
3
|
module KeywordInit
|
4
4
|
def initialize(properties = {})
|
5
|
-
_set_properties
|
5
|
+
_set_properties(properties || {})
|
6
6
|
end
|
7
7
|
|
8
8
|
private
|
9
9
|
def _set_properties(properties)
|
10
|
+
return unless properties
|
10
11
|
properties.each do |k, v|
|
11
12
|
normal_setter = "#{k}="
|
12
13
|
send normal_setter, v if respond_to? normal_setter, true
|
data/lib/keyword_init/version.rb
CHANGED
data/spec/keyword_init_spec.rb
CHANGED
@@ -2,6 +2,7 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
RSpec.shared_examples "works" do
|
4
4
|
let(:expected_data) { {:attrib => 1, :writeonly => 2, :readonly => nil} }
|
5
|
+
let(:empty_data) { {:attrib => nil, :writeonly => nil, :readonly => nil} }
|
5
6
|
|
6
7
|
context '#initialize method' do
|
7
8
|
it 'accepts keyword parameters' do
|
@@ -18,6 +19,11 @@ RSpec.shared_examples "works" do
|
|
18
19
|
a = described_class.new :attrib => 1, :writeonly => 2, :readonly => 3
|
19
20
|
expect(a.my_data).to eq expected_data
|
20
21
|
end
|
22
|
+
|
23
|
+
it 'does nothing if nil passed' do
|
24
|
+
a = described_class.new nil
|
25
|
+
expect(a.my_data).to eq empty_data
|
26
|
+
end
|
21
27
|
end
|
22
28
|
|
23
29
|
context '#_set_properties method (private)' do
|
@@ -27,6 +33,11 @@ RSpec.shared_examples "works" do
|
|
27
33
|
subject.send :_set_properties, :attrib => 1, :writeonly => 2, :readonly => 3
|
28
34
|
expect(subject.my_data).to eq expected_data
|
29
35
|
end
|
36
|
+
|
37
|
+
it 'does nothing if nil passed' do
|
38
|
+
subject.send :_set_properties, nil
|
39
|
+
expect(subject.my_data).to eq empty_data
|
40
|
+
end
|
30
41
|
end
|
31
42
|
end
|
32
43
|
|
metadata
CHANGED
@@ -1,139 +1,158 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: keyword_init
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.3.
|
4
|
+
version: 1.3.1
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- Eduardo Turiño
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date:
|
12
|
+
date: 2016-03-05 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: bundler
|
15
16
|
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
16
18
|
requirements:
|
17
|
-
- -
|
19
|
+
- - ~>
|
18
20
|
- !ruby/object:Gem::Version
|
19
21
|
version: '1.6'
|
20
22
|
type: :development
|
21
23
|
prerelease: false
|
22
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
23
26
|
requirements:
|
24
|
-
- -
|
27
|
+
- - ~>
|
25
28
|
- !ruby/object:Gem::Version
|
26
29
|
version: '1.6'
|
27
30
|
- !ruby/object:Gem::Dependency
|
28
31
|
name: rake
|
29
32
|
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
30
34
|
requirements:
|
31
|
-
- -
|
35
|
+
- - ! '>='
|
32
36
|
- !ruby/object:Gem::Version
|
33
37
|
version: '0'
|
34
38
|
type: :development
|
35
39
|
prerelease: false
|
36
40
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
37
42
|
requirements:
|
38
|
-
- -
|
43
|
+
- - ! '>='
|
39
44
|
- !ruby/object:Gem::Version
|
40
45
|
version: '0'
|
41
46
|
- !ruby/object:Gem::Dependency
|
42
47
|
name: rspec
|
43
48
|
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
44
50
|
requirements:
|
45
|
-
- -
|
51
|
+
- - ! '>='
|
46
52
|
- !ruby/object:Gem::Version
|
47
53
|
version: '0'
|
48
54
|
type: :development
|
49
55
|
prerelease: false
|
50
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
51
58
|
requirements:
|
52
|
-
- -
|
59
|
+
- - ! '>='
|
53
60
|
- !ruby/object:Gem::Version
|
54
61
|
version: '0'
|
55
62
|
- !ruby/object:Gem::Dependency
|
56
63
|
name: rspec-nc
|
57
64
|
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
58
66
|
requirements:
|
59
|
-
- -
|
67
|
+
- - ! '>='
|
60
68
|
- !ruby/object:Gem::Version
|
61
69
|
version: '0'
|
62
70
|
type: :development
|
63
71
|
prerelease: false
|
64
72
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
65
74
|
requirements:
|
66
|
-
- -
|
75
|
+
- - ! '>='
|
67
76
|
- !ruby/object:Gem::Version
|
68
77
|
version: '0'
|
69
78
|
- !ruby/object:Gem::Dependency
|
70
79
|
name: pry
|
71
80
|
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
72
82
|
requirements:
|
73
|
-
- -
|
83
|
+
- - ! '>='
|
74
84
|
- !ruby/object:Gem::Version
|
75
85
|
version: '0'
|
76
86
|
type: :development
|
77
87
|
prerelease: false
|
78
88
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
79
90
|
requirements:
|
80
|
-
- -
|
91
|
+
- - ! '>='
|
81
92
|
- !ruby/object:Gem::Version
|
82
93
|
version: '0'
|
83
94
|
- !ruby/object:Gem::Dependency
|
84
95
|
name: pry-nav
|
85
96
|
requirement: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
86
98
|
requirements:
|
87
|
-
- -
|
99
|
+
- - ! '>='
|
88
100
|
- !ruby/object:Gem::Version
|
89
101
|
version: '0'
|
90
102
|
type: :development
|
91
103
|
prerelease: false
|
92
104
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
93
106
|
requirements:
|
94
|
-
- -
|
107
|
+
- - ! '>='
|
95
108
|
- !ruby/object:Gem::Version
|
96
109
|
version: '0'
|
97
110
|
- !ruby/object:Gem::Dependency
|
98
111
|
name: pry-rescue
|
99
112
|
requirement: !ruby/object:Gem::Requirement
|
113
|
+
none: false
|
100
114
|
requirements:
|
101
|
-
- -
|
115
|
+
- - ! '>='
|
102
116
|
- !ruby/object:Gem::Version
|
103
117
|
version: '0'
|
104
118
|
type: :development
|
105
119
|
prerelease: false
|
106
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
107
122
|
requirements:
|
108
|
-
- -
|
123
|
+
- - ! '>='
|
109
124
|
- !ruby/object:Gem::Version
|
110
125
|
version: '0'
|
111
126
|
- !ruby/object:Gem::Dependency
|
112
127
|
name: pry-stack_explorer
|
113
128
|
requirement: !ruby/object:Gem::Requirement
|
129
|
+
none: false
|
114
130
|
requirements:
|
115
|
-
- -
|
131
|
+
- - ! '>='
|
116
132
|
- !ruby/object:Gem::Version
|
117
133
|
version: '0'
|
118
134
|
type: :development
|
119
135
|
prerelease: false
|
120
136
|
version_requirements: !ruby/object:Gem::Requirement
|
137
|
+
none: false
|
121
138
|
requirements:
|
122
|
-
- -
|
139
|
+
- - ! '>='
|
123
140
|
- !ruby/object:Gem::Version
|
124
141
|
version: '0'
|
125
142
|
- !ruby/object:Gem::Dependency
|
126
143
|
name: pry-doc
|
127
144
|
requirement: !ruby/object:Gem::Requirement
|
145
|
+
none: false
|
128
146
|
requirements:
|
129
|
-
- -
|
147
|
+
- - ! '>='
|
130
148
|
- !ruby/object:Gem::Version
|
131
149
|
version: '0'
|
132
150
|
type: :development
|
133
151
|
prerelease: false
|
134
152
|
version_requirements: !ruby/object:Gem::Requirement
|
153
|
+
none: false
|
135
154
|
requirements:
|
136
|
-
- -
|
155
|
+
- - ! '>='
|
137
156
|
- !ruby/object:Gem::Version
|
138
157
|
version: '0'
|
139
158
|
description:
|
@@ -143,9 +162,9 @@ executables: []
|
|
143
162
|
extensions: []
|
144
163
|
extra_rdoc_files: []
|
145
164
|
files:
|
146
|
-
-
|
147
|
-
-
|
148
|
-
-
|
165
|
+
- .gitignore
|
166
|
+
- .rspec
|
167
|
+
- .travis.yml
|
149
168
|
- Gemfile
|
150
169
|
- LICENSE.txt
|
151
170
|
- README.md
|
@@ -158,26 +177,33 @@ files:
|
|
158
177
|
homepage: ''
|
159
178
|
licenses:
|
160
179
|
- MIT
|
161
|
-
metadata: {}
|
162
180
|
post_install_message:
|
163
181
|
rdoc_options: []
|
164
182
|
require_paths:
|
165
183
|
- lib
|
166
184
|
required_ruby_version: !ruby/object:Gem::Requirement
|
185
|
+
none: false
|
167
186
|
requirements:
|
168
|
-
- -
|
187
|
+
- - ! '>='
|
169
188
|
- !ruby/object:Gem::Version
|
170
189
|
version: '0'
|
190
|
+
segments:
|
191
|
+
- 0
|
192
|
+
hash: -3931377479917138513
|
171
193
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
194
|
+
none: false
|
172
195
|
requirements:
|
173
|
-
- -
|
196
|
+
- - ! '>='
|
174
197
|
- !ruby/object:Gem::Version
|
175
198
|
version: '0'
|
199
|
+
segments:
|
200
|
+
- 0
|
201
|
+
hash: -3931377479917138513
|
176
202
|
requirements: []
|
177
203
|
rubyforge_project:
|
178
|
-
rubygems_version:
|
204
|
+
rubygems_version: 1.8.23
|
179
205
|
signing_key:
|
180
|
-
specification_version:
|
206
|
+
specification_version: 3
|
181
207
|
summary: Gem that provides a keyword argument based initialize method to a class,
|
182
208
|
executing the setter of all the recognised keywords.
|
183
209
|
test_files:
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: 9644aac7efef035e18f3dcf43ad5845b4c657a18
|
4
|
-
data.tar.gz: d2e47fcbe57dab4d92efa1b5d8b52f6817e59cfd
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: 2142e32a648cfaf634c74a4a0a023fe589a8ebd13dbe3f888af0d13c8562737cc22b2c0c5806b0646d9414853f8327ceecd7dffde7f462c1344d1b463d7656cc
|
7
|
-
data.tar.gz: c30d597d6f4d153a5ea700d3cbe6e6638faf9e29924e6913f8379a1eba7ead2b7eb323ff6f7e4dd0ab9534ef0c833818eac1793e72bbbf8a90c84864ba21a112
|