Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -75,8 +75,9 @@ def structure(shape, values, result = nil)
return if values.nil?

result = shape.target.type.new if result.nil?
shape.target.members.each do |member_name, member_shape|
value = values[wire_name(member_shape)]
Smithy::Schema::Extension.wire_index(shape.target).each do |wire_name, entry|
member_name, member_shape, _target_shape = entry
value = values[wire_name]
result[member_name] = deserialize_shape(member_shape, value) unless value.nil?
end
result
Expand All @@ -100,10 +101,12 @@ def timestamp(value)
end

def union(shape, values, result = nil) # rubocop:disable Metrics/AbcSize
shape.target.members.each do |member_name, member_shape|
value = values[wire_name(member_shape)]
index = Smithy::Schema::Extension.wire_index(shape.target)
values.each do |wire_name, value|
next if value.nil?
next unless (entry = index[wire_name])

member_name, member_shape, = entry
result = shape.target.member_type(member_name) if result.nil?
return result.new(member_name => deserialize_shape(member_shape, value))
end
Expand All @@ -112,10 +115,6 @@ def union(shape, values, result = nil) # rubocop:disable Metrics/AbcSize
key, value = values.first
shape.target.member_type(:unknown).new(key, value)
end

def wire_name(member_shape)
Smithy::Schema::Extension.legacy_wire_name(member_shape)
end
end
end
end
Expand Down
6 changes: 0 additions & 6 deletions gems/smithy-schema/lib/smithy-schema/extension.rb
Original file line number Diff line number Diff line change
Expand Up @@ -232,12 +232,6 @@ def each_member(shape, &block)
shape.members.each { |name, member| block.call(name, member) }
end

# TODO: Remove after the remaining legacy deserializer migrates to a
# resolved extension index.
def legacy_wire_name(member)
member.name
end

# Returns whether a collection may retain nil values.
#
# Example:
Expand Down
1 change: 0 additions & 1 deletion gems/smithy-schema/sig/smithy-schema/extension.rbs
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ module Smithy
def self.timestamp_format: ((Shapes::Shape | Shapes::MemberShape) shape) -> (String | Symbol)
def self.unknown_member_type: (Shapes::UnionShape shape) -> untyped
def self.each_member: ((Shapes::StructureShape | Shapes::UnionShape) shape) ?{ (Symbol, Shapes::MemberShape) -> void } -> untyped
def self.legacy_wire_name: (Shapes::MemberShape member) -> String?
def self.sparse?: ((Shapes::Shape | Shapes::MemberShape) shape) -> bool
end
end
Expand Down
12 changes: 0 additions & 12 deletions gems/smithy-schema/spec/smithy-schema/extension_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -41,18 +41,6 @@ module Schema
end
end

describe '.legacy_wire_name' do
it 'returns the model name' do
member = Shapes::MemberShape.new(
target: Shapes::StringShape.new,
name: 'wireName',
traits: { 'smithy.api#jsonName' => 'jsonWireName' }
)

expect(described_class.legacy_wire_name(member)).to eq('wireName')
end
end

describe '.sparse?' do
it 'returns whether the sparse trait is present' do
expect(described_class.sparse?(Shapes::ListShape.new)).to be(false)
Expand Down
Loading