Deprecate Types::Array#member
This commit is contained in:
parent
f5e920b1fd
commit
ea270b4859
|
@ -7,3 +7,4 @@
|
|||
/pkg/
|
||||
/spec/reports/
|
||||
/tmp/
|
||||
log/
|
||||
|
|
|
@ -1,3 +1,11 @@
|
|||
# to-be-released
|
||||
|
||||
## Changed
|
||||
|
||||
* `Types::Array#member` was deprecated in favor of `Types::Array#of` (flash-gordon)
|
||||
|
||||
[Compare v0.11.1...master](https://github.com/dry-rb/dry-types/compare/v0.11.1...master)
|
||||
|
||||
# v0.11.1 2017-08-14
|
||||
|
||||
## Changed
|
||||
|
|
|
@ -84,7 +84,7 @@ module Dry
|
|||
|
||||
if result
|
||||
type_id, member_id = result[1..2]
|
||||
container[type_id].member(self[member_id])
|
||||
container[type_id].of(self[member_id])
|
||||
else
|
||||
container[name]
|
||||
end
|
||||
|
|
|
@ -1,21 +1,26 @@
|
|||
require 'dry/types/array/member'
|
||||
require 'dry/core/deprecations'
|
||||
|
||||
module Dry
|
||||
module Types
|
||||
class Array < Definition
|
||||
extend Dry::Core::Deprecations[:'dry-types']
|
||||
|
||||
# @param [Type] type
|
||||
# @return [Array::Member]
|
||||
def member(type)
|
||||
def of(type)
|
||||
member =
|
||||
case type
|
||||
when String, Class then Types[type]
|
||||
else type
|
||||
end
|
||||
|
||||
Array::Member.new(primitive, options.merge(member: member))
|
||||
Array::Member.new(primitive, **options, member: member)
|
||||
end
|
||||
|
||||
alias_method :of, :member
|
||||
alias_method :member, :of
|
||||
|
||||
deprecate :member, :of
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -45,7 +45,7 @@ module Dry
|
|||
|
||||
def visit_array(node)
|
||||
member, meta = node
|
||||
registry['array'].member(visit(member)).meta(meta)
|
||||
registry['array'].of(visit(member)).meta(meta)
|
||||
end
|
||||
|
||||
def visit_hash(node)
|
||||
|
@ -60,7 +60,7 @@ module Dry
|
|||
|
||||
def visit_json_array(node)
|
||||
member, meta = node
|
||||
registry['json.array'].member(visit(member)).meta(meta)
|
||||
registry['json.array'].of(visit(member)).meta(meta)
|
||||
end
|
||||
|
||||
def visit_form_hash(node)
|
||||
|
@ -70,7 +70,7 @@ module Dry
|
|||
|
||||
def visit_form_array(node)
|
||||
member, meta = node
|
||||
registry['form.array'].member(visit(member)).meta(meta)
|
||||
registry['form.array'].of(visit(member)).meta(meta)
|
||||
end
|
||||
|
||||
def visit_member(node)
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
require 'spec/dry/types'
|
||||
|
||||
RSpec.describe Dry::Types::Array do
|
||||
describe '#member' do
|
||||
describe '#of' do
|
||||
context 'primitive' do
|
||||
shared_context 'array with a member type' do
|
||||
it 'returns an array with correct member values' do
|
||||
|
@ -20,14 +20,14 @@ RSpec.describe Dry::Types::Array do
|
|||
end
|
||||
|
||||
context 'using method' do
|
||||
subject(:array) { Dry::Types['coercible.array'].member(Dry::Types['coercible.string']) }
|
||||
subject(:array) { Dry::Types['coercible.array'].of(Dry::Types['coercible.string']) }
|
||||
|
||||
include_context 'array with a member type'
|
||||
end
|
||||
|
||||
context 'using a constrained type' do
|
||||
subject(:array) do
|
||||
Dry::Types['array'].member(Dry::Types['coercible.int'].constrained(gt: 2))
|
||||
Dry::Types['array'].of(Dry::Types['coercible.int'].constrained(gt: 2))
|
||||
end
|
||||
|
||||
it 'passes values through member type' do
|
||||
|
@ -48,8 +48,16 @@ RSpec.describe Dry::Types::Array do
|
|||
end
|
||||
end
|
||||
|
||||
describe '#member' do
|
||||
subject(:array) { Dry::Types['coercible.array'].member(Dry::Types['coercible.string']) }
|
||||
|
||||
it 'still works though deprecated' do
|
||||
expect(array[Set[1, 2, 3]]).to eql(%w(1 2 3))
|
||||
end
|
||||
end
|
||||
|
||||
describe '#valid?' do
|
||||
subject(:array) { Dry::Types['strict.array'].member(Dry::Types['strict.string']) }
|
||||
subject(:array) { Dry::Types['strict.array'].of(Dry::Types['strict.string']) }
|
||||
|
||||
it 'detects invalid input of the completely wrong type' do
|
||||
expect(array.valid?(5)).to be(false)
|
||||
|
|
|
@ -128,7 +128,7 @@ RSpec.describe Dry::Types::Compiler, '#call' do
|
|||
end
|
||||
|
||||
it 'builds an array' do
|
||||
ast = Dry::Types['array'].member(
|
||||
ast = Dry::Types['array'].of(
|
||||
Dry::Types['hash'].symbolized(
|
||||
email: Dry::Types['string'],
|
||||
age: Dry::Types['form.int'],
|
||||
|
@ -164,7 +164,7 @@ RSpec.describe Dry::Types::Compiler, '#call' do
|
|||
end
|
||||
|
||||
it 'builds a safe form array with member' do
|
||||
ast = Dry::Types['form.array'].member(Dry::Types['coercible.int']).to_ast
|
||||
ast = Dry::Types['form.array'].of(Dry::Types['coercible.int']).to_ast
|
||||
|
||||
arr = compiler.(ast)
|
||||
|
||||
|
|
|
@ -111,7 +111,7 @@ RSpec.describe Dry::Types::Constrained do
|
|||
subject(:type) do
|
||||
Dry::Types['strict.array']
|
||||
.constrained(size: 3)
|
||||
.member(Dry::Types['coercible.string'])
|
||||
.of(Dry::Types['coercible.string'])
|
||||
end
|
||||
|
||||
it_behaves_like Dry::Types::Definition
|
||||
|
|
|
@ -79,15 +79,15 @@ RSpec.describe Dry::Types::Sum do
|
|||
|
||||
it 'works with two complex types with constraints' do
|
||||
pair = Dry::Types['strict.array']
|
||||
.member(Dry::Types['coercible.string'])
|
||||
.of(Dry::Types['coercible.string'])
|
||||
.constrained(size: 2)
|
||||
|
||||
string_list = Dry::Types['strict.array']
|
||||
.member(Dry::Types['strict.string'])
|
||||
.of(Dry::Types['strict.string'])
|
||||
.constrained(min_size: 1)
|
||||
|
||||
string_pairs = Dry::Types['strict.array']
|
||||
.member(pair)
|
||||
.of(pair)
|
||||
.constrained(min_size: 1)
|
||||
|
||||
type = string_list | string_pairs
|
||||
|
|
|
@ -181,7 +181,7 @@ RSpec.describe Dry::Types, '#to_ast' do
|
|||
|
||||
context 'Member' do
|
||||
subject(:type) do
|
||||
Dry::Types['array'].member(Dry::Types['string'])
|
||||
Dry::Types['array'].of(Dry::Types['string'])
|
||||
end
|
||||
|
||||
specify do
|
||||
|
|
|
@ -231,7 +231,7 @@ RSpec.describe Dry::Types::Definition do
|
|||
end
|
||||
|
||||
describe 'form.array' do
|
||||
subject(:type) { Dry::Types['form.array'].member(Dry::Types['form.int']) }
|
||||
subject(:type) { Dry::Types['form.array'].of(Dry::Types['form.int']) }
|
||||
|
||||
it 'returns coerced array' do
|
||||
arr = %w(1 2 3)
|
||||
|
|
|
@ -64,7 +64,7 @@ RSpec.describe Dry::Types::Definition do
|
|||
end
|
||||
|
||||
describe 'json.array' do
|
||||
subject(:type) { Dry::Types['json.array'].member(Dry::Types['int']) }
|
||||
subject(:type) { Dry::Types['json.array'].of(Dry::Types['int']) }
|
||||
|
||||
it 'returns original value when it is not an array' do
|
||||
foo = 'foo'
|
||||
|
|
|
@ -14,6 +14,9 @@ end
|
|||
$LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
|
||||
|
||||
require 'pathname'
|
||||
|
||||
SPEC_ROOT = Pathname(__FILE__).dirname
|
||||
|
||||
require 'dry-types'
|
||||
|
||||
begin
|
||||
|
@ -36,6 +39,9 @@ require_relative '../lib/spec/dry/types'
|
|||
|
||||
Undefined = Dry::Core::Constants::Undefined
|
||||
|
||||
require 'dry/core/deprecations'
|
||||
Dry::Core::Deprecations.set_logger!(SPEC_ROOT.join('../log/deprecations.log'))
|
||||
|
||||
RSpec.configure do |config|
|
||||
config.before(:example, :maybe) do
|
||||
Dry::Types.load_extensions(:maybe)
|
||||
|
|
Loading…
Reference in New Issue