interactor-initializer 0.1.1 → 0.2.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: 489ba54498c9bacd7fd3681d9d2a0ae2364058a5
4
- data.tar.gz: 9997da10472740c87eed2a40cf6df355c84d3367
3
+ metadata.gz: 3d2e2c03930bb06fbe39d7288d3c8905158755fd
4
+ data.tar.gz: 12836a46c17a2a101adb49abfd096585aa1350f5
5
5
  SHA512:
6
- metadata.gz: b92f29d42ee78432ab3cbae68267250b3ded8fc2ff1d44209817bc1a599cc2b85068e57b5a640682d15a7a44e9c80e9a5a81444c9c555fae27324f6d849b807f
7
- data.tar.gz: 9de7be03b10423ccbd5fe61b7fe9439d6b02c97cdc682f1757448cf55dae1e816ea8ca2dfacdb5485b2af9d4fc90b5fa3018874007c63b9aad49ec732ce20f6d
6
+ metadata.gz: f4c6eb6c26e8a6028e2624438d41b898c18675e4811bc9824c94d7ceb049a227945aeee09eccd0ff7b2060fd81694fdfb863dd4f4a57e695b6d9c84781a57b5b
7
+ data.tar.gz: 0ff55deb63da6274083cf4f76d379c6070348cff2d0663d103adde4007e9506e75f79d3d4ef5fe3f68d2cb085decb62d6534954ce4050bb61106445914ab1a18
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --require spec_helper
2
+ --color
data/.travis.yml ADDED
@@ -0,0 +1,4 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.1.1
4
+ script: 'bundle exec rspec'
data/README.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Interactor::Initializer
2
2
 
3
+ [![Build Status](https://secure.travis-ci.org/vinted/interactor-initializer.png)](http://travis-ci.org/vinted/interactor-initializer)
4
+ [![Gem Version](https://badge.fury.io/rb/interactor-initializer.png)](http://badge.fury.io/rb/interactor-initializer)
5
+ [![Dependency Status](https://gemnasium.com/vinted/interactor-initializer.png)](https://gemnasium.com/vinted/interactor-initializer)
6
+
3
7
  Dry interactor initializer
4
8
 
5
9
  ## Installation
@@ -18,4 +18,5 @@ Gem::Specification.new do |spec|
18
18
 
19
19
  spec.add_development_dependency 'bundler', '~> 1.11'
20
20
  spec.add_development_dependency 'rake', '~> 10.0'
21
+ spec.add_development_dependency 'rspec', '~> 3.0'
21
22
  end
@@ -1,5 +1,10 @@
1
1
  class Interactor::Initializer::AttrReaders
2
2
  def self.for(target_class, attributes)
3
- target_class.class_eval { attr_reader(*attributes) }
3
+ target_class.class_eval do
4
+ attributes.each do |attribute|
5
+ attr_reader(attribute)
6
+ protected(attribute)
7
+ end
8
+ end
4
9
  end
5
10
  end
@@ -1,5 +1,5 @@
1
1
  module Interactor
2
2
  module Initializer
3
- VERSION = '0.1.1'.freeze
3
+ VERSION = '0.2.0'.freeze
4
4
  end
5
5
  end
@@ -0,0 +1,13 @@
1
+ describe Interactor::Initializer::AttrReaders do
2
+ describe '.for' do
3
+ subject { described_class.for(dummy_class, attributes) }
4
+ let(:dummy_class) { Class.new }
5
+ let(:attributes) { [:test1, :test2] }
6
+
7
+ it 'adds protected attr_reader' do
8
+ subject
9
+ expect(dummy_class.protected_method_defined?(:test1)).to be_truthy
10
+ expect(dummy_class.protected_method_defined?(:test2)).to be_truthy
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ describe Interactor::Initializer::CallMethods do
2
+ describe '.for' do
3
+ subject { described_class.for(dummy_class) }
4
+ let(:dummy_class) { Class.new }
5
+
6
+ it 'adds .for .with and .run class methods' do
7
+ subject
8
+ expect(dummy_class).to respond_to :for
9
+ expect(dummy_class).to respond_to :with
10
+ expect(dummy_class).to respond_to :run
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,28 @@
1
+ describe Interactor::Initializer::Initialize do
2
+ describe '.for' do
3
+ subject { described_class.for(dummy_class, attributes, keyword_params: keyword_params) }
4
+ let(:dummy_class) { Class.new }
5
+ let(:attributes) { [:test1, :test2] }
6
+ let(:keyword_params) { false }
7
+
8
+ shared_examples 'object initializer' do
9
+ it 'adds object initializer' do
10
+ subject
11
+ expect(dummy_instance.instance_variable_get(:@test1)).to eq 1
12
+ expect(dummy_instance.instance_variable_get(:@test2)).to eq 2
13
+ end
14
+ end
15
+
16
+ it_behaves_like 'object initializer' do
17
+ let(:dummy_instance) { dummy_class.new(1, 2) }
18
+ end
19
+
20
+ context 'when keyword params' do
21
+ let(:keyword_params) { true }
22
+
23
+ it_behaves_like 'object initializer' do
24
+ let(:dummy_instance) { dummy_class.new(test1: 1, test2: 2) }
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,6 @@
1
+ require 'rspec'
2
+ require 'interactor/initializer'
3
+
4
+ RSpec.configure do |config|
5
+ config.order = :random
6
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: interactor-initializer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - "Šarūnas Kūjalis"
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-06-07 00:00:00.000000000 Z
11
+ date: 2016-06-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.0'
41
55
  description:
42
56
  email:
43
57
  - sarjalis@gmail.com
@@ -46,7 +60,9 @@ extensions: []
46
60
  extra_rdoc_files: []
47
61
  files:
48
62
  - ".gitignore"
63
+ - ".rspec"
49
64
  - ".rubocop.yml"
65
+ - ".travis.yml"
50
66
  - Gemfile
51
67
  - README.md
52
68
  - Rakefile
@@ -56,6 +72,10 @@ files:
56
72
  - lib/interactor/initializer/call_methods.rb
57
73
  - lib/interactor/initializer/initialize.rb
58
74
  - lib/interactor/initializer/version.rb
75
+ - spec/initializer/attr_readers_spec.rb
76
+ - spec/initializer/call_methods_spec.rb
77
+ - spec/initializer/initialize_spec.rb
78
+ - spec/spec_helper.rb
59
79
  homepage: https://github.com/vinted/interactor-initializer
60
80
  licenses: []
61
81
  metadata: {}