interactor-initializer 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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: {}