datamappify 0.10.1 → 0.20.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 +4 -4
- data/.rspec +1 -0
- data/.travis.yml +2 -0
- data/CHANGELOG.md +11 -0
- data/README.md +55 -29
- data/datamappify.gemspec +4 -4
- data/lib/datamappify/data/errors.rb +3 -0
- data/lib/datamappify/data/provider/active_record/persistence.rb +31 -0
- data/lib/datamappify/data/provider/active_record.rb +16 -0
- data/lib/datamappify/data/provider/common/persistence.rb +57 -0
- data/lib/datamappify/data/provider/common/relational/persistence.rb +85 -0
- data/lib/datamappify/data/provider/common/relational/record/mapper.rb +24 -0
- data/lib/datamappify/data/provider/common/relational/record/writer.rb +67 -0
- data/lib/datamappify/data/provider/sequel/persistence.rb +31 -0
- data/lib/datamappify/data/provider/sequel.rb +18 -0
- data/lib/datamappify/data.rb +0 -1
- data/lib/datamappify/repository/attribute_source_data_class_builder.rb +16 -11
- data/lib/datamappify/repository/attributes_mapper.rb +17 -13
- data/lib/datamappify/repository/dsl.rb +9 -0
- data/lib/datamappify/repository/mapping_hash.rb +8 -0
- data/lib/datamappify/repository.rb +96 -4
- data/lib/datamappify/util.rb +13 -0
- data/lib/datamappify/version.rb +1 -1
- data/spec/entity_spec.rb +9 -8
- data/spec/repository/persistence_spec.rb +156 -56
- data/spec/repository_spec.rb +10 -33
- data/spec/spec_helper.rb +14 -8
- data/spec/support/entities/hero_user.rb +11 -0
- data/spec/support/entities/user.rb +5 -5
- data/spec/support/repositories/active_record/comment_repository.rb +6 -0
- data/spec/support/repositories/active_record/group_repository.rb +6 -0
- data/spec/support/repositories/active_record/role_repository.rb +6 -0
- data/spec/support/repositories/active_record/user_repository.rb +11 -0
- data/spec/support/repositories/hero_user_repository.rb +9 -0
- data/spec/support/repositories/sequel/comment_repository.rb +6 -0
- data/spec/support/repositories/sequel/group_repository.rb +6 -0
- data/spec/support/repositories/sequel/role_repository.rb +6 -0
- data/spec/support/repositories/sequel/user_repository.rb +11 -0
- data/spec/support/{active_record_tables.rb → tables/active_record.rb} +15 -9
- data/spec/support/tables/sequel.rb +76 -0
- metadata +64 -41
- data/lib/datamappify/data/base.rb +0 -7
- data/lib/datamappify/repository/persistence.rb +0 -137
- data/spec/support/repositories/comment_repository.rb +0 -7
- data/spec/support/repositories/group_repository.rb +0 -7
- data/spec/support/repositories/role_repository.rb +0 -7
- data/spec/support/repositories/user_repository.rb +0 -11
@@ -5,17 +5,15 @@ ActiveRecord::Migration.suppress_messages do
|
|
5
5
|
)
|
6
6
|
|
7
7
|
ActiveRecord::Schema.define(:version => 0) do
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
rescue
|
8
|
+
create_table :hero_users do |t|
|
9
|
+
t.string :first_name, :null => false
|
10
|
+
t.string :nickname
|
11
|
+
t.timestamps
|
13
12
|
end
|
14
13
|
|
15
14
|
create_table :users do |t|
|
16
15
|
t.string :first_name, :null => false
|
17
|
-
t.string :
|
18
|
-
t.string :sex, :null => false
|
16
|
+
t.string :surname
|
19
17
|
t.integer :age
|
20
18
|
t.references :role
|
21
19
|
t.timestamps
|
@@ -42,17 +40,25 @@ ActiveRecord::Migration.suppress_messages do
|
|
42
40
|
t.belongs_to :group
|
43
41
|
end
|
44
42
|
|
45
|
-
create_table :
|
43
|
+
create_table :user_driver_licenses do |t|
|
46
44
|
t.string :number
|
45
|
+
t.string :expiry
|
47
46
|
t.belongs_to :user
|
48
47
|
t.timestamps
|
49
48
|
end
|
50
49
|
|
51
|
-
create_table :
|
50
|
+
create_table :user_passports do |t|
|
52
51
|
t.string :number
|
53
52
|
t.string :expiry, :null => false
|
54
53
|
t.belongs_to :user
|
55
54
|
t.timestamps
|
56
55
|
end
|
56
|
+
|
57
|
+
create_table :user_health_cares do |t|
|
58
|
+
t.string :number
|
59
|
+
t.string :expiry
|
60
|
+
t.belongs_to :user
|
61
|
+
t.timestamps
|
62
|
+
end
|
57
63
|
end
|
58
64
|
end
|
@@ -0,0 +1,76 @@
|
|
1
|
+
require 'sequel'
|
2
|
+
|
3
|
+
DB = Sequel.sqlite
|
4
|
+
|
5
|
+
DB.create_table :hero_user_last_names do
|
6
|
+
primary_key :id
|
7
|
+
String :last_name, :null => false
|
8
|
+
Integer :hero_user_id
|
9
|
+
DateTime :created_at
|
10
|
+
DateTime :updated_at
|
11
|
+
end
|
12
|
+
|
13
|
+
DB.create_table :users do
|
14
|
+
primary_key :id
|
15
|
+
String :first_name, :null => false
|
16
|
+
String :surname
|
17
|
+
Integer :age
|
18
|
+
foreign_key :role_id
|
19
|
+
DateTime :created_at
|
20
|
+
DateTime :updated_at
|
21
|
+
end
|
22
|
+
|
23
|
+
DB.create_table :comments do
|
24
|
+
primary_key :id
|
25
|
+
String :content
|
26
|
+
foreign_key :user_id
|
27
|
+
DateTime :created_at
|
28
|
+
DateTime :updated_at
|
29
|
+
end
|
30
|
+
|
31
|
+
DB.create_table :roles do
|
32
|
+
primary_key :id
|
33
|
+
String :name
|
34
|
+
DateTime :created_at
|
35
|
+
DateTime :updated_at
|
36
|
+
end
|
37
|
+
|
38
|
+
DB.create_table :groups do
|
39
|
+
primary_key :id
|
40
|
+
String :name
|
41
|
+
DateTime :created_at
|
42
|
+
DateTime :updated_at
|
43
|
+
end
|
44
|
+
|
45
|
+
DB.create_table :groups_users do
|
46
|
+
primary_key :id
|
47
|
+
foreign_key :user_id
|
48
|
+
foreign_key :group_id
|
49
|
+
end
|
50
|
+
|
51
|
+
DB.create_table :user_driver_licenses do
|
52
|
+
primary_key :id
|
53
|
+
String :number
|
54
|
+
String :expiry
|
55
|
+
foreign_key :user_id
|
56
|
+
DateTime :created_at
|
57
|
+
DateTime :updated_at
|
58
|
+
end
|
59
|
+
|
60
|
+
DB.create_table :user_passports do
|
61
|
+
primary_key :id
|
62
|
+
String :number
|
63
|
+
String :expiry, :null => false
|
64
|
+
foreign_key :user_id
|
65
|
+
DateTime :created_at
|
66
|
+
DateTime :updated_at
|
67
|
+
end
|
68
|
+
|
69
|
+
DB.create_table :user_health_cares do
|
70
|
+
primary_key :id
|
71
|
+
String :number
|
72
|
+
String :expiry
|
73
|
+
foreign_key :user_id
|
74
|
+
DateTime :created_at
|
75
|
+
DateTime :updated_at
|
76
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: datamappify
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.20.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Fred Wu
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-03-
|
11
|
+
date: 2013-03-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: virtus
|
@@ -44,26 +44,6 @@ dependencies:
|
|
44
44
|
- - <
|
45
45
|
- !ruby/object:Gem::Version
|
46
46
|
version: '5'
|
47
|
-
- !ruby/object:Gem::Dependency
|
48
|
-
name: activerecord
|
49
|
-
requirement: !ruby/object:Gem::Requirement
|
50
|
-
requirements:
|
51
|
-
- - '>='
|
52
|
-
- !ruby/object:Gem::Version
|
53
|
-
version: 4.0.0.beta1
|
54
|
-
- - <
|
55
|
-
- !ruby/object:Gem::Version
|
56
|
-
version: '5'
|
57
|
-
type: :runtime
|
58
|
-
prerelease: false
|
59
|
-
version_requirements: !ruby/object:Gem::Requirement
|
60
|
-
requirements:
|
61
|
-
- - '>='
|
62
|
-
- !ruby/object:Gem::Version
|
63
|
-
version: 4.0.0.beta1
|
64
|
-
- - <
|
65
|
-
- !ruby/object:Gem::Version
|
66
|
-
version: '5'
|
67
47
|
- !ruby/object:Gem::Dependency
|
68
48
|
name: bundler
|
69
49
|
requirement: !ruby/object:Gem::Requirement
|
@@ -93,7 +73,7 @@ dependencies:
|
|
93
73
|
- !ruby/object:Gem::Version
|
94
74
|
version: '0'
|
95
75
|
- !ruby/object:Gem::Dependency
|
96
|
-
name:
|
76
|
+
name: rspec
|
97
77
|
requirement: !ruby/object:Gem::Requirement
|
98
78
|
requirements:
|
99
79
|
- - '>='
|
@@ -107,7 +87,7 @@ dependencies:
|
|
107
87
|
- !ruby/object:Gem::Version
|
108
88
|
version: '0'
|
109
89
|
- !ruby/object:Gem::Dependency
|
110
|
-
name:
|
90
|
+
name: pry
|
111
91
|
requirement: !ruby/object:Gem::Requirement
|
112
92
|
requirements:
|
113
93
|
- - '>='
|
@@ -121,7 +101,7 @@ dependencies:
|
|
121
101
|
- !ruby/object:Gem::Version
|
122
102
|
version: '0'
|
123
103
|
- !ruby/object:Gem::Dependency
|
124
|
-
name:
|
104
|
+
name: simplecov
|
125
105
|
requirement: !ruby/object:Gem::Requirement
|
126
106
|
requirements:
|
127
107
|
- - '>='
|
@@ -135,7 +115,7 @@ dependencies:
|
|
135
115
|
- !ruby/object:Gem::Version
|
136
116
|
version: '0'
|
137
117
|
- !ruby/object:Gem::Dependency
|
138
|
-
name:
|
118
|
+
name: cane
|
139
119
|
requirement: !ruby/object:Gem::Requirement
|
140
120
|
requirements:
|
141
121
|
- - '>='
|
@@ -149,7 +129,7 @@ dependencies:
|
|
149
129
|
- !ruby/object:Gem::Version
|
150
130
|
version: '0'
|
151
131
|
- !ruby/object:Gem::Dependency
|
152
|
-
name:
|
132
|
+
name: coveralls
|
153
133
|
requirement: !ruby/object:Gem::Requirement
|
154
134
|
requirements:
|
155
135
|
- - '>='
|
@@ -163,7 +143,7 @@ dependencies:
|
|
163
143
|
- !ruby/object:Gem::Version
|
164
144
|
version: '0'
|
165
145
|
- !ruby/object:Gem::Dependency
|
166
|
-
name:
|
146
|
+
name: sqlite3
|
167
147
|
requirement: !ruby/object:Gem::Requirement
|
168
148
|
requirements:
|
169
149
|
- - '>='
|
@@ -177,7 +157,7 @@ dependencies:
|
|
177
157
|
- !ruby/object:Gem::Version
|
178
158
|
version: '0'
|
179
159
|
- !ruby/object:Gem::Dependency
|
180
|
-
name:
|
160
|
+
name: sequel
|
181
161
|
requirement: !ruby/object:Gem::Requirement
|
182
162
|
requirements:
|
183
163
|
- - '>='
|
@@ -190,6 +170,26 @@ dependencies:
|
|
190
170
|
- - '>='
|
191
171
|
- !ruby/object:Gem::Version
|
192
172
|
version: '0'
|
173
|
+
- !ruby/object:Gem::Dependency
|
174
|
+
name: activerecord
|
175
|
+
requirement: !ruby/object:Gem::Requirement
|
176
|
+
requirements:
|
177
|
+
- - '>='
|
178
|
+
- !ruby/object:Gem::Version
|
179
|
+
version: 4.0.0.beta1
|
180
|
+
- - <
|
181
|
+
- !ruby/object:Gem::Version
|
182
|
+
version: '5'
|
183
|
+
type: :development
|
184
|
+
prerelease: false
|
185
|
+
version_requirements: !ruby/object:Gem::Requirement
|
186
|
+
requirements:
|
187
|
+
- - '>='
|
188
|
+
- !ruby/object:Gem::Version
|
189
|
+
version: 4.0.0.beta1
|
190
|
+
- - <
|
191
|
+
- !ruby/object:Gem::Version
|
192
|
+
version: '5'
|
193
193
|
- !ruby/object:Gem::Dependency
|
194
194
|
name: database_cleaner
|
195
195
|
requirement: !ruby/object:Gem::Requirement
|
@@ -218,6 +218,7 @@ extensions: []
|
|
218
218
|
extra_rdoc_files: []
|
219
219
|
files:
|
220
220
|
- .gitignore
|
221
|
+
- .rspec
|
221
222
|
- .travis.yml
|
222
223
|
- CHANGELOG.md
|
223
224
|
- Gemfile
|
@@ -226,28 +227,43 @@ files:
|
|
226
227
|
- datamappify.gemspec
|
227
228
|
- lib/datamappify.rb
|
228
229
|
- lib/datamappify/data.rb
|
229
|
-
- lib/datamappify/data/base.rb
|
230
230
|
- lib/datamappify/data/errors.rb
|
231
|
+
- lib/datamappify/data/provider/active_record.rb
|
232
|
+
- lib/datamappify/data/provider/active_record/persistence.rb
|
233
|
+
- lib/datamappify/data/provider/common/persistence.rb
|
234
|
+
- lib/datamappify/data/provider/common/relational/persistence.rb
|
235
|
+
- lib/datamappify/data/provider/common/relational/record/mapper.rb
|
236
|
+
- lib/datamappify/data/provider/common/relational/record/writer.rb
|
237
|
+
- lib/datamappify/data/provider/sequel.rb
|
238
|
+
- lib/datamappify/data/provider/sequel/persistence.rb
|
231
239
|
- lib/datamappify/entity.rb
|
232
240
|
- lib/datamappify/repository.rb
|
233
241
|
- lib/datamappify/repository/attribute_source_data_class_builder.rb
|
234
242
|
- lib/datamappify/repository/attributes_mapper.rb
|
235
243
|
- lib/datamappify/repository/dsl.rb
|
236
|
-
- lib/datamappify/repository/
|
244
|
+
- lib/datamappify/repository/mapping_hash.rb
|
245
|
+
- lib/datamappify/util.rb
|
237
246
|
- lib/datamappify/version.rb
|
238
247
|
- spec/entity_spec.rb
|
239
248
|
- spec/repository/persistence_spec.rb
|
240
249
|
- spec/repository_spec.rb
|
241
250
|
- spec/spec_helper.rb
|
242
|
-
- spec/support/active_record_tables.rb
|
243
251
|
- spec/support/entities/comment.rb
|
244
252
|
- spec/support/entities/group.rb
|
253
|
+
- spec/support/entities/hero_user.rb
|
245
254
|
- spec/support/entities/role.rb
|
246
255
|
- spec/support/entities/user.rb
|
247
|
-
- spec/support/repositories/comment_repository.rb
|
248
|
-
- spec/support/repositories/group_repository.rb
|
249
|
-
- spec/support/repositories/role_repository.rb
|
250
|
-
- spec/support/repositories/user_repository.rb
|
256
|
+
- spec/support/repositories/active_record/comment_repository.rb
|
257
|
+
- spec/support/repositories/active_record/group_repository.rb
|
258
|
+
- spec/support/repositories/active_record/role_repository.rb
|
259
|
+
- spec/support/repositories/active_record/user_repository.rb
|
260
|
+
- spec/support/repositories/hero_user_repository.rb
|
261
|
+
- spec/support/repositories/sequel/comment_repository.rb
|
262
|
+
- spec/support/repositories/sequel/group_repository.rb
|
263
|
+
- spec/support/repositories/sequel/role_repository.rb
|
264
|
+
- spec/support/repositories/sequel/user_repository.rb
|
265
|
+
- spec/support/tables/active_record.rb
|
266
|
+
- spec/support/tables/sequel.rb
|
251
267
|
homepage: https://github.com/fredwu/datamappify
|
252
268
|
licenses:
|
253
269
|
- MIT
|
@@ -277,12 +293,19 @@ test_files:
|
|
277
293
|
- spec/repository/persistence_spec.rb
|
278
294
|
- spec/repository_spec.rb
|
279
295
|
- spec/spec_helper.rb
|
280
|
-
- spec/support/active_record_tables.rb
|
281
296
|
- spec/support/entities/comment.rb
|
282
297
|
- spec/support/entities/group.rb
|
298
|
+
- spec/support/entities/hero_user.rb
|
283
299
|
- spec/support/entities/role.rb
|
284
300
|
- spec/support/entities/user.rb
|
285
|
-
- spec/support/repositories/comment_repository.rb
|
286
|
-
- spec/support/repositories/group_repository.rb
|
287
|
-
- spec/support/repositories/role_repository.rb
|
288
|
-
- spec/support/repositories/user_repository.rb
|
301
|
+
- spec/support/repositories/active_record/comment_repository.rb
|
302
|
+
- spec/support/repositories/active_record/group_repository.rb
|
303
|
+
- spec/support/repositories/active_record/role_repository.rb
|
304
|
+
- spec/support/repositories/active_record/user_repository.rb
|
305
|
+
- spec/support/repositories/hero_user_repository.rb
|
306
|
+
- spec/support/repositories/sequel/comment_repository.rb
|
307
|
+
- spec/support/repositories/sequel/group_repository.rb
|
308
|
+
- spec/support/repositories/sequel/role_repository.rb
|
309
|
+
- spec/support/repositories/sequel/user_repository.rb
|
310
|
+
- spec/support/tables/active_record.rb
|
311
|
+
- spec/support/tables/sequel.rb
|
@@ -1,137 +0,0 @@
|
|
1
|
-
module Datamappify
|
2
|
-
module Repository
|
3
|
-
module Persistence
|
4
|
-
def find(id_or_ids)
|
5
|
-
if id_or_ids.is_a?(Array)
|
6
|
-
find_many(id_or_ids)
|
7
|
-
else
|
8
|
-
find_one(id_or_ids)
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
|
-
def save(entity)
|
13
|
-
create_or_update(entity)
|
14
|
-
rescue Datamappify::Data::EntityInvalid
|
15
|
-
false
|
16
|
-
end
|
17
|
-
|
18
|
-
def save!(entity)
|
19
|
-
save(entity) || raise(Datamappify::Data::EntityNotSaved)
|
20
|
-
end
|
21
|
-
|
22
|
-
def destroy(id_or_entity)
|
23
|
-
default_data_class.send :destroy, extract_entity_id(id_or_entity)
|
24
|
-
end
|
25
|
-
|
26
|
-
def destroy!(id_or_entity)
|
27
|
-
destroy(id_or_entity) || raise(Datamappify::Data::EntityNotDestroyed)
|
28
|
-
end
|
29
|
-
|
30
|
-
def method_missing(symbol, *args)
|
31
|
-
default_data_class.send symbol, *args
|
32
|
-
end
|
33
|
-
|
34
|
-
private
|
35
|
-
|
36
|
-
def find_many(ids)
|
37
|
-
ids.map { |id| find_one(id) }.compact
|
38
|
-
end
|
39
|
-
|
40
|
-
def find_one(id)
|
41
|
-
exists?(id) ? entity_class.new(data_mapping_walker(data_mapping, id)) : nil
|
42
|
-
end
|
43
|
-
|
44
|
-
def create_or_update(entity)
|
45
|
-
raise Datamappify::Data::EntityInvalid.new(entity) if entity.invalid?
|
46
|
-
|
47
|
-
entity.id ? update(entity) : create(entity)
|
48
|
-
end
|
49
|
-
|
50
|
-
def create(entity)
|
51
|
-
entity_class.new data_mapping_walker(data_mapping, nil, entity.attributes)
|
52
|
-
end
|
53
|
-
|
54
|
-
def update(entity)
|
55
|
-
entity_class.new data_mapping_walker(data_mapping, entity.id, entity.attributes)
|
56
|
-
end
|
57
|
-
|
58
|
-
def data_mapping_walker(data_mapping, main_object_id, updated_attributes = nil)
|
59
|
-
composed_attributes = {}
|
60
|
-
|
61
|
-
default_data_class.transaction do
|
62
|
-
|
63
|
-
data_mapping.each do |data_class_name, data_fields_mapping|
|
64
|
-
values = extract_data_field_values(
|
65
|
-
data_class_name, main_object_id, updated_attributes, data_fields_mapping
|
66
|
-
)
|
67
|
-
|
68
|
-
data_fields_with_values = {}
|
69
|
-
|
70
|
-
data_fields_mapping.each_with_index do |(data_field_name, attribute_name), index|
|
71
|
-
composed_attributes[attribute_name] = data_fields_with_values[data_field_name] = values[index]
|
72
|
-
end
|
73
|
-
|
74
|
-
if updated_attributes && data_fields_need_updating?(data_fields_with_values)
|
75
|
-
create_or_update_data_object(data_class_name, main_object_id, data_fields_with_values)
|
76
|
-
end
|
77
|
-
end
|
78
|
-
|
79
|
-
end
|
80
|
-
|
81
|
-
composed_attributes
|
82
|
-
end
|
83
|
-
|
84
|
-
def default_data_class
|
85
|
-
data_class(entity_class.name)
|
86
|
-
end
|
87
|
-
|
88
|
-
def data_class(data_class_name)
|
89
|
-
"Datamappify::Data::#{data_class_name}".constantize
|
90
|
-
end
|
91
|
-
|
92
|
-
def key_field_name(data_class_name)
|
93
|
-
entity_class.name == data_class_name ? :id : foreign_key_field_name
|
94
|
-
end
|
95
|
-
|
96
|
-
def foreign_key_field_name
|
97
|
-
"#{entity_class.name.underscore}_id".to_sym
|
98
|
-
end
|
99
|
-
|
100
|
-
def extract_data_field_values(data_class_name, id, updated_attributes, data_fields_mapping)
|
101
|
-
if updated_attributes.nil?
|
102
|
-
find_data_field_values_from_db(data_class_name, id, data_fields_mapping.keys)
|
103
|
-
else
|
104
|
-
find_data_field_values_from_attributes(updated_attributes, data_fields_mapping.values)
|
105
|
-
end
|
106
|
-
end
|
107
|
-
|
108
|
-
def find_data_field_values_from_db(data_class_name, id, data_field_names)
|
109
|
-
data_class(data_class_name).where(:id => id).pluck(*data_field_names).flatten
|
110
|
-
end
|
111
|
-
|
112
|
-
def find_data_field_values_from_attributes(attributes, attribute_names)
|
113
|
-
attribute_names.map { |name| attributes[name] }
|
114
|
-
end
|
115
|
-
|
116
|
-
def data_fields_need_updating?(data_fields_with_values)
|
117
|
-
data_fields_with_values.values.compact.any?
|
118
|
-
end
|
119
|
-
|
120
|
-
def create_or_update_data_object(data_class_name, main_object_id, data_fields_with_values)
|
121
|
-
unless entity_class.name == data_class_name
|
122
|
-
data_fields_with_values[foreign_key_field_name] = main_object_id
|
123
|
-
end
|
124
|
-
|
125
|
-
data_object = data_class(data_class_name).find_or_initialize_by(
|
126
|
-
key_field_name(data_class_name) => main_object_id
|
127
|
-
)
|
128
|
-
|
129
|
-
data_object.update_attributes data_fields_with_values
|
130
|
-
end
|
131
|
-
|
132
|
-
def extract_entity_id(id_or_entity)
|
133
|
-
id_or_entity.is_a?(Integer) ? id_or_entity : id_or_entity.id
|
134
|
-
end
|
135
|
-
end
|
136
|
-
end
|
137
|
-
end
|
@@ -1,11 +0,0 @@
|
|
1
|
-
require_relative '../entities/user'
|
2
|
-
|
3
|
-
class UserRepository
|
4
|
-
include Datamappify::Repository
|
5
|
-
|
6
|
-
for_entity User
|
7
|
-
|
8
|
-
map_attribute :gender, 'User#sex'
|
9
|
-
map_attribute :passport, 'UserPassport#number'
|
10
|
-
map_attribute :driver_license, 'UserDriverLicense#number'
|
11
|
-
end
|