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