keyword_init 1.3.0 → 1.3.1

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -23,8 +23,14 @@ Or install it yourself as:
23
23
 
24
24
  ## Changelog
25
25
 
26
- v1.3.0 => 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.
27
- v1.2.0 => now works with private setters
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
 
@@ -2,11 +2,12 @@ require "keyword_init/version"
2
2
 
3
3
  module KeywordInit
4
4
  def initialize(properties = {})
5
- _set_properties 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
@@ -1,3 +1,3 @@
1
1
  module KeywordInit
2
- VERSION = '1.3.0'
2
+ VERSION = '1.3.1'
3
3
  end
@@ -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.0
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: 2014-09-23 00:00:00.000000000 Z
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
- - ".gitignore"
147
- - ".rspec"
148
- - ".travis.yml"
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: 2.2.2
204
+ rubygems_version: 1.8.23
179
205
  signing_key:
180
- specification_version: 4
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