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 +4 -4
- data/.rspec +2 -0
- data/.travis.yml +4 -0
- data/README.md +4 -0
- data/interactor-initializer.gemspec +1 -0
- data/lib/interactor/initializer/attr_readers.rb +6 -1
- data/lib/interactor/initializer/version.rb +1 -1
- data/spec/initializer/attr_readers_spec.rb +13 -0
- data/spec/initializer/call_methods_spec.rb +13 -0
- data/spec/initializer/initialize_spec.rb +28 -0
- data/spec/spec_helper.rb +6 -0
- metadata +22 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3d2e2c03930bb06fbe39d7288d3c8905158755fd
|
4
|
+
data.tar.gz: 12836a46c17a2a101adb49abfd096585aa1350f5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f4c6eb6c26e8a6028e2624438d41b898c18675e4811bc9824c94d7ceb049a227945aeee09eccd0ff7b2060fd81694fdfb863dd4f4a57e695b6d9c84781a57b5b
|
7
|
+
data.tar.gz: 0ff55deb63da6274083cf4f76d379c6070348cff2d0663d103adde4007e9506e75f79d3d4ef5fe3f68d2cb085decb62d6534954ce4050bb61106445914ab1a18
|
data/.rspec
ADDED
data/.travis.yml
ADDED
data/README.md
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
# Interactor::Initializer
|
2
2
|
|
3
|
+
[](http://travis-ci.org/vinted/interactor-initializer)
|
4
|
+
[](http://badge.fury.io/rb/interactor-initializer)
|
5
|
+
[](https://gemnasium.com/vinted/interactor-initializer)
|
6
|
+
|
3
7
|
Dry interactor initializer
|
4
8
|
|
5
9
|
## Installation
|
@@ -1,5 +1,10 @@
|
|
1
1
|
class Interactor::Initializer::AttrReaders
|
2
2
|
def self.for(target_class, attributes)
|
3
|
-
target_class.class_eval
|
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
|
@@ -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
|
data/spec/spec_helper.rb
ADDED
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.
|
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-
|
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: {}
|