dry-initializer 0.9.0 → 0.9.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +10 -0
- data/dry-initializer.gemspec +1 -1
- data/lib/dry/initializer/builder.rb +1 -1
- data/lib/dry/initializer/plugins/base.rb +6 -0
- data/lib/dry/initializer/plugins/default_proc.rb +1 -1
- data/lib/dry/initializer/plugins/type_constraint.rb +2 -2
- data/lib/dry/initializer/plugins/variable_setter.rb +2 -2
- data/spec/renaming_options_spec.rb +21 -0
- metadata +3 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5f1a12226f496582e5c8b178ce72abca1df2fc4c
|
4
|
+
data.tar.gz: 9ce23487b5fb5b34b71d5055f3ed76cdab34fc98
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 00db904ff87579dfd61ff759f42692f3049647fd20d1ced500f38bb3fca46968e30adf73c274c1ecd825e1c1da0ec017d3e9c06a96e211371c360cb9bf1a6598
|
7
|
+
data.tar.gz: 562a60f879ea4e0d60baa4d6ec328b7d8ab51c5f1e061aa9250d3d5f1fcbc7b6e60c5158d0d417dbf60bcabab5426bc090e876ffe26e93a99bee727347c5165b
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,13 @@
|
|
1
|
+
## v0.9.1 2016-11-06
|
2
|
+
|
3
|
+
### Added
|
4
|
+
|
5
|
+
* Support for renaming an option during initialization (@nepalez)
|
6
|
+
|
7
|
+
option :name, as: :username # to take :name option and create :username attribute
|
8
|
+
|
9
|
+
[Compare 0.9.0...v0.9.1](https://github.com/dry-rb/dry-initializer/compare/0.9.0...v0.9.1)
|
10
|
+
|
1
11
|
## v0.9.0 2016-11-06
|
2
12
|
|
3
13
|
### Added
|
data/dry-initializer.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |gem|
|
2
2
|
gem.name = "dry-initializer"
|
3
|
-
gem.version = "0.9.
|
3
|
+
gem.version = "0.9.1"
|
4
4
|
gem.author = ["Vladimir Kochnev (marshall-lee)", "Andrew Kozin (nepalez)"]
|
5
5
|
gem.email = ["hashtable@yandex.ru", "andrew.kozin@gmail.com"]
|
6
6
|
gem.homepage = "https://github.com/dryrb/dry-initializer"
|
@@ -71,7 +71,7 @@ module Dry::Initializer
|
|
71
71
|
|
72
72
|
def define_reader(mixin, method, filter_lambda = nil)
|
73
73
|
filter_lambda ||= ->(item) { item.settings[:reader] == method }
|
74
|
-
readers = @signature.select(&filter_lambda).map(&:
|
74
|
+
readers = @signature.select(&filter_lambda).map(&:rename)
|
75
75
|
mixin.send method, *readers if readers.any?
|
76
76
|
end
|
77
77
|
|
@@ -6,9 +6,9 @@ module Dry::Initializer::Plugins
|
|
6
6
|
return unless settings.key? :type
|
7
7
|
|
8
8
|
type = settings[:type]
|
9
|
-
fail TypeConstraintError.new(
|
9
|
+
fail TypeConstraintError.new(rename, type) unless type.respond_to? :call
|
10
10
|
|
11
|
-
ivar = :"@#{
|
11
|
+
ivar = :"@#{rename}"
|
12
12
|
lambda do |*|
|
13
13
|
value = instance_variable_get(ivar)
|
14
14
|
return if value == Dry::Initializer::UNDEFINED
|
@@ -22,8 +22,8 @@ module Dry::Initializer::Plugins
|
|
22
22
|
|
23
23
|
def call
|
24
24
|
return "@#{name} = #{name}" if param?
|
25
|
-
return "@#{
|
26
|
-
"@#{
|
25
|
+
return "@#{rename} = __options__.fetch(:#{name})" if required?
|
26
|
+
"@#{rename} = __options__.fetch(:#{name}, Dry::Initializer::UNDEFINED)"
|
27
27
|
end
|
28
28
|
end
|
29
29
|
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
describe "renaming options" do
|
2
|
+
before do
|
3
|
+
class Test::Foo
|
4
|
+
extend Dry::Initializer::Mixin
|
5
|
+
|
6
|
+
option :foo, as: :bar
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
subject { Test::Foo.new foo: :BAZ }
|
11
|
+
|
12
|
+
it "renames the attribute" do
|
13
|
+
expect(subject.bar).to eq :BAZ
|
14
|
+
expect(subject).not_to respond_to :foo
|
15
|
+
end
|
16
|
+
|
17
|
+
it "renames the variable" do
|
18
|
+
expect(subject.instance_variable_get(:@bar)).to eq :BAZ
|
19
|
+
expect(subject.instance_variable_get(:@foo)).to be_nil
|
20
|
+
end
|
21
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dry-initializer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vladimir Kochnev (marshall-lee)
|
@@ -131,6 +131,7 @@ files:
|
|
131
131
|
- spec/options_tolerance_spec.rb
|
132
132
|
- spec/plugin_registry_spec.rb
|
133
133
|
- spec/reader_spec.rb
|
134
|
+
- spec/renaming_options_spec.rb
|
134
135
|
- spec/repetitive_definitions_spec.rb
|
135
136
|
- spec/shared_definitions_spec.rb
|
136
137
|
- spec/spec_helper.rb
|
@@ -173,6 +174,7 @@ test_files:
|
|
173
174
|
- spec/options_tolerance_spec.rb
|
174
175
|
- spec/plugin_registry_spec.rb
|
175
176
|
- spec/reader_spec.rb
|
177
|
+
- spec/renaming_options_spec.rb
|
176
178
|
- spec/repetitive_definitions_spec.rb
|
177
179
|
- spec/shared_definitions_spec.rb
|
178
180
|
- spec/spec_helper.rb
|