ree_lib 1.0.30 → 1.0.31
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/ree_lib/packages/ree_dao/package/ree_dao/functions/one_to_many.rb +2 -5
- data/lib/ree_lib/packages/ree_dao/package/ree_dao/functions/one_to_one.rb +2 -5
- data/lib/ree_lib/packages/ree_dao/package/ree_dao/functions/persist_assoc.rb +1 -4
- data/lib/ree_lib/packages/ree_dto/package/ree_dto/entity_dsl.rb +3 -1
- data/lib/ree_lib/packages/ree_dto/spec/ree_dto/entity_dsl_spec.rb +2 -0
- data/lib/ree_lib/packages/ree_mapper/package/ree_mapper/default_factory.rb +4 -4
- data/lib/ree_lib/packages/ree_mapper/package/ree_mapper/functions/build_mapper_strategy.rb +4 -12
- data/lib/ree_lib/packages/ree_mapper/package/ree_mapper/mapper.rb +15 -1
- data/lib/ree_lib/packages/ree_mapper/package/ree_mapper/mapper_factory.rb +9 -21
- data/lib/ree_lib/packages/ree_mapper/package/ree_mapper/mapper_factory_proxy.rb +2 -1
- data/lib/ree_lib/packages/ree_mapper/package/ree_mapper/mapper_strategy.rb +30 -15
- data/lib/ree_lib/packages/ree_mapper/package/ree_mapper/strategy_outputs/{symbol_key_hash_output.rb → hash_output.rb} +4 -4
- data/lib/ree_lib/packages/ree_mapper/package/ree_mapper/strategy_outputs/object_output.rb +2 -7
- data/lib/ree_lib/packages/ree_mapper/package/ree_mapper/strategy_outputs/strategy_output.rb +9 -12
- data/lib/ree_lib/packages/ree_mapper/package/ree_mapper/strategy_outputs/struct_output.rb +28 -0
- data/lib/ree_lib/packages/ree_mapper/package/ree_mapper.rb +6 -6
- data/lib/ree_lib/packages/ree_mapper/schemas/ree_mapper/functions/build_mapper_strategy.schema.json +3 -3
- data/lib/ree_lib/packages/ree_mapper/spec/ree_mapper/functions/build_mapper_factory_spec.rb +1 -1
- data/lib/ree_lib/packages/ree_mapper/spec/ree_mapper/functions/build_mapper_strategy_spec.rb +1 -1
- data/lib/ree_lib/packages/ree_mapper/spec/ree_mapper/mapper_factory_spec.rb +8 -1
- data/lib/ree_lib/packages/ree_mapper/spec/ree_mapper/mapper_spec.rb +76 -11
- data/lib/ree_lib/packages/ree_mapper/spec/ree_mapper/types/array_spec.rb +8 -8
- data/lib/ree_lib/packages/ree_mapper/spec/ree_mapper/types/bool_spec.rb +4 -4
- data/lib/ree_lib/packages/ree_mapper/spec/ree_mapper/types/date_spec.rb +4 -4
- data/lib/ree_lib/packages/ree_mapper/spec/ree_mapper/types/date_time_spec.rb +4 -4
- data/lib/ree_lib/packages/ree_mapper/spec/ree_mapper/types/float_spec.rb +4 -4
- data/lib/ree_lib/packages/ree_mapper/spec/ree_mapper/types/hash_spec.rb +5 -27
- data/lib/ree_lib/packages/ree_mapper/spec/ree_mapper/types/integer_spec.rb +4 -4
- data/lib/ree_lib/packages/ree_mapper/spec/ree_mapper/types/string_spec.rb +4 -4
- data/lib/ree_lib/packages/ree_mapper/spec/ree_mapper/types/time_spec.rb +4 -4
- data/lib/ree_lib/packages/ree_mapper/spec/ree_mapper/types/type_options_spec.rb +4 -4
- data/lib/ree_lib/packages/ree_swagger/spec/functions/build_endpoint_schema_spec.rb +2 -2
- data/lib/ree_lib/packages/ree_swagger/spec/functions/build_parameters_spec.rb +2 -2
- data/lib/ree_lib/packages/ree_swagger/spec/functions/build_request_body_spec.rb +2 -2
- data/lib/ree_lib/packages/ree_swagger/spec/functions/build_serializer_schema_spec.rb +2 -2
- data/lib/ree_lib/packages/ree_swagger/spec/functions/register_type_spec.rb +3 -3
- data/lib/ree_lib/version.rb +1 -1
- metadata +4 -4
- data/lib/ree_lib/packages/ree_mapper/package/ree_mapper/strategy_outputs/string_key_hash_output.rb +0 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5a28b9fc25900e54ca38f0a0a4fc47c8a46ceea9543d9a0cc2b95d72ff17c9cd
|
4
|
+
data.tar.gz: 19ace80db90cabee5a3909c9322c725c8c43b8a9766e2718ebd9b666bc929e56
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 71287702a0bab2686193543bb28bd6eb322789293b3bec1605419e9bbe0dbecee651e5b0ceb7ce9311eff71a7f10513c47dd44811cfe65b48748ee42a4192d63
|
7
|
+
data.tar.gz: dcc67851e4a71dea3ee27c057d725861a2e75253d94cad46c137eb6307acadc0d4792542926145c3023e7241ee6557cfe7cf5a9392ab18ad5d6960c0b58f9707
|
data/Gemfile.lock
CHANGED
@@ -3,8 +3,8 @@ class ReeDao::OneToMany
|
|
3
3
|
|
4
4
|
fn :one_to_many do
|
5
5
|
link :demodulize, from: :ree_string
|
6
|
-
link :underscore, from: :ree_string
|
7
6
|
link :group_by, from: :ree_array
|
7
|
+
link :underscore, from: :ree_string
|
8
8
|
end
|
9
9
|
|
10
10
|
contract(
|
@@ -24,10 +24,7 @@ class ReeDao::OneToMany
|
|
24
24
|
else
|
25
25
|
dto_class = assoc_dao
|
26
26
|
.opts[:schema_mapper]
|
27
|
-
.
|
28
|
-
.detect {_1 .method == :db_load }
|
29
|
-
.output
|
30
|
-
.dto
|
27
|
+
.dto(:db_load)
|
31
28
|
|
32
29
|
name = underscore(demodulize(dto_class.name))
|
33
30
|
"set_#{name}s".to_sym
|
@@ -3,8 +3,8 @@ class ReeDao::OneToOne
|
|
3
3
|
|
4
4
|
fn :one_to_one do
|
5
5
|
link :demodulize, from: :ree_string
|
6
|
-
link :underscore, from: :ree_string
|
7
6
|
link :index_by, from: :ree_array
|
7
|
+
link :underscore, from: :ree_string
|
8
8
|
end
|
9
9
|
|
10
10
|
contract(
|
@@ -21,10 +21,7 @@ class ReeDao::OneToOne
|
|
21
21
|
|
22
22
|
dto_class = assoc_dao
|
23
23
|
.opts[:schema_mapper]
|
24
|
-
.
|
25
|
-
.detect {_1 .method == :db_load }
|
26
|
-
.output
|
27
|
-
.dto
|
24
|
+
.dto(:db_load)
|
28
25
|
|
29
26
|
assoc_name = underscore(demodulize(dto_class.name))
|
30
27
|
reverse = opts[:reverse]
|
@@ -27,10 +27,7 @@ class ReeDao::PersistAssoc
|
|
27
27
|
assoc_name = if opts[:child_assoc].nil?
|
28
28
|
dto_class = assoc_dao
|
29
29
|
.opts[:schema_mapper]
|
30
|
-
.
|
31
|
-
.detect {_1 .method == :db_load }
|
32
|
-
.output
|
33
|
-
.dto
|
30
|
+
.dto(:db_load)
|
34
31
|
|
35
32
|
name = underscore(demodulize(dto_class.name))
|
36
33
|
"#{name}s"
|
@@ -38,6 +38,8 @@ RSpec.describe ReeDto::EntityDSL do
|
|
38
38
|
it { expect(@test_dto.email).to eq('test@example.com') }
|
39
39
|
it { expect(@test_dto).to eq(@compare_dto) }
|
40
40
|
it { expect(@test_dto).to_not eq(@uncompareable_dto)}
|
41
|
+
it { expect(@test_dto == Object.new).to eq(false) }
|
42
|
+
it { expect(@test_dto == @test_dto).to eq(true) }
|
41
43
|
|
42
44
|
context "missing args" do
|
43
45
|
it {
|
@@ -10,10 +10,10 @@ class ReeMapper::DefaultFactory
|
|
10
10
|
|
11
11
|
def build
|
12
12
|
build_mapper_factory(strategies: [
|
13
|
-
build_mapper_strategy(method: :cast
|
14
|
-
build_mapper_strategy(method: :serialize
|
15
|
-
build_mapper_strategy(method: :db_dump
|
16
|
-
build_mapper_strategy(method: :db_load,
|
13
|
+
build_mapper_strategy(method: :cast),
|
14
|
+
build_mapper_strategy(method: :serialize),
|
15
|
+
build_mapper_strategy(method: :db_dump),
|
16
|
+
build_mapper_strategy(method: :db_load, dto: Object, always_optional: true)
|
17
17
|
])
|
18
18
|
end
|
19
19
|
end
|
@@ -5,23 +5,15 @@ class ReeMapper::BuildMapperStrategy
|
|
5
5
|
|
6
6
|
fn :build_mapper_strategy
|
7
7
|
|
8
|
-
OUTPUT_MAP = {
|
9
|
-
string_key_hash: ReeMapper::StringKeyHashOutput,
|
10
|
-
symbol_key_hash: ReeMapper::SymbolKeyHashOutput,
|
11
|
-
object: ReeMapper::ObjectOutput
|
12
|
-
}.freeze
|
13
|
-
|
14
8
|
contract(Kwargs[
|
15
9
|
method: Symbol,
|
16
|
-
|
10
|
+
dto: Class,
|
17
11
|
always_optional: Bool
|
18
|
-
] => ReeMapper::MapperStrategy)
|
19
|
-
def call(method:,
|
20
|
-
raise ArgumentError, 'invalid output' unless OUTPUT_MAP.key?(output)
|
21
|
-
|
12
|
+
] => ReeMapper::MapperStrategy)
|
13
|
+
def call(method:, dto: Hash, always_optional: false)
|
22
14
|
ReeMapper::MapperStrategy.new(
|
23
15
|
method: method,
|
24
|
-
|
16
|
+
dto: dto,
|
25
17
|
always_optional: always_optional
|
26
18
|
)
|
27
19
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
class ReeMapper::Mapper
|
4
|
-
contract(ArrayOf[ReeMapper::MapperStrategy], Nilor[ReeMapper::AbstractType] => Any)
|
4
|
+
contract(ArrayOf[ReeMapper::MapperStrategy], Nilor[ReeMapper::AbstractType] => Any).throws(ReeMapper::UnsupportedTypeError)
|
5
5
|
def self.build(strategies, type = nil)
|
6
6
|
if type
|
7
7
|
strategies.each do |strategy|
|
@@ -110,4 +110,18 @@ class ReeMapper::Mapper
|
|
110
110
|
def name=(name)
|
111
111
|
@name = name
|
112
112
|
end
|
113
|
+
|
114
|
+
contract(Symbol => Class).throws(ArgumentError)
|
115
|
+
def dto(strategy_method)
|
116
|
+
strategy = strategies.detect { _1.method == strategy_method }
|
117
|
+
raise ArgumentError, "there is no :#{strategy_method} strategy" unless strategy
|
118
|
+
strategy.dto
|
119
|
+
end
|
120
|
+
|
121
|
+
contract(None => nil).throws(ReeMapper::ArgumentError)
|
122
|
+
def prepare_dto
|
123
|
+
raise ReeMapper::ArgumentError, "mapper should contain at least one field" if fields.empty?
|
124
|
+
strategies.each { _1.prepare_dto(fields.keys) }
|
125
|
+
nil
|
126
|
+
end
|
113
127
|
end
|
@@ -5,12 +5,6 @@ class ReeMapper::MapperFactory
|
|
5
5
|
attr_reader :types, :strategies
|
6
6
|
end
|
7
7
|
|
8
|
-
HASH_KEY_OPTION_VALUES = [:symbol, :string, nil].freeze
|
9
|
-
HASH_KEY_OPTION_MAP = {
|
10
|
-
symbol: ReeMapper::SymbolKeyHashOutput,
|
11
|
-
string: ReeMapper::StringKeyHashOutput
|
12
|
-
}.freeze
|
13
|
-
|
14
8
|
contract(Symbol, Any => Class).throws(ArgumentError)
|
15
9
|
def self.register_type(name, object_type)
|
16
10
|
register(
|
@@ -70,17 +64,17 @@ class ReeMapper::MapperFactory
|
|
70
64
|
@mapper = mapper
|
71
65
|
end
|
72
66
|
|
73
|
-
contract(Nilor[Symbol], Kwargs[each: Nilor[ReeMapper::Field], optional: Bool,
|
74
|
-
def array(field_name = nil, each: nil, optional: false,
|
67
|
+
contract(Nilor[Symbol], Kwargs[each: Nilor[ReeMapper::Field], optional: Bool, dto: Nilor[Class]], Ksplat[RestKeys => Any], Optblock => Nilor[ReeMapper::Field])
|
68
|
+
def array(field_name = nil, each: nil, optional: false, dto: nil, **opts, &blk)
|
75
69
|
raise ReeMapper::Error, "invalid DSL usage" unless @mapper
|
76
70
|
raise ArgumentError, "array item can't be optional" if field_name.nil? && optional
|
77
71
|
raise ArgumentError, 'array type should use either :each or :block' if each && blk || !each && !blk
|
78
|
-
raise ArgumentError, '
|
72
|
+
raise ArgumentError, 'array does not permit :dto without :block' if dto && !blk
|
79
73
|
raise ArgumentError, 'array does not permit :only and :except keys' if opts.key?(:only) || opts.key?(:except)
|
80
74
|
|
81
75
|
if blk
|
82
76
|
each = ReeMapper::Field.new(
|
83
|
-
hash_from_blk(
|
77
|
+
hash_from_blk(dto: dto, &blk)
|
84
78
|
)
|
85
79
|
end
|
86
80
|
|
@@ -98,12 +92,11 @@ class ReeMapper::MapperFactory
|
|
98
92
|
array(field_name, each: each, optional: true, **opts, &blk)
|
99
93
|
end
|
100
94
|
|
101
|
-
contract(Symbol, Kwargs[
|
102
|
-
def hash(field_name,
|
95
|
+
contract(Symbol, Kwargs[dto: Nilor[Class]], Ksplat[RestKeys => Any], Block => nil)
|
96
|
+
def hash(field_name, dto: nil, **opts, &blk)
|
103
97
|
raise ReeMapper::Error, "invalid DSL usage" unless @mapper
|
104
|
-
raise ArgumentError, 'invalid :key option value' unless HASH_KEY_OPTION_VALUES.include?(key)
|
105
98
|
|
106
|
-
type = hash_from_blk(
|
99
|
+
type = hash_from_blk(dto: dto, &blk)
|
107
100
|
|
108
101
|
@mapper.add_field(type, field_name, **opts)
|
109
102
|
end
|
@@ -115,17 +108,12 @@ class ReeMapper::MapperFactory
|
|
115
108
|
|
116
109
|
private
|
117
110
|
|
118
|
-
def hash_from_blk(
|
111
|
+
def hash_from_blk(dto:, &blk)
|
119
112
|
mapper_proxy = self.class.call
|
120
113
|
|
121
114
|
strategies = @mapper.strategies.map do |strategy|
|
122
115
|
strategy = strategy.dup
|
123
|
-
|
124
|
-
if key
|
125
|
-
strategy.output = HASH_KEY_OPTION_MAP.fetch(key).new
|
126
|
-
elsif !(output.is_a?(ReeMapper::SymbolKeyHashOutput) || output.is_a?(ReeMapper::StringKeyHashOutput))
|
127
|
-
strategy.output = ReeMapper::SymbolKeyHashOutput.new
|
128
|
-
end
|
116
|
+
strategy.dto = dto if dto
|
129
117
|
strategy
|
130
118
|
end
|
131
119
|
|
@@ -24,7 +24,7 @@ class ReeMapper::MapperFactoryProxy
|
|
24
24
|
else
|
25
25
|
strategy = mapper_factory.strategies.detect { _1.method == strategy_or_method }
|
26
26
|
raise ArgumentError, "MapperFactory strategy :#{strategy_or_method} not found" unless strategy
|
27
|
-
strategy =
|
27
|
+
strategy = strategy.dup
|
28
28
|
strategy.dto = dto if dto
|
29
29
|
end
|
30
30
|
|
@@ -34,6 +34,7 @@ class ReeMapper::MapperFactoryProxy
|
|
34
34
|
|
35
35
|
mapper = ReeMapper::Mapper.build(strategies)
|
36
36
|
mapper_factory.new(mapper).instance_exec(&blk)
|
37
|
+
mapper.prepare_dto
|
37
38
|
|
38
39
|
mapper_factory.register(register_as, mapper) if register_as
|
39
40
|
|
@@ -3,24 +3,19 @@
|
|
3
3
|
class ReeMapper::MapperStrategy
|
4
4
|
attr_reader :method, :always_optional
|
5
5
|
|
6
|
-
contract(Symbol,
|
7
|
-
def initialize(method:,
|
6
|
+
contract(Symbol, Class, Bool => Any)
|
7
|
+
def initialize(method:, dto:, always_optional:)
|
8
8
|
@method = method
|
9
|
-
@output =
|
9
|
+
@output = build_output(dto)
|
10
10
|
@always_optional = always_optional
|
11
11
|
end
|
12
12
|
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
def initialize_dup(_orig)
|
14
|
+
@output = @output.dup
|
15
|
+
super
|
16
16
|
end
|
17
17
|
|
18
|
-
contract
|
19
|
-
def output=(output)
|
20
|
-
@output = output
|
21
|
-
end
|
22
|
-
|
23
|
-
contract(Any)
|
18
|
+
contract(None => Object)
|
24
19
|
def build_object
|
25
20
|
output.build_object
|
26
21
|
end
|
@@ -48,13 +43,33 @@ class ReeMapper::MapperStrategy
|
|
48
43
|
end
|
49
44
|
end
|
50
45
|
|
51
|
-
contract(Class =>
|
46
|
+
contract(Class => nil)
|
52
47
|
def dto=(dto)
|
53
|
-
output
|
48
|
+
@output = build_output(dto)
|
49
|
+
nil
|
54
50
|
end
|
55
51
|
|
56
|
-
contract(None =>
|
52
|
+
contract(None => Class)
|
57
53
|
def dto
|
58
54
|
output.dto
|
59
55
|
end
|
56
|
+
|
57
|
+
contract(ArrayOf[Symbol] => nil)
|
58
|
+
def prepare_dto(field_names)
|
59
|
+
output.prepare_dto(field_names)
|
60
|
+
end
|
61
|
+
|
62
|
+
private
|
63
|
+
|
64
|
+
attr_reader :output
|
65
|
+
|
66
|
+
def build_output(dto)
|
67
|
+
if dto == Hash || (defined?(OpenStruct) && dto == OpenStruct)
|
68
|
+
ReeMapper::HashOutput.new(dto)
|
69
|
+
elsif dto == Struct
|
70
|
+
ReeMapper::StructOutput.new
|
71
|
+
else
|
72
|
+
ReeMapper::ObjectOutput.new(dto)
|
73
|
+
end
|
74
|
+
end
|
60
75
|
end
|
@@ -1,9 +1,9 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
class ReeMapper::
|
4
|
-
contract(
|
3
|
+
class ReeMapper::HashOutput < ReeMapper::StrategyOutput
|
4
|
+
contract(None => Object)
|
5
5
|
def build_object
|
6
|
-
|
6
|
+
dto.new
|
7
7
|
end
|
8
8
|
|
9
9
|
contract(Object, ReeMapper::Field, Any => nil)
|
@@ -11,4 +11,4 @@ class ReeMapper::SymbolKeyHashOutput < ReeMapper::StrategyOutput
|
|
11
11
|
object[field.name] = value
|
12
12
|
nil
|
13
13
|
end
|
14
|
-
end
|
14
|
+
end
|
@@ -1,14 +1,9 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
class ReeMapper::ObjectOutput < ReeMapper::StrategyOutput
|
4
|
-
|
5
|
-
@dto = Object
|
6
|
-
super
|
7
|
-
end
|
8
|
-
|
9
|
-
contract(Object)
|
4
|
+
contract(None => Object)
|
10
5
|
def build_object
|
11
|
-
|
6
|
+
dto.allocate
|
12
7
|
end
|
13
8
|
|
14
9
|
contract(Object, ReeMapper::Field, Any => nil)
|
@@ -1,21 +1,18 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
class ReeMapper::StrategyOutput
|
4
|
-
|
5
|
-
raise NotImplementedError
|
6
|
-
end
|
4
|
+
attr_reader :dto
|
7
5
|
|
8
|
-
|
9
|
-
|
10
|
-
end
|
11
|
-
|
12
|
-
contract(Class => Class)
|
13
|
-
def dto=(dto)
|
6
|
+
contract(Class => Any)
|
7
|
+
def initialize(dto)
|
14
8
|
@dto = dto
|
15
9
|
end
|
16
10
|
|
17
|
-
contract(
|
18
|
-
def
|
19
|
-
|
11
|
+
contract(Object, ReeMapper::Field, Any => nil).throws(NotImplementedError)
|
12
|
+
def assign_value(object, field, value)
|
13
|
+
raise NotImplementedError
|
20
14
|
end
|
15
|
+
|
16
|
+
contract(ArrayOf[Symbol] => nil)
|
17
|
+
def prepare_dto(field_names); end
|
21
18
|
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class ReeMapper::StructOutput < ReeMapper::StrategyOutput
|
4
|
+
contract(None => Any)
|
5
|
+
def initialize; end
|
6
|
+
|
7
|
+
def initialize_dup(orig)
|
8
|
+
@dto = nil
|
9
|
+
super
|
10
|
+
end
|
11
|
+
|
12
|
+
contract(None => Object)
|
13
|
+
def build_object
|
14
|
+
dto.allocate
|
15
|
+
end
|
16
|
+
|
17
|
+
contract(Object, ReeMapper::Field, Any => nil)
|
18
|
+
def assign_value(object, field, value)
|
19
|
+
object[field.name] = value
|
20
|
+
nil
|
21
|
+
end
|
22
|
+
|
23
|
+
contract(ArrayOf[Symbol] => nil)
|
24
|
+
def prepare_dto(field_names)
|
25
|
+
@dto = Struct.new(*field_names)
|
26
|
+
nil
|
27
|
+
end
|
28
|
+
end
|
@@ -33,8 +33,8 @@ module ReeMapper
|
|
33
33
|
|
34
34
|
require_relative 'ree_mapper/strategy_outputs/strategy_output'
|
35
35
|
require_relative 'ree_mapper/strategy_outputs/object_output'
|
36
|
-
require_relative 'ree_mapper/strategy_outputs/
|
37
|
-
require_relative 'ree_mapper/strategy_outputs/
|
36
|
+
require_relative 'ree_mapper/strategy_outputs/hash_output'
|
37
|
+
require_relative 'ree_mapper/strategy_outputs/struct_output'
|
38
38
|
|
39
39
|
require_relative 'ree_mapper/mapper_strategy'
|
40
40
|
require_relative 'ree_mapper/mapper'
|
@@ -154,10 +154,10 @@ Create `mapper_factory.rb` file to declare `MapperFactory` class.
|
|
154
154
|
|
155
155
|
def build
|
156
156
|
mapper_factory = build_mapper_factory(strategies: [
|
157
|
-
build_mapper_strategy(method: :cast,
|
158
|
-
build_mapper_strategy(method: :serialize,
|
159
|
-
build_mapper_strategy(method: :db_dump,
|
160
|
-
build_mapper_strategy(method: :db_load,
|
157
|
+
build_mapper_strategy(method: :cast, dto: Hash),
|
158
|
+
build_mapper_strategy(method: :serialize, dto: Hash),
|
159
|
+
build_mapper_strategy(method: :db_dump, dto: Hash),
|
160
|
+
build_mapper_strategy(method: :db_load, dto: Object)
|
161
161
|
])
|
162
162
|
|
163
163
|
mapper_factory.register(:cart_user, user_caster)
|
data/lib/ree_lib/packages/ree_mapper/schemas/ree_mapper/functions/build_mapper_strategy.schema.json
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
{
|
11
11
|
"doc": "",
|
12
12
|
"throws": [
|
13
|
-
|
13
|
+
|
14
14
|
],
|
15
15
|
"return": "ReeMapper::MapperStrategy",
|
16
16
|
"args": [
|
@@ -19,8 +19,8 @@
|
|
19
19
|
"type": "Symbol"
|
20
20
|
},
|
21
21
|
{
|
22
|
-
"arg": "
|
23
|
-
"type": "
|
22
|
+
"arg": "dto",
|
23
|
+
"type": "Class"
|
24
24
|
},
|
25
25
|
{
|
26
26
|
"arg": "always_optional",
|
data/lib/ree_lib/packages/ree_mapper/spec/ree_mapper/functions/build_mapper_strategy_spec.rb
CHANGED
@@ -4,7 +4,7 @@ RSpec.describe :build_mapper_strategy do
|
|
4
4
|
link :build_mapper_strategy, from: :ree_mapper
|
5
5
|
|
6
6
|
it {
|
7
|
-
result = build_mapper_strategy(method: :cast,
|
7
|
+
result = build_mapper_strategy(method: :cast, dto: Hash)
|
8
8
|
|
9
9
|
expect(result).to be_a(ReeMapper::MapperStrategy)
|
10
10
|
}
|
@@ -7,7 +7,7 @@ RSpec.describe ReeMapper::MapperFactory do
|
|
7
7
|
|
8
8
|
let(:mapper_factory) {
|
9
9
|
build_mapper_factory(strategies: [
|
10
|
-
build_mapper_strategy(method: :cast,
|
10
|
+
build_mapper_strategy(method: :cast, dto: Hash)
|
11
11
|
])
|
12
12
|
}
|
13
13
|
|
@@ -72,5 +72,12 @@ RSpec.describe ReeMapper::MapperFactory do
|
|
72
72
|
end
|
73
73
|
}.to raise_error(ArgumentError, 'MapperFactory strategy :not_found not found')
|
74
74
|
}
|
75
|
+
|
76
|
+
it {
|
77
|
+
expect {
|
78
|
+
mapper_factory.call.use(:cast) do
|
79
|
+
end
|
80
|
+
}.to raise_error(ReeMapper::ArgumentError, "mapper should contain at least one field")
|
81
|
+
}
|
75
82
|
end
|
76
83
|
end
|
@@ -4,11 +4,11 @@ RSpec.describe ReeMapper::Mapper do
|
|
4
4
|
link :build_mapper_factory, from: :ree_mapper
|
5
5
|
link :build_mapper_strategy, from: :ree_mapper
|
6
6
|
|
7
|
-
describe '
|
7
|
+
describe '#:strategy_method' do
|
8
8
|
let(:mapper) {
|
9
9
|
build_mapper_factory(
|
10
10
|
strategies: [
|
11
|
-
build_mapper_strategy(method: :cast,
|
11
|
+
build_mapper_strategy(method: :cast, dto: Hash),
|
12
12
|
]
|
13
13
|
).call.use(:cast) do
|
14
14
|
integer :my_field
|
@@ -26,13 +26,19 @@ RSpec.describe ReeMapper::Mapper do
|
|
26
26
|
it {
|
27
27
|
expect(mapper.cast(OpenStruct.new({ my_field: 1 }))).to eq({ my_field: 1 })
|
28
28
|
}
|
29
|
+
|
30
|
+
it {
|
31
|
+
obj = Object.new
|
32
|
+
obj.define_singleton_method(:my_field) { 1 }
|
33
|
+
expect(mapper.cast(obj)).to eq({ my_field: 1 })
|
34
|
+
}
|
29
35
|
end
|
30
36
|
|
31
|
-
describe '
|
37
|
+
describe 'hash dto' do
|
32
38
|
let(:mapper) {
|
33
39
|
build_mapper_factory(
|
34
40
|
strategies: [
|
35
|
-
build_mapper_strategy(method: :cast,
|
41
|
+
build_mapper_strategy(method: :cast, dto: Hash),
|
36
42
|
]
|
37
43
|
).call.use(:cast) do
|
38
44
|
integer :my_field
|
@@ -40,15 +46,15 @@ RSpec.describe ReeMapper::Mapper do
|
|
40
46
|
}
|
41
47
|
|
42
48
|
it {
|
43
|
-
expect(mapper.cast({ my_field: 1 })).to eq({
|
49
|
+
expect(mapper.cast({ my_field: 1 })).to eq({ my_field: 1 })
|
44
50
|
}
|
45
51
|
end
|
46
52
|
|
47
|
-
describe '
|
53
|
+
describe 'ostruct dto' do
|
48
54
|
let(:mapper) {
|
49
55
|
build_mapper_factory(
|
50
56
|
strategies: [
|
51
|
-
build_mapper_strategy(method: :cast,
|
57
|
+
build_mapper_strategy(method: :cast, dto: OpenStruct),
|
52
58
|
]
|
53
59
|
).call.use(:cast) do
|
54
60
|
integer :my_field
|
@@ -56,16 +62,47 @@ RSpec.describe ReeMapper::Mapper do
|
|
56
62
|
}
|
57
63
|
|
58
64
|
it {
|
59
|
-
expect(mapper.cast({ my_field: 1 })).to eq({ my_field: 1 })
|
65
|
+
expect(mapper.cast({ my_field: 1 }).to_h).to eq({ my_field: 1 })
|
66
|
+
}
|
67
|
+
|
68
|
+
it {
|
69
|
+
expect(mapper.cast({ my_field: 1 })).to be_a(OpenStruct)
|
60
70
|
}
|
61
71
|
end
|
62
72
|
|
63
|
-
describe '
|
73
|
+
describe 'struct dto' do
|
74
|
+
let(:mapper) {
|
75
|
+
build_mapper_factory(
|
76
|
+
strategies: [
|
77
|
+
build_mapper_strategy(method: :cast, dto: Struct),
|
78
|
+
]
|
79
|
+
).call.use(:cast) do
|
80
|
+
integer :my_field
|
81
|
+
hash :hsh do
|
82
|
+
integer :nested_field
|
83
|
+
end
|
84
|
+
end
|
85
|
+
}
|
86
|
+
|
87
|
+
it {
|
88
|
+
nested_struct = Struct.new(:nested_field)
|
89
|
+
struct = Struct.new(:my_field, :hsh)
|
90
|
+
expect(mapper.cast({ my_field: 1, hsh: { nested_field: 1 } }).inspect).to eq(
|
91
|
+
struct.new(1, nested_struct.new(1)).inspect
|
92
|
+
)
|
93
|
+
}
|
94
|
+
|
95
|
+
it {
|
96
|
+
expect(mapper.cast({ my_field: 1, hsh: { nested_field: 1 } })).to be_a(Struct)
|
97
|
+
}
|
98
|
+
end
|
99
|
+
|
100
|
+
describe 'object dto' do
|
64
101
|
let(:dto) { Class.new }
|
65
102
|
let(:mapper) {
|
66
103
|
build_mapper_factory(
|
67
104
|
strategies: [
|
68
|
-
build_mapper_strategy(method: :cast,
|
105
|
+
build_mapper_strategy(method: :cast, dto: Object),
|
69
106
|
]
|
70
107
|
).call.use(:cast, dto: dto) do
|
71
108
|
integer :my_field
|
@@ -87,7 +124,7 @@ RSpec.describe ReeMapper::Mapper do
|
|
87
124
|
let(:mapper_factory) {
|
88
125
|
build_mapper_factory(
|
89
126
|
strategies: [
|
90
|
-
build_mapper_strategy(method: :cast,
|
127
|
+
build_mapper_strategy(method: :cast, dto: Hash, always_optional: true),
|
91
128
|
]
|
92
129
|
)
|
93
130
|
}
|
@@ -101,4 +138,32 @@ RSpec.describe ReeMapper::Mapper do
|
|
101
138
|
expect(mapper.cast({})).to eq({})
|
102
139
|
}
|
103
140
|
end
|
141
|
+
|
142
|
+
describe '#dto' do
|
143
|
+
let(:mapper_factory) {
|
144
|
+
build_mapper_factory(
|
145
|
+
strategies: [
|
146
|
+
build_mapper_strategy(method: :cast, dto: Hash, always_optional: true),
|
147
|
+
build_mapper_strategy(method: :serialize, dto: Object),
|
148
|
+
]
|
149
|
+
)
|
150
|
+
}
|
151
|
+
let(:mapper) {
|
152
|
+
mapper_factory.call.use(:cast).use(:serialize, dto: Struct) do
|
153
|
+
integer :my_field
|
154
|
+
end
|
155
|
+
}
|
156
|
+
|
157
|
+
it {
|
158
|
+
expect(mapper.dto(:cast)).to eq(Hash)
|
159
|
+
}
|
160
|
+
|
161
|
+
it {
|
162
|
+
expect(mapper.dto(:serialize)).to be < Struct
|
163
|
+
}
|
164
|
+
|
165
|
+
it {
|
166
|
+
expect { mapper.dto(:db_dump) }.to raise_error(ArgumentError, "there is no :db_dump strategy")
|
167
|
+
}
|
168
|
+
end
|
104
169
|
end
|
@@ -7,10 +7,10 @@ RSpec.describe 'ReeMapper::Array' do
|
|
7
7
|
let(:mapper_factory) {
|
8
8
|
build_mapper_factory(
|
9
9
|
strategies: [
|
10
|
-
build_mapper_strategy(method: :cast,
|
11
|
-
build_mapper_strategy(method: :serialize,
|
12
|
-
build_mapper_strategy(method: :db_dump,
|
13
|
-
build_mapper_strategy(method: :db_load,
|
10
|
+
build_mapper_strategy(method: :cast, dto: Hash),
|
11
|
+
build_mapper_strategy(method: :serialize, dto: Hash),
|
12
|
+
build_mapper_strategy(method: :db_dump, dto: Hash),
|
13
|
+
build_mapper_strategy(method: :db_load, dto: Hash)
|
14
14
|
]
|
15
15
|
)
|
16
16
|
}
|
@@ -135,10 +135,10 @@ RSpec.describe 'ReeMapper::Array' do
|
|
135
135
|
}
|
136
136
|
end
|
137
137
|
|
138
|
-
context 'with array of hashes with
|
138
|
+
context 'with array of hashes with dto option' do
|
139
139
|
let(:mapper) {
|
140
140
|
mapper_factory.call.use(:serialize) {
|
141
|
-
array :coords,
|
141
|
+
array :coords, dto: OpenStruct do
|
142
142
|
integer :x
|
143
143
|
integer :y
|
144
144
|
end
|
@@ -146,8 +146,8 @@ RSpec.describe 'ReeMapper::Array' do
|
|
146
146
|
}
|
147
147
|
|
148
148
|
it {
|
149
|
-
expect(mapper.serialize({ coords: [{ x: 1, y: 1 }
|
150
|
-
.to eq({ coords: [{
|
149
|
+
expect(mapper.serialize({ coords: [{ x: 1, y: 1 }] }))
|
150
|
+
.to eq({ coords: [OpenStruct.new({ x: 1, y: 1 })] })
|
151
151
|
}
|
152
152
|
end
|
153
153
|
end
|
@@ -7,10 +7,10 @@ RSpec.describe 'ReeMapper::Bool' do
|
|
7
7
|
let(:mapper_factory) {
|
8
8
|
build_mapper_factory(
|
9
9
|
strategies: [
|
10
|
-
build_mapper_strategy(method: :cast,
|
11
|
-
build_mapper_strategy(method: :serialize,
|
12
|
-
build_mapper_strategy(method: :db_dump,
|
13
|
-
build_mapper_strategy(method: :db_load,
|
10
|
+
build_mapper_strategy(method: :cast, dto: Hash),
|
11
|
+
build_mapper_strategy(method: :serialize, dto: Hash),
|
12
|
+
build_mapper_strategy(method: :db_dump, dto: Hash),
|
13
|
+
build_mapper_strategy(method: :db_load, dto: Hash)
|
14
14
|
]
|
15
15
|
)
|
16
16
|
}
|
@@ -7,10 +7,10 @@ RSpec.describe 'ReeMapper::Date' do
|
|
7
7
|
let(:mapper_factory) {
|
8
8
|
build_mapper_factory(
|
9
9
|
strategies: [
|
10
|
-
build_mapper_strategy(method: :cast,
|
11
|
-
build_mapper_strategy(method: :serialize,
|
12
|
-
build_mapper_strategy(method: :db_dump,
|
13
|
-
build_mapper_strategy(method: :db_load,
|
10
|
+
build_mapper_strategy(method: :cast, dto: Hash),
|
11
|
+
build_mapper_strategy(method: :serialize, dto: Hash),
|
12
|
+
build_mapper_strategy(method: :db_dump, dto: Hash),
|
13
|
+
build_mapper_strategy(method: :db_load, dto: Hash)
|
14
14
|
]
|
15
15
|
)
|
16
16
|
}
|
@@ -7,10 +7,10 @@ RSpec.describe 'ReeMapper::DateTime' do
|
|
7
7
|
let(:mapper_factory) {
|
8
8
|
build_mapper_factory(
|
9
9
|
strategies: [
|
10
|
-
build_mapper_strategy(method: :cast,
|
11
|
-
build_mapper_strategy(method: :serialize,
|
12
|
-
build_mapper_strategy(method: :db_dump,
|
13
|
-
build_mapper_strategy(method: :db_load,
|
10
|
+
build_mapper_strategy(method: :cast, dto: Hash),
|
11
|
+
build_mapper_strategy(method: :serialize, dto: Hash),
|
12
|
+
build_mapper_strategy(method: :db_dump, dto: Hash),
|
13
|
+
build_mapper_strategy(method: :db_load, dto: Hash)
|
14
14
|
]
|
15
15
|
)
|
16
16
|
}
|
@@ -7,10 +7,10 @@ RSpec.describe 'ReeMapper::Float' do
|
|
7
7
|
let(:mapper_factory) {
|
8
8
|
build_mapper_factory(
|
9
9
|
strategies: [
|
10
|
-
build_mapper_strategy(method: :cast,
|
11
|
-
build_mapper_strategy(method: :serialize,
|
12
|
-
build_mapper_strategy(method: :db_dump,
|
13
|
-
build_mapper_strategy(method: :db_load,
|
10
|
+
build_mapper_strategy(method: :cast, dto: Hash),
|
11
|
+
build_mapper_strategy(method: :serialize, dto: Hash),
|
12
|
+
build_mapper_strategy(method: :db_dump, dto: Hash),
|
13
|
+
build_mapper_strategy(method: :db_load, dto: Hash)
|
14
14
|
]
|
15
15
|
)
|
16
16
|
}
|
@@ -7,7 +7,7 @@ RSpec.describe 'Mapper Hash' do
|
|
7
7
|
let(:mapper_factory) {
|
8
8
|
build_mapper_factory(
|
9
9
|
strategies: [
|
10
|
-
build_mapper_strategy(method: :cast,
|
10
|
+
build_mapper_strategy(method: :cast, dto: Hash)
|
11
11
|
]
|
12
12
|
)
|
13
13
|
}
|
@@ -35,38 +35,16 @@ RSpec.describe 'Mapper Hash' do
|
|
35
35
|
}
|
36
36
|
end
|
37
37
|
|
38
|
-
describe '
|
38
|
+
describe 'dto: option' do
|
39
39
|
it {
|
40
40
|
expect(
|
41
41
|
mapper_factory.call.use(:cast) {
|
42
|
-
hash :point,
|
42
|
+
hash :point, dto: OpenStruct do
|
43
43
|
integer :x
|
44
44
|
integer :y
|
45
45
|
end
|
46
46
|
}.cast({ point: { x: 1, y: 1 } })
|
47
|
-
).to eq({ point: {
|
48
|
-
}
|
49
|
-
|
50
|
-
it {
|
51
|
-
expect(
|
52
|
-
mapper_factory.call.use(:cast) {
|
53
|
-
hash :point, key: :symbol do
|
54
|
-
integer :x
|
55
|
-
integer :y
|
56
|
-
end
|
57
|
-
}.cast({ point: { x: 1, y: 1 } })
|
58
|
-
).to eq({ point: { x: 1, y: 1 } })
|
59
|
-
}
|
60
|
-
|
61
|
-
it {
|
62
|
-
expect {
|
63
|
-
mapper_factory.call.use(:cast) {
|
64
|
-
hash :point, key: :whatever do
|
65
|
-
integer :x
|
66
|
-
integer :y
|
67
|
-
end
|
68
|
-
}
|
69
|
-
}.to raise_error(ArgumentError)
|
47
|
+
).to eq({ point: OpenStruct.new({ x: 1, y: 1 }) })
|
70
48
|
}
|
71
49
|
end
|
72
50
|
|
@@ -74,7 +52,7 @@ RSpec.describe 'Mapper Hash' do
|
|
74
52
|
let(:mapper_factory) {
|
75
53
|
build_mapper_factory(
|
76
54
|
strategies: [
|
77
|
-
build_mapper_strategy(method: :cast,
|
55
|
+
build_mapper_strategy(method: :cast, dto: Object)
|
78
56
|
]
|
79
57
|
)
|
80
58
|
}
|
@@ -7,10 +7,10 @@ RSpec.describe 'ReeMapper::Integer' do
|
|
7
7
|
let(:mapper_factory) {
|
8
8
|
build_mapper_factory(
|
9
9
|
strategies: [
|
10
|
-
build_mapper_strategy(method: :cast,
|
11
|
-
build_mapper_strategy(method: :serialize,
|
12
|
-
build_mapper_strategy(method: :db_dump,
|
13
|
-
build_mapper_strategy(method: :db_load,
|
10
|
+
build_mapper_strategy(method: :cast, dto: Hash),
|
11
|
+
build_mapper_strategy(method: :serialize, dto: Hash),
|
12
|
+
build_mapper_strategy(method: :db_dump, dto: Hash),
|
13
|
+
build_mapper_strategy(method: :db_load, dto: Hash)
|
14
14
|
]
|
15
15
|
)
|
16
16
|
}
|
@@ -7,10 +7,10 @@ RSpec.describe 'ReeMapper::String' do
|
|
7
7
|
let(:mapper_factory) {
|
8
8
|
build_mapper_factory(
|
9
9
|
strategies: [
|
10
|
-
build_mapper_strategy(method: :cast,
|
11
|
-
build_mapper_strategy(method: :serialize,
|
12
|
-
build_mapper_strategy(method: :db_dump,
|
13
|
-
build_mapper_strategy(method: :db_load,
|
10
|
+
build_mapper_strategy(method: :cast, dto: Hash),
|
11
|
+
build_mapper_strategy(method: :serialize, dto: Hash),
|
12
|
+
build_mapper_strategy(method: :db_dump, dto: Hash),
|
13
|
+
build_mapper_strategy(method: :db_load, dto: Hash)
|
14
14
|
]
|
15
15
|
)
|
16
16
|
}
|
@@ -7,10 +7,10 @@ RSpec.describe 'ReeMapper::Time' do
|
|
7
7
|
let(:mapper_factory) {
|
8
8
|
build_mapper_factory(
|
9
9
|
strategies: [
|
10
|
-
build_mapper_strategy(method: :cast,
|
11
|
-
build_mapper_strategy(method: :serialize,
|
12
|
-
build_mapper_strategy(method: :db_dump,
|
13
|
-
build_mapper_strategy(method: :db_load,
|
10
|
+
build_mapper_strategy(method: :cast, dto: Hash),
|
11
|
+
build_mapper_strategy(method: :serialize, dto: Hash),
|
12
|
+
build_mapper_strategy(method: :db_dump, dto: Hash),
|
13
|
+
build_mapper_strategy(method: :db_load, dto: Hash)
|
14
14
|
]
|
15
15
|
)
|
16
16
|
}
|
@@ -7,10 +7,10 @@ RSpec.describe 'ReeMapper::MapperFactory type options' do
|
|
7
7
|
let(:mapper_factory) {
|
8
8
|
build_mapper_factory(
|
9
9
|
strategies: [
|
10
|
-
build_mapper_strategy(method: :cast,
|
11
|
-
build_mapper_strategy(method: :serialize,
|
12
|
-
build_mapper_strategy(method: :db_dump,
|
13
|
-
build_mapper_strategy(method: :db_load,
|
10
|
+
build_mapper_strategy(method: :cast, dto: Hash),
|
11
|
+
build_mapper_strategy(method: :serialize, dto: Hash),
|
12
|
+
build_mapper_strategy(method: :db_dump, dto: Hash),
|
13
|
+
build_mapper_strategy(method: :db_load, dto: Hash)
|
14
14
|
]
|
15
15
|
)
|
16
16
|
}
|
@@ -13,8 +13,8 @@ RSpec.describe :build_endpoint_schema do
|
|
13
13
|
|
14
14
|
let(:mapper_factory) {
|
15
15
|
strategies = [
|
16
|
-
build_mapper_strategy(method: :serialize,
|
17
|
-
build_mapper_strategy(method: :cast,
|
16
|
+
build_mapper_strategy(method: :serialize, dto: Hash),
|
17
|
+
build_mapper_strategy(method: :cast, dto: Hash),
|
18
18
|
]
|
19
19
|
|
20
20
|
build_mapper_factory(
|
@@ -1,11 +1,11 @@
|
|
1
1
|
RSpec.describe :build_parameters_spec do
|
2
|
-
link :build_parameters, from: :ree_swagger
|
3
2
|
link :build_mapper_factory, from: :ree_mapper
|
4
3
|
link :build_mapper_strategy, from: :ree_mapper
|
4
|
+
link :build_parameters, from: :ree_swagger
|
5
5
|
|
6
6
|
let(:mapper_factory) {
|
7
7
|
strategies = [
|
8
|
-
build_mapper_strategy(method: :cast,
|
8
|
+
build_mapper_strategy(method: :cast, dto: Hash),
|
9
9
|
]
|
10
10
|
|
11
11
|
build_mapper_factory(
|
@@ -1,11 +1,11 @@
|
|
1
1
|
RSpec.describe :build_request_body_schema_spec do
|
2
|
-
link :build_request_body_schema, from: :ree_swagger
|
3
2
|
link :build_mapper_factory, from: :ree_mapper
|
4
3
|
link :build_mapper_strategy, from: :ree_mapper
|
4
|
+
link :build_request_body_schema, from: :ree_swagger
|
5
5
|
|
6
6
|
let(:mapper_factory) {
|
7
7
|
strategies = [
|
8
|
-
build_mapper_strategy(method: :cast,
|
8
|
+
build_mapper_strategy(method: :cast, dto: Hash),
|
9
9
|
]
|
10
10
|
|
11
11
|
build_mapper_factory(
|
@@ -1,12 +1,12 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
RSpec.describe :build_serializer_schema do
|
3
|
-
link :build_serializer_schema, from: :ree_swagger
|
4
3
|
link :build_mapper_factory, from: :ree_mapper
|
5
4
|
link :build_mapper_strategy, from: :ree_mapper
|
5
|
+
link :build_serializer_schema, from: :ree_swagger
|
6
6
|
|
7
7
|
let(:mapper_factory) {
|
8
8
|
strategies = [
|
9
|
-
build_mapper_strategy(method: :serialize,
|
9
|
+
build_mapper_strategy(method: :serialize, dto: Hash),
|
10
10
|
]
|
11
11
|
|
12
12
|
build_mapper_factory(
|
@@ -1,8 +1,8 @@
|
|
1
1
|
RSpec.describe :register_type do
|
2
|
-
link :register_type, from: :ree_swagger
|
3
|
-
link :build_serializer_schema, from: :ree_swagger
|
4
2
|
link :build_mapper_factory, from: :ree_mapper
|
5
3
|
link :build_mapper_strategy, from: :ree_mapper
|
4
|
+
link :build_serializer_schema, from: :ree_swagger
|
5
|
+
link :register_type, from: :ree_swagger
|
6
6
|
|
7
7
|
class ReeSwagger::MyType < ReeMapper::AbstractType
|
8
8
|
def serialize(obj, role: nil)
|
@@ -12,7 +12,7 @@ RSpec.describe :register_type do
|
|
12
12
|
|
13
13
|
let(:mapper_factory) {
|
14
14
|
strategies = [
|
15
|
-
build_mapper_strategy(method: :serialize,
|
15
|
+
build_mapper_strategy(method: :serialize, dto: Hash),
|
16
16
|
]
|
17
17
|
|
18
18
|
build_mapper_factory(strategies: strategies).register(
|
data/lib/ree_lib/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ree_lib
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.31
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ruslan Gatiyatov
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-02-
|
11
|
+
date: 2023-02-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ree
|
@@ -921,10 +921,10 @@ files:
|
|
921
921
|
- lib/ree_lib/packages/ree_mapper/package/ree_mapper/mapper_factory.rb
|
922
922
|
- lib/ree_lib/packages/ree_mapper/package/ree_mapper/mapper_factory_proxy.rb
|
923
923
|
- lib/ree_lib/packages/ree_mapper/package/ree_mapper/mapper_strategy.rb
|
924
|
+
- lib/ree_lib/packages/ree_mapper/package/ree_mapper/strategy_outputs/hash_output.rb
|
924
925
|
- lib/ree_lib/packages/ree_mapper/package/ree_mapper/strategy_outputs/object_output.rb
|
925
926
|
- lib/ree_lib/packages/ree_mapper/package/ree_mapper/strategy_outputs/strategy_output.rb
|
926
|
-
- lib/ree_lib/packages/ree_mapper/package/ree_mapper/strategy_outputs/
|
927
|
-
- lib/ree_lib/packages/ree_mapper/package/ree_mapper/strategy_outputs/symbol_key_hash_output.rb
|
927
|
+
- lib/ree_lib/packages/ree_mapper/package/ree_mapper/strategy_outputs/struct_output.rb
|
928
928
|
- lib/ree_lib/packages/ree_mapper/package/ree_mapper/types/abstract_type.rb
|
929
929
|
- lib/ree_lib/packages/ree_mapper/package/ree_mapper/types/array.rb
|
930
930
|
- lib/ree_lib/packages/ree_mapper/package/ree_mapper/types/bool.rb
|
data/lib/ree_lib/packages/ree_mapper/package/ree_mapper/strategy_outputs/string_key_hash_output.rb
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
class ReeMapper::StringKeyHashOutput < ReeMapper::StrategyOutput
|
4
|
-
contract(Hash)
|
5
|
-
def build_object
|
6
|
-
Hash.new
|
7
|
-
end
|
8
|
-
|
9
|
-
contract(Object, ReeMapper::Field, Any => nil)
|
10
|
-
def assign_value(object, field, value)
|
11
|
-
object[field.name_as_str] = value
|
12
|
-
nil
|
13
|
-
end
|
14
|
-
end
|