Skip to content
Draft
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
6 changes: 3 additions & 3 deletions gems/smithy-cbor/lib/smithy-cbor/builder.rb
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ def structure(shape, values)
member_shape = members[member_name]
next unless member_shape

data[@extension.wire_name(member_shape)] = build_shape(member_shape, value)
data[@extension.legacy_wire_name(member_shape)] = build_shape(member_shape, value)
end
end

Expand All @@ -71,12 +71,12 @@ def union(shape, values) # rubocop:disable Metrics/AbcSize
data = {}
if values.is_a?(Schema::Union)
_name, member_shape = shape.target.member_by_type(values.class)
data[@extension.wire_name(member_shape)] = build_shape(member_shape, values.value)
data[@extension.legacy_wire_name(member_shape)] = build_shape(member_shape, values.value)
else
key, value = values.first
if shape.target.member?(key)
member_shape = shape.target.member(key)
data[@extension.wire_name(member_shape)] = build_shape(member_shape, value)
data[@extension.legacy_wire_name(member_shape)] = build_shape(member_shape, value)
end
end
data
Expand Down
4 changes: 2 additions & 2 deletions gems/smithy-cbor/lib/smithy-cbor/parser.rb
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ def map(shape, values, result = nil)

def structure(shape, values, result = nil)
result = shape.target.type.new if result.nil?
index = @extension.member_index(shape.target)
index = @extension.wire_index(shape.target)
values.each do |wire_name, value|
next if value.nil?

Expand All @@ -68,7 +68,7 @@ def structure(shape, values, result = nil)
end

def union(shape, values, result = nil) # rubocop:disable Metrics/AbcSize
index = @extension.member_index(shape.target)
index = @extension.wire_index(shape.target)
values.each do |wire_name, value|
next if value.nil?

Expand Down
17 changes: 13 additions & 4 deletions gems/smithy-json/lib/smithy-json/builder.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@ class Builder
include Smithy::Schema::Shapes

def initialize(options = {})
@extension = options[:json_name] ? Smithy::Json::Extension : Smithy::Schema::Extension
@json_name = options[:json_name] || false
@extension = @json_name ? Smithy::Json::Extension : Smithy::Schema::Extension # TODO: removal
end

def build(shape, data)
Expand Down Expand Up @@ -73,7 +74,7 @@ def structure(shape, values)
member_shape = members[member_name]
next unless member_shape

data[@extension.wire_name(member_shape)] = build_shape(member_shape, value)
data[wire_name(member_shape)] = build_shape(member_shape, value)
end
end

Expand All @@ -94,16 +95,24 @@ def union(shape, values) # rubocop:disable Metrics/AbcSize
data = {}
if values.is_a?(Schema::Union)
_name, member_shape = shape.target.member_by_type(values.class)
data[@extension.wire_name(member_shape)] = build_shape(member_shape, values.value)
data[wire_name(member_shape)] = build_shape(member_shape, values.value)
else
key, value = values.first
if shape.target.member?(key)
member_shape = shape.target.member(key)
data[@extension.wire_name(member_shape)] = build_shape(member_shape, value)
data[wire_name(member_shape)] = build_shape(member_shape, value)
end
end
data
end

def wire_name(member_shape)
if @json_name
@extension.wire_name(member_shape)
else
@extension.legacy_wire_name(member_shape)
end
end
end
end
end
4 changes: 3 additions & 1 deletion gems/smithy-json/lib/smithy-json/oj_engine.rb
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,9 @@ def load(json)
end

def dump(value)
Oj.dump(value, mode: :compat)
# Avoid Oj's JSON mode calling Time#to_json with keywords rejected by
# recent json gem versions while preserving the existing time format.
Oj.dump(value, { mode: :custom, time_format: :ruby })
end
end
end
Expand Down
15 changes: 12 additions & 3 deletions gems/smithy-json/lib/smithy-json/parser.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@ class Parser
include Smithy::Schema::Shapes

def initialize(options = {})
@extension = options[:json_name] ? Smithy::Json::Extension : Smithy::Schema::Extension
@json_name = options[:json_name] || false
@extension = @json_name ? Smithy::Json::Extension : Smithy::Schema::Extension # TODO: removal
end

def parse(shape, bytes, result = nil)
Expand Down Expand Up @@ -68,7 +69,7 @@ def structure(shape, values, result = nil)
return if values.nil?

result = shape.target.type.new if result.nil?
index = @extension.member_index(shape.target)
index = member_index(shape.target)
values.each do |wire_name, value|
next if value.nil?

Expand All @@ -95,7 +96,7 @@ def timestamp(value)
end

def union(shape, values, result = nil) # rubocop:disable Metrics/AbcSize
index = @extension.member_index(shape.target)
index = member_index(shape.target)
values.each do |wire_name, value|
next if value.nil?

Expand All @@ -115,6 +116,14 @@ def union(shape, values, result = nil) # rubocop:disable Metrics/AbcSize
def sparse?(shape)
@extension.sparse?(shape)
end

def member_index(shape)
if @json_name
@extension.member_index(shape)
else
@extension.wire_index(shape)
end
end
end
end
end
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ def union(shape, values, result = nil) # rubocop:disable Metrics/AbcSize
end

def wire_name(member_shape)
Smithy::Schema::Extension.wire_name(member_shape)
Smithy::Schema::Extension.legacy_wire_name(member_shape)
end
end
end
Expand Down
Loading
Loading