immutabler 0.2.6 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6aa7996e400b82ef598a2d8db5661b55001accde
4
- data.tar.gz: 7d7bb998f7e13c5328aa08c5ff74f7c4d60915de
3
+ metadata.gz: 6efd29613b37bd063481ee957519b7a55fca3102
4
+ data.tar.gz: fafe01bc2de0c9e32d2fcd540a10675d144c7fc3
5
5
  SHA512:
6
- metadata.gz: db79646d8ad25518ac6391aad63aac1c79740c57c291bc9df6586405f0686b8c5e56241124f2317cc3641eb431494bf84b58ea359e598e271d9cb015f92f7866
7
- data.tar.gz: fcdeec34297e87cd0fbd124974e5b66216ec05187a556b2f5f1b8db8662cb83902ca8b9eb1c620a209e917f139a1ec00b04bf66fa36ff8dea8b54fa3808475d7
6
+ metadata.gz: 69c1109152fae2905d062d3669eda0cc2879ee5d91f3a3495bdfc6ed34bc2801e4d2031e83c79ea9624da5cb9693d3948de6c6bff9aec04fb4c4c4a4a5c0fdc4
7
+ data.tar.gz: 42950c0b7077fbf0fd589c1c70cd66da87d5df92d06d02f7c48d6e1f224cc0affaefaca236257c8be50d452fc09c464202cef9a9427044f852a27df9e4b73f60
@@ -122,48 +122,6 @@ Example:
122
122
  end
123
123
  ```
124
124
 
125
- ## Mappings
126
-
127
- All mappings are describing in `mapping` block
128
- ```ruby
129
- mapping do
130
-
131
- end
132
- ```
133
-
134
- ### Simple mapping
135
-
136
- Simple mappings are describing wih `map`:
137
-
138
- ```ruby
139
- map :json_field_name, :classFieldName
140
- ```
141
-
142
- You can specify custom transformer class using `with` option:
143
-
144
- ```ruby
145
- map :phone, :phoneNumber, with: :CustomPhoneTransformer
146
- ```
147
-
148
- ### Array mapping
149
-
150
- You can describe mapping array of records using `array`:
151
-
152
- ```ruby
153
- array :json_field_name, :classFieldName, :ClassName
154
- ```
155
-
156
- ### Dict mapping
157
-
158
- You can describe mapping json field to custom value (e.g. into enum) with `dict`:
159
-
160
- ```ruby
161
- dict :json_state, :modelState do
162
- map :active, :TEServiceStateActive
163
- map :archived, :TEServiceStateArchived
164
- end
165
- ```
166
-
167
125
  # Full example
168
126
  ```ruby
169
127
  require 'immutabler'
@@ -174,7 +132,9 @@ Immutabler.group :TESalonModels do
174
132
 
175
133
  output_dir(gen_path)
176
134
  prefix('TE')
177
- base_model('MTLModel<MTLJSONSerializing>') # Default base model for group
135
+ link_to :TEState # #import "TEState.h"
136
+ module_link_to :Mantle, :MTLModel # #import <Mantle/MTLModel.h>
137
+ base_model('MTLModel') # Default base model for group
178
138
 
179
139
  enum :ServiceState do
180
140
  attr :Archived
@@ -192,16 +152,6 @@ Immutabler.group :TESalonModels do
192
152
  prop :workingDays, :dict
193
153
  prop :state, :TEState, ref: :weak, prefix: '*'
194
154
  end
195
-
196
- mapping do
197
- map :id, :modelId
198
- map :phone, :phone, with: :CustomPhoneTransformer
199
- array :walk_ins, :walkIns, :TEWalkIn
200
- dict :state, :state do
201
- map :active, :TEServiceStateActive
202
- map :archived, :TEServiceStateArchived
203
- end
204
- end
205
155
  end
206
156
  ```
207
157
 
@@ -6,8 +6,8 @@ require 'immutabler/version'
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = 'immutabler'
8
8
  spec.version = Immutabler::VERSION
9
- spec.authors = ['Serhij Korochanskyj', 'Sergey Zenchenko', 'Petro Korienev']
10
- spec.email = ['serge.k@techery.io', 'serge.z@techery.io', 'soxjke@gmail.com']
9
+ spec.authors = ['Serhij Korochanskyj', 'Sergey Zenchenko', 'Petro Korienev', 'Alexey Faizullov']
10
+ spec.email = ['serge.k@techery.io', 'serge.z@techery.io', 'soxjke@gmail.com', 'alex.fuzza@gmail.com']
11
11
 
12
12
  spec.summary = 'Generator of Objective-C immutable models'
13
13
  spec.description = 'Generator of Objective-C immutable models'
@@ -2,11 +2,12 @@ require_relative 'enum'
2
2
  require_relative 'model'
3
3
  require_relative 'model_attributes_builder'
4
4
  require_relative 'enum_attributes_builder'
5
+ require_relative 'module_import'
5
6
 
6
7
  module Immutabler
7
8
  module DSL
8
9
  class Group
9
- attr_accessor :name, :models, :enums, :prefix, :links, :output_directory
10
+ attr_accessor :name, :models, :enums, :prefix, :links, :module_links, :output_directory
10
11
 
11
12
  def initialize(name)
12
13
  @prefix = ''
@@ -15,6 +16,7 @@ module Immutabler
15
16
  @models = []
16
17
  @enums = []
17
18
  @links = []
19
+ @module_links = []
18
20
  end
19
21
 
20
22
  def prefix(prefix)
@@ -25,6 +27,10 @@ module Immutabler
25
27
  links << model_group_name
26
28
  end
27
29
 
30
+ def module_link_to(module_name, file_name)
31
+ module_links << ModuleImport.new(module_name, file_name)
32
+ end
33
+
28
34
  def output_dir(dir)
29
35
  self.output_directory = dir
30
36
  end
@@ -46,10 +52,9 @@ module Immutabler
46
52
  base_immutable = options.fetch(:base_immutable, false)
47
53
  builder_base = options.fetch(:builder_base, base).to_s
48
54
  props = []
49
- mappings = []
50
- ModelAttributesBuilder.new(props, mappings, &block)
55
+ ModelAttributesBuilder.new(props, &block)
51
56
 
52
- model = Model.new(prefix, base, base_immutable, builder_base, props, mappings)
57
+ model = Model.new(prefix, base, base_immutable, builder_base, props)
53
58
 
54
59
  models << model
55
60
  end
@@ -59,7 +64,8 @@ module Immutabler
59
64
  name: name,
60
65
  models: models,
61
66
  links: links,
62
- enums: enums
67
+ module_links: module_links,
68
+ enums: enums,
63
69
  }
64
70
  end
65
71
  end
@@ -1,15 +1,14 @@
1
1
  module Immutabler
2
2
  module DSL
3
3
  class Model
4
- attr_accessor :name, :base, :base_immutable, :builder_base, :props, :mappings
4
+ attr_accessor :name, :base, :base_immutable, :builder_base, :props
5
5
 
6
- def initialize(name, base, base_immutable, builder_base, props, mappings)
6
+ def initialize(name, base, base_immutable, builder_base, props)
7
7
  @name = name
8
8
  @base = base
9
9
  @base_immutable = base_immutable
10
10
  @builder_base = builder_base
11
11
  @props = props
12
- @mappings = mappings
13
12
  end
14
13
  end
15
14
  end
@@ -1,22 +1,16 @@
1
1
  require_relative 'props_builder'
2
- require_relative 'mappings_builder'
3
2
 
4
3
  module Immutabler
5
4
  module DSL
6
5
  class ModelAttributesBuilder
7
- def initialize(props, mappings, &block)
6
+ def initialize(props, &block)
8
7
  @props = props
9
- @mappings = mappings
10
8
  instance_eval(&block)
11
9
  end
12
10
 
13
11
  def fields(&block)
14
12
  PropsBuilder.new(@props, &block)
15
13
  end
16
-
17
- def mapping(&block)
18
- MappingsBuilder.new(@mappings, &block)
19
- end
20
14
  end
21
15
  end
22
16
  end
@@ -0,0 +1,12 @@
1
+ module Immutabler
2
+ module DSL
3
+ class ModuleImport
4
+ attr_accessor :module_name, :class_name
5
+
6
+ def initialize(module_name, class_name)
7
+ @module_name = module_name
8
+ @class_name = class_name
9
+ end
10
+ end
11
+ end
12
+ end
@@ -10,26 +10,6 @@ module Immutabler
10
10
  self.name = name
11
11
  self.models = models
12
12
 
13
- helper(:dict) do |context, arg, block|
14
- body = "@{\n"
15
-
16
- if arg
17
- body << arg.map { |m| "@\"#{m.destination_name}\" : @\"#{m.origin_name}\"" }.join(",\n")
18
- end
19
-
20
- body << "\n};"
21
- end
22
-
23
- helper(:enum_mapping_dict) do |context, arg, block|
24
- body = "@{\n"
25
-
26
- if arg
27
- body << arg.map { |m| "@\"#{m.origin_name}\" : @(#{m.destination_name})" }.join(",\n")
28
- end
29
-
30
- body << "\n};"
31
- end
32
-
33
13
  helper(:init_with_builder) do |context, arg, block|
34
14
  if arg[:base_immutable]
35
15
  " self = [super initWithBuilder:builder modelVersion:modelVersion];\n"
@@ -57,7 +37,7 @@ module Immutabler
57
37
  when 'double'
58
38
  decode_template(arg.name, 'Double')
59
39
  else
60
- if !arg.is_ref
40
+ if !arg.is_ref
61
41
  decode_int(arg.name)
62
42
  else
63
43
  decode_template(arg.name, 'Object')
@@ -76,7 +56,7 @@ module Immutabler
76
56
  when 'double'
77
57
  encode_template(arg.name, 'Double')
78
58
  else
79
- if !arg.is_ref
59
+ if !arg.is_ref
80
60
  encode_int(arg.name)
81
61
  else
82
62
  encode_template(arg.name, 'Object')
@@ -129,4 +109,4 @@ module Immutabler
129
109
  end
130
110
  end
131
111
  end
132
- end
112
+ end
@@ -24,20 +24,16 @@ module Immutabler
24
24
  base_immutable: model.base_immutable,
25
25
  builder_base_class: model.builder_base,
26
26
  props: build_props(model.props),
27
- any_mappings: model.mappings.any?,
28
- array_mappings: model.mappings.select(&:array?),
29
- dict_mappings: build_dict_mappings(model.mappings),
30
- custom_mappers: build_custom_mappers(model.mappings),
31
- mappings: build_mappings(model.mappings)
32
27
  }
33
28
  end
34
29
 
35
30
  links = defs[:links]
31
+ module_links = defs[:module_links]
36
32
  enums = defs[:enums]
37
33
 
38
34
  FileUtils.mkdir_p(group.output_directory)
39
35
 
40
- build_head(group_name, models, links, enums)
36
+ build_head(group_name, models, links, module_links, enums)
41
37
  build_body(group_name, models)
42
38
  end
43
39
 
@@ -49,40 +45,6 @@ module Immutabler
49
45
  end
50
46
  end
51
47
 
52
- def build_dict_mappings(mappings)
53
- mappings.select(&:dict?).map do |mapping|
54
- attributes = mapping.dict_mappings.map do |dict_mapping|
55
- {
56
- origin_name: dict_mapping[:origin_name],
57
- destination_name: dict_mapping[:destination_name]
58
- }
59
- end
60
-
61
- {
62
- name: mapping.destination_name,
63
- attributes: attributes
64
- }
65
- end
66
- end
67
-
68
- def build_mappings(mappings)
69
- mappings.map do |mapping|
70
- {
71
- origin_name: mapping.origin_name,
72
- destination_name: mapping.destination_name
73
- }
74
- end
75
- end
76
-
77
- def build_custom_mappers(mappings)
78
- mappings.select(&:custom?).map do |mapping|
79
- {
80
- origin_name: mapping.origin_name,
81
- transformer_name: mapping.custom_transformer
82
- }
83
- end
84
- end
85
-
86
48
  def build_body(group_name, models)
87
49
  body_template = Immutabler::Template::BodyTemplate.new(group_name, models)
88
50
  body_content = body_template.render
@@ -90,8 +52,8 @@ module Immutabler
90
52
  File.write(body_path, body_content)
91
53
  end
92
54
 
93
- def build_head(group_name, models, links, enums)
94
- header_template = Immutabler::Template::HeaderTemplate.new(models, links, enums)
55
+ def build_head(group_name, models, links, module_links, enums)
56
+ header_template = Immutabler::Template::HeaderTemplate.new(models, links, module_links, enums)
95
57
  header_content = header_template.render
96
58
  header_path = "#{group.output_directory}/#{group_name}.h"
97
59
  File.write(header_path, header_content)
@@ -3,11 +3,12 @@ require_relative 'template'
3
3
  module Immutabler
4
4
  module Template
5
5
  class HeaderTemplate < BaseTemplate
6
- attr_accessor :models, :links, :enums
6
+ attr_accessor :models, :links, :module_links, :enums
7
7
 
8
- def initialize(models, links, enums)
8
+ def initialize(models, links, module_links, enums)
9
9
  self.template_file = File.expand_path("#{__dir__}/../../../templates/header_template.hbs")
10
10
  self.links = links
11
+ self.module_links = build_module_imports(module_links)
11
12
  self.models = models
12
13
  self.enums = build_enums(enums)
13
14
 
@@ -41,6 +42,21 @@ module Immutabler
41
42
  "} #{arg[:name]};",
42
43
  ].join("\n")
43
44
  end
45
+
46
+ helper(:module_import) do |context, arg, block|
47
+ [
48
+ "#import <#{arg[:module_name]}/#{arg[:class_name]}.h>\n"
49
+ ].join("\n")
50
+ end
51
+ end
52
+
53
+ def build_module_imports(module_links)
54
+ module_links.map do |module_link|
55
+ dict_mapping = {
56
+ module_name: module_link.module_name,
57
+ class_name: module_link.class_name,
58
+ }
59
+ end
44
60
  end
45
61
 
46
62
  def build_enums(enums)
@@ -55,7 +71,7 @@ module Immutabler
55
71
  end
56
72
 
57
73
  def render
58
- template.call(models: models, links: links, enums: enums)
74
+ template.call(models: models, links: links, module_links:module_links, enums: enums)
59
75
  end
60
76
  end
61
77
  end
@@ -1,3 +1,3 @@
1
1
  module Immutabler
2
- VERSION = '0.2.6'
2
+ VERSION = '0.3.0'
3
3
  end
@@ -13,35 +13,6 @@
13
13
  NSInteger __modelVersion;
14
14
  }
15
15
 
16
- {{#any_mappings}}
17
- + (NSDictionary *)JSONKeyPathsByPropertyKey {
18
- return {{#dict mappings}}{{/dict}}
19
- }
20
- {{/any_mappings}}
21
-
22
- {{#custom_mappers}}
23
- + (NSValueTransformer *){{origin_name}}JSONTransformer {
24
- return [ [{{transformer_name}} alloc] init];
25
- }
26
- {{/custom_mappers}}
27
-
28
- {{#array_mappings}}
29
- + (NSValueTransformer *){{destination_name}}JSONTransformer {
30
- return [MTLJSONAdapter arrayTransformerWithModelClass:[{{type}} class]];
31
- }
32
- {{/array_mappings}}
33
-
34
- {{#dict_mappings}}
35
- + (NSValueTransformer *){{name}}JSONTransformer {
36
- NSDictionary *dict = {{#enum_mapping_dict attributes}}{{/enum_mapping_dict}}
37
- return [MTLValueTransformer transformerUsingForwardBlock:^NSNumber *(NSString *string, BOOL *success, NSError *__autoreleasing *error) {
38
- return dict[string];
39
- } reverseBlock:^NSString *(NSNumber *number, BOOL *success, NSError *__autoreleasing *error) {
40
- return [dict allKeysForObject:number].firstObject;
41
- }];
42
- }
43
- {{/dict_mappings}}
44
-
45
16
  + ({{name}}*)create:(void(^)({{name}}Builder *builder))builderBlock
46
17
  {
47
18
  {{name}}Builder *builder = [{{name}}Builder new];
@@ -139,7 +110,7 @@
139
110
  {{#init_with_coder .}}
140
111
  {{/init_with_coder}}
141
112
  if (self) {
142
- {{#props}}
113
+ {{#props}}
143
114
  {{#decodeProperty this}}{{/decodeProperty}}
144
115
  {{/props}}
145
116
  __modelVersion = [coder decodeIntegerForKey:@"__modelVersion"];
@@ -149,7 +120,7 @@
149
120
  }
150
121
 
151
122
  - (void)encodeWithCoder:(NSCoder *)coder {
152
- {{#props}}
123
+ {{#props}}
153
124
  {{#encodeProperty this}}{{/encodeProperty}}
154
125
  {{/props}}
155
126
  [coder encodeInteger:__modelVersion forKey:@"__modelVersion"];
@@ -172,11 +143,6 @@
172
143
  @end
173
144
 
174
145
  @implementation {{name}}Builder
175
-
176
- + (NSDictionary *)JSONKeyPathsByPropertyKey {
177
- return @{};
178
- }
179
-
180
146
  @end
181
147
 
182
148
  {{/models}}
@@ -1,6 +1,8 @@
1
1
  #import <Foundation/Foundation.h>
2
- #import <Mantle/Mantle.h>
3
-
2
+ {{#module_links}}
3
+ {{#module_import .}}
4
+ {{/module_import}}
5
+ {{/module_links}}
4
6
  {{#links}}
5
7
  #import "{{.}}.h"
6
8
  {{/links}}
metadata CHANGED
@@ -1,71 +1,72 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: immutabler
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.6
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Serhij Korochanskyj
8
8
  - Sergey Zenchenko
9
9
  - Petro Korienev
10
+ - Alexey Faizullov
10
11
  autorequire:
11
12
  bindir: exe
12
13
  cert_chain: []
13
- date: 2016-09-01 00:00:00.000000000 Z
14
+ date: 2016-11-14 00:00:00.000000000 Z
14
15
  dependencies:
15
16
  - !ruby/object:Gem::Dependency
16
17
  name: handlebars
17
18
  requirement: !ruby/object:Gem::Requirement
18
19
  requirements:
19
- - - ~>
20
+ - - "~>"
20
21
  - !ruby/object:Gem::Version
21
22
  version: '0.7'
22
23
  type: :runtime
23
24
  prerelease: false
24
25
  version_requirements: !ruby/object:Gem::Requirement
25
26
  requirements:
26
- - - ~>
27
+ - - "~>"
27
28
  - !ruby/object:Gem::Version
28
29
  version: '0.7'
29
30
  - !ruby/object:Gem::Dependency
30
31
  name: bundler
31
32
  requirement: !ruby/object:Gem::Requirement
32
33
  requirements:
33
- - - ~>
34
+ - - "~>"
34
35
  - !ruby/object:Gem::Version
35
36
  version: '1.10'
36
37
  type: :development
37
38
  prerelease: false
38
39
  version_requirements: !ruby/object:Gem::Requirement
39
40
  requirements:
40
- - - ~>
41
+ - - "~>"
41
42
  - !ruby/object:Gem::Version
42
43
  version: '1.10'
43
44
  - !ruby/object:Gem::Dependency
44
45
  name: rake
45
46
  requirement: !ruby/object:Gem::Requirement
46
47
  requirements:
47
- - - ~>
48
+ - - "~>"
48
49
  - !ruby/object:Gem::Version
49
50
  version: '10.0'
50
51
  type: :development
51
52
  prerelease: false
52
53
  version_requirements: !ruby/object:Gem::Requirement
53
54
  requirements:
54
- - - ~>
55
+ - - "~>"
55
56
  - !ruby/object:Gem::Version
56
57
  version: '10.0'
57
58
  - !ruby/object:Gem::Dependency
58
59
  name: rspec
59
60
  requirement: !ruby/object:Gem::Requirement
60
61
  requirements:
61
- - - '>='
62
+ - - ">="
62
63
  - !ruby/object:Gem::Version
63
64
  version: '0'
64
65
  type: :development
65
66
  prerelease: false
66
67
  version_requirements: !ruby/object:Gem::Requirement
67
68
  requirements:
68
- - - '>='
69
+ - - ">="
69
70
  - !ruby/object:Gem::Version
70
71
  version: '0'
71
72
  description: Generator of Objective-C immutable models
@@ -73,13 +74,14 @@ email:
73
74
  - serge.k@techery.io
74
75
  - serge.z@techery.io
75
76
  - soxjke@gmail.com
77
+ - alex.fuzza@gmail.com
76
78
  executables: []
77
79
  extensions: []
78
80
  extra_rdoc_files: []
79
81
  files:
80
- - .gitignore
81
- - .rspec
82
- - .travis.yml
82
+ - ".gitignore"
83
+ - ".rspec"
84
+ - ".travis.yml"
83
85
  - GETTING_STARTED.md
84
86
  - Gemfile
85
87
  - LICENSE.txt
@@ -90,15 +92,13 @@ files:
90
92
  - immutabler.gemspec
91
93
  - lib/immutabler.rb
92
94
  - lib/immutabler/core.rb
93
- - lib/immutabler/dsl/dict_mappings_builder.rb
94
95
  - lib/immutabler/dsl/enum.rb
95
96
  - lib/immutabler/dsl/enum_attribute.rb
96
97
  - lib/immutabler/dsl/enum_attributes_builder.rb
97
98
  - lib/immutabler/dsl/group.rb
98
- - lib/immutabler/dsl/mapping.rb
99
- - lib/immutabler/dsl/mappings_builder.rb
100
99
  - lib/immutabler/dsl/model.rb
101
100
  - lib/immutabler/dsl/model_attributes_builder.rb
101
+ - lib/immutabler/dsl/module_import.rb
102
102
  - lib/immutabler/dsl/prop.rb
103
103
  - lib/immutabler/dsl/props_builder.rb
104
104
  - lib/immutabler/template/body_template.rb
@@ -119,17 +119,17 @@ require_paths:
119
119
  - lib
120
120
  required_ruby_version: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - '>='
122
+ - - ">="
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
125
  required_rubygems_version: !ruby/object:Gem::Requirement
126
126
  requirements:
127
- - - '>='
127
+ - - ">="
128
128
  - !ruby/object:Gem::Version
129
129
  version: '0'
130
130
  requirements: []
131
131
  rubyforge_project:
132
- rubygems_version: 2.0.14.1
132
+ rubygems_version: 2.5.1
133
133
  signing_key:
134
134
  specification_version: 4
135
135
  summary: Generator of Objective-C immutable models
@@ -1,19 +0,0 @@
1
- module Immutabler
2
- module DSL
3
- class DictMappingsBuilder
4
- def initialize(dict_mappings, &block)
5
- @dict_mappings = dict_mappings
6
- instance_eval(&block)
7
- end
8
-
9
- def map(origin_name, destination_name)
10
- dict_mapping =
11
- {
12
- origin_name: origin_name.to_s,
13
- destination_name: destination_name.to_s
14
- }
15
- @dict_mappings << dict_mapping
16
- end
17
- end
18
- end
19
- end
@@ -1,29 +0,0 @@
1
- module Immutabler
2
- module DSL
3
- class Mapping
4
- attr_accessor :origin_name, :destination_name, :type, :dict_mappings, :custom_transformer
5
-
6
- def initialize(origin_name, destination_name, options = {})
7
- @origin_name = origin_name
8
- @destination_name = destination_name
9
- @type = options[:type]
10
- @is_array = options.fetch(:array, false)
11
- @is_dict = options.fetch(:dict, false)
12
- @custom_transformer = options[:with]
13
- @dict_mappings = []
14
- end
15
-
16
- def array?
17
- @is_array
18
- end
19
-
20
- def dict?
21
- @is_dict
22
- end
23
-
24
- def custom?
25
- !custom_transformer.nil?
26
- end
27
- end
28
- end
29
- end
@@ -1,31 +0,0 @@
1
- require_relative 'mapping'
2
- require_relative 'dict_mappings_builder'
3
-
4
- module Immutabler
5
- module DSL
6
- class MappingsBuilder
7
- def initialize(mappings, &block)
8
- @mappings = mappings
9
- instance_eval(&block)
10
- end
11
-
12
- def map(origin_name, destination_name, options = {})
13
- @mappings << Mapping.new(origin_name.to_s, destination_name.to_s, options)
14
- end
15
-
16
- def array(origin_name, destination_name, type)
17
- options = {
18
- type: type.to_s,
19
- array: true
20
- }
21
- @mappings << Mapping.new(origin_name.to_s, destination_name.to_s, options)
22
- end
23
-
24
- def dict(origin_name, destination_name, &block)
25
- mapping = Mapping.new(origin_name.to_s, destination_name.to_s, dict: true)
26
- DictMappingsBuilder.new(mapping.dict_mappings, &block)
27
- @mappings << mapping
28
- end
29
- end
30
- end
31
- end