keyword_init 1.2.0 → 1.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 95b96172166acc2c7721716a263919776973ccd5
4
- data.tar.gz: ce9102d08be56c16f3113a4d8da24ad662fdcf1f
3
+ metadata.gz: 9644aac7efef035e18f3dcf43ad5845b4c657a18
4
+ data.tar.gz: d2e47fcbe57dab4d92efa1b5d8b52f6817e59cfd
5
5
  SHA512:
6
- metadata.gz: 97608aa77ba8b6e4b08a10c40b836093547d837c5a66028b48fc5ee1a7b57c497d88f44eae17e56b179db03f19d38dd69c0332dd274c283ead65de1474878637
7
- data.tar.gz: 51f502be344480e61ee8ebfec97070e788cf5b81eac9a37d4999e476b4296ee1f633796208dbedee3e88a3b3c1c3971c866e432210f1f43dc94c9a720398df4f
6
+ metadata.gz: 2142e32a648cfaf634c74a4a0a023fe589a8ebd13dbe3f888af0d13c8562737cc22b2c0c5806b0646d9414853f8327ceecd7dffde7f462c1344d1b463d7656cc
7
+ data.tar.gz: c30d597d6f4d153a5ea700d3cbe6e6638faf9e29924e6913f8379a1eba7ead2b7eb323ff6f7e4dd0ab9534ef0c833818eac1793e72bbbf8a90c84864ba21a112
data/README.md CHANGED
@@ -23,6 +23,7 @@ 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.
26
27
  v1.2.0 => now works with private setters
27
28
 
28
29
  ## Usage
@@ -62,7 +63,7 @@ x.my_data # => {attrib: 1, writeonly: 2, readonly: nil}
62
63
 
63
64
  ## Contributing
64
65
 
65
- 1. Fork it ( https://github.com/[my-github-username]/keyword_init/fork )
66
+ 1. Fork it ( https://github.com/eturino/keyword_init/fork )
66
67
  2. Create your feature branch (`git checkout -b my-new-feature`)
67
68
  3. Commit your changes (`git commit -am 'Add some feature'`)
68
69
  4. Push to the branch (`git push origin my-new-feature`)
data/lib/keyword_init.rb CHANGED
@@ -2,6 +2,11 @@ require "keyword_init/version"
2
2
 
3
3
  module KeywordInit
4
4
  def initialize(properties = {})
5
+ _set_properties properties
6
+ end
7
+
8
+ private
9
+ def _set_properties(properties)
5
10
  properties.each do |k, v|
6
11
  normal_setter = "#{k}="
7
12
  send normal_setter, v if respond_to? normal_setter, true
@@ -1,3 +1,3 @@
1
1
  module KeywordInit
2
- VERSION = '1.2.0'
2
+ VERSION = '1.3.0'
3
3
  end
@@ -3,7 +3,7 @@ require 'spec_helper'
3
3
  RSpec.shared_examples "works" do
4
4
  let(:expected_data) { {:attrib => 1, :writeonly => 2, :readonly => nil} }
5
5
 
6
- context 'initialize method' do
6
+ context '#initialize method' do
7
7
  it 'accepts keyword parameters' do
8
8
  expect { described_class.new :attrib => 1, :writeonly => 2, :readonly => 3 }.not_to raise_error
9
9
  end
@@ -19,26 +19,19 @@ RSpec.shared_examples "works" do
19
19
  expect(a.my_data).to eq expected_data
20
20
  end
21
21
  end
22
- end
23
-
24
-
25
- RSpec.describe KeywordInit do
26
- class TestKlassWithPublicSetters
27
- include KeywordInit
28
22
 
29
- attr_accessor :attrib
30
- attr_writer :writeonly
31
- attr_reader :readonly
23
+ context '#_set_properties method (private)' do
24
+ subject { described_class.new }
32
25
 
33
- def my_data
34
- {:attrib => @attrib, :writeonly => @writeonly, :readonly => @readonly}
26
+ it 'sets the correct values (after creation) in the subject, in the same way of the initialize method' do
27
+ subject.send :_set_properties, :attrib => 1, :writeonly => 2, :readonly => 3
28
+ expect(subject.my_data).to eq expected_data
35
29
  end
36
30
  end
31
+ end
37
32
 
38
- describe TestKlassWithPublicSetters do
39
- it_behaves_like "works"
40
- end
41
33
 
34
+ RSpec.describe KeywordInit do
42
35
  class TestKlassWithPublicSetters
43
36
  include KeywordInit
44
37
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: keyword_init
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eduardo Turiño
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-29 00:00:00.000000000 Z
11
+ date: 2014-09-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler