moblues 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +7 -5
- data/lib/moblues/cli.rb +3 -4
- data/lib/moblues/generator/base/model.rb +24 -0
- data/lib/moblues/generator/base/type.rb +63 -0
- data/lib/moblues/generator/objc/base.rb +67 -0
- data/lib/moblues/generator/objc/human.rb +27 -0
- data/lib/moblues/generator/{human_header.h.erb → objc/human_header.h.erb} +0 -0
- data/lib/moblues/generator/{human_implementation.m.erb → objc/human_implementation.m.erb} +0 -0
- data/lib/moblues/generator/objc/machine.rb +31 -0
- data/lib/moblues/generator/{machine_header.h.erb → objc/machine_header.h.erb} +2 -2
- data/lib/moblues/generator/{machine_implementation.m.erb → objc/machine_implementation.m.erb} +0 -0
- data/lib/moblues/generator/objc/type.rb +24 -0
- data/lib/moblues/generator/swift/base.rb +39 -0
- data/lib/moblues/generator/swift/human.rb +18 -0
- data/lib/moblues/generator/swift/human.swift.erb +4 -0
- data/lib/moblues/generator/swift/machine.rb +18 -0
- data/lib/moblues/generator/swift/machine.swift.erb +12 -0
- data/lib/moblues/generator.rb +9 -4
- data/lib/moblues/reader/type.rb +3 -37
- data/lib/moblues/version.rb +1 -1
- data/lib/moblues.rb +20 -4
- data/spec/features/moblues_spec.rb +35 -16
- data/spec/lib/moblues/cli_spec.rb +12 -2
- data/spec/lib/moblues/generator/base/model_spec.rb +27 -0
- data/spec/lib/moblues/generator/base/type_spec.rb +46 -0
- data/spec/lib/moblues/generator/objc/human_spec.rb +54 -0
- data/spec/lib/moblues/generator/{machine_spec.rb → objc/machine_spec.rb} +9 -8
- data/spec/lib/moblues/generator/objc/type_spec.rb +23 -0
- data/spec/lib/moblues/generator/swift/human_spec.rb +34 -0
- data/spec/lib/moblues/generator/swift/machine_spec.rb +57 -0
- data/spec/lib/moblues/reader/type_spec.rb +3 -54
- data/spec/moblues_spec.rb +46 -12
- data/spec/resources/expected/{Author.h → objc/Author.h} +0 -0
- data/spec/resources/expected/{Author.m → objc/Author.m} +0 -0
- data/spec/resources/expected/{_Author.h → objc/_Author.h} +0 -0
- data/spec/resources/expected/{_Author.m → objc/_Author.m} +0 -0
- data/spec/resources/expected/{_Book.h → objc/_Book.h} +0 -0
- data/spec/resources/expected/{_Book.m → objc/_Book.m} +0 -0
- data/spec/resources/expected/{_Person.h → objc/_Person.h} +0 -0
- data/spec/resources/expected/{_Person.m → objc/_Person.m} +0 -0
- data/spec/resources/expected/{_Team.h → objc/_Team.h} +0 -0
- data/spec/resources/expected/{_Team.m → objc/_Team.m} +0 -0
- data/spec/resources/expected/{human → objc/human}/Playable.h +0 -0
- data/spec/resources/expected/{human → objc/human}/Playable.m +0 -0
- data/spec/resources/expected/{human → objc/human}/Playlist.h +0 -0
- data/spec/resources/expected/{human → objc/human}/Playlist.m +0 -0
- data/spec/resources/expected/{human → objc/human}/Track.h +0 -0
- data/spec/resources/expected/{human → objc/human}/Track.m +0 -0
- data/spec/resources/expected/{human → objc/human}/User.h +0 -0
- data/spec/resources/expected/{human → objc/human}/User.m +0 -0
- data/spec/resources/expected/{machine → objc/machine}/_Playable.h +0 -0
- data/spec/resources/expected/{machine → objc/machine}/_Playable.m +0 -0
- data/spec/resources/expected/{machine → objc/machine}/_Playlist.h +0 -0
- data/spec/resources/expected/{machine → objc/machine}/_Playlist.m +0 -0
- data/spec/resources/expected/{machine → objc/machine}/_Track.h +0 -0
- data/spec/resources/expected/{machine → objc/machine}/_Track.m +0 -0
- data/spec/resources/expected/{machine → objc/machine}/_User.h +0 -0
- data/spec/resources/expected/{machine → objc/machine}/_User.m +0 -0
- data/spec/resources/expected/swift/Author.swift +4 -0
- data/spec/resources/expected/swift/_Author.swift +11 -0
- data/spec/resources/expected/swift/_Book.swift +8 -0
- data/spec/resources/expected/swift/human/Playable.swift +4 -0
- data/spec/resources/expected/swift/human/Playlist.swift +5 -0
- data/spec/resources/expected/swift/human/Track.swift +4 -0
- data/spec/resources/expected/swift/human/User.swift +4 -0
- data/spec/resources/expected/swift/machine/_Playable.swift +8 -0
- data/spec/resources/expected/swift/machine/_Playlist.swift +8 -0
- data/spec/resources/expected/swift/machine/_Track.swift +9 -0
- data/spec/resources/expected/swift/machine/_User.swift +10 -0
- data/spec/resources/factories/data_model/attribute_factory.rb +28 -0
- data/spec/resources/factories/data_model/relationship_factory.rb +15 -0
- data/spec/resources/fixtures.rb +10 -10
- data/spec/resources/tmp/{human → objc/human}/Playlist.h +0 -0
- data/spec/resources/tmp/{human → objc/human}/Playlist.m +0 -0
- data/spec/resources/tmp/swift/.gitkeep +0 -0
- data/spec/resources/tmp/swift/human/Playlist.swift +5 -0
- metadata +113 -76
- data/lib/moblues/generator/base.rb +0 -65
- data/lib/moblues/generator/human.rb +0 -25
- data/lib/moblues/generator/machine.rb +0 -36
- data/lib/moblues/generator/model.rb +0 -23
- data/spec/lib/moblues/generator/human_spec.rb +0 -74
- data/spec/lib/moblues/generator/model_spec.rb +0 -27
- data/spec/resources/tmp/_Team.h +0 -18
- data/spec/resources/tmp/_Team.m +0 -5
data/spec/resources/fixtures.rb
CHANGED
@@ -5,29 +5,29 @@ module Fixtures
|
|
5
5
|
'spec/resources/Model.xcdatamodeld'
|
6
6
|
end
|
7
7
|
|
8
|
-
def expected_dir
|
9
|
-
|
8
|
+
def expected_dir(language)
|
9
|
+
"spec/resources/expected/#{language}"
|
10
10
|
end
|
11
11
|
|
12
|
-
def generated_dir
|
13
|
-
|
12
|
+
def generated_dir(language)
|
13
|
+
"spec/resources/tmp/#{language}"
|
14
14
|
end
|
15
15
|
|
16
|
-
def generated_file_content(name)
|
17
|
-
read_file(generated_dir, name)
|
16
|
+
def generated_file_content(name, language)
|
17
|
+
read_file(generated_dir(language), name)
|
18
18
|
end
|
19
19
|
|
20
|
-
def expected_content(name)
|
21
|
-
read_file(expected_dir, name)
|
20
|
+
def expected_content(name, language)
|
21
|
+
read_file(expected_dir(language), name)
|
22
22
|
end
|
23
23
|
|
24
24
|
def read_file(directory, file)
|
25
25
|
File.read(File.join(directory, file))
|
26
26
|
end
|
27
27
|
|
28
|
-
def delete_tmp_files(files)
|
28
|
+
def delete_tmp_files(files, language)
|
29
29
|
files.each { |file|
|
30
|
-
path = File.join(generated_dir, file)
|
30
|
+
path = File.join(generated_dir(language), file)
|
31
31
|
File.delete(path) if File.exists?(path)
|
32
32
|
}
|
33
33
|
end
|
File without changes
|
File without changes
|
File without changes
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: moblues
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vincent Garrigues
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-12-
|
11
|
+
date: 2014-12-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -135,14 +135,21 @@ files:
|
|
135
135
|
- lib/moblues/data_model/entity.rb
|
136
136
|
- lib/moblues/data_model/relationship.rb
|
137
137
|
- lib/moblues/generator.rb
|
138
|
-
- lib/moblues/generator/base.rb
|
139
|
-
- lib/moblues/generator/
|
140
|
-
- lib/moblues/generator/
|
141
|
-
- lib/moblues/generator/
|
142
|
-
- lib/moblues/generator/
|
143
|
-
- lib/moblues/generator/
|
144
|
-
- lib/moblues/generator/
|
145
|
-
- lib/moblues/generator/
|
138
|
+
- lib/moblues/generator/base/model.rb
|
139
|
+
- lib/moblues/generator/base/type.rb
|
140
|
+
- lib/moblues/generator/objc/base.rb
|
141
|
+
- lib/moblues/generator/objc/human.rb
|
142
|
+
- lib/moblues/generator/objc/human_header.h.erb
|
143
|
+
- lib/moblues/generator/objc/human_implementation.m.erb
|
144
|
+
- lib/moblues/generator/objc/machine.rb
|
145
|
+
- lib/moblues/generator/objc/machine_header.h.erb
|
146
|
+
- lib/moblues/generator/objc/machine_implementation.m.erb
|
147
|
+
- lib/moblues/generator/objc/type.rb
|
148
|
+
- lib/moblues/generator/swift/base.rb
|
149
|
+
- lib/moblues/generator/swift/human.rb
|
150
|
+
- lib/moblues/generator/swift/human.swift.erb
|
151
|
+
- lib/moblues/generator/swift/machine.rb
|
152
|
+
- lib/moblues/generator/swift/machine.swift.erb
|
146
153
|
- lib/moblues/reader.rb
|
147
154
|
- lib/moblues/reader/attribute.rb
|
148
155
|
- lib/moblues/reader/entity.rb
|
@@ -157,9 +164,13 @@ files:
|
|
157
164
|
- spec/lib/moblues/data_model/attribute_spec.rb
|
158
165
|
- spec/lib/moblues/data_model/entity_spec.rb
|
159
166
|
- spec/lib/moblues/data_model/relationship_spec.rb
|
160
|
-
- spec/lib/moblues/generator/
|
161
|
-
- spec/lib/moblues/generator/
|
162
|
-
- spec/lib/moblues/generator/
|
167
|
+
- spec/lib/moblues/generator/base/model_spec.rb
|
168
|
+
- spec/lib/moblues/generator/base/type_spec.rb
|
169
|
+
- spec/lib/moblues/generator/objc/human_spec.rb
|
170
|
+
- spec/lib/moblues/generator/objc/machine_spec.rb
|
171
|
+
- spec/lib/moblues/generator/objc/type_spec.rb
|
172
|
+
- spec/lib/moblues/generator/swift/human_spec.rb
|
173
|
+
- spec/lib/moblues/generator/swift/machine_spec.rb
|
163
174
|
- spec/lib/moblues/reader/attribute_spec.rb
|
164
175
|
- spec/lib/moblues/reader/entity_spec.rb
|
165
176
|
- spec/lib/moblues/reader/model_spec.rb
|
@@ -170,41 +181,52 @@ files:
|
|
170
181
|
- spec/resources/Model.xcdatamodeld/.xccurrentversion
|
171
182
|
- spec/resources/Model.xcdatamodeld/Model 2.xcdatamodel/contents
|
172
183
|
- spec/resources/Model.xcdatamodeld/Model.xcdatamodel/contents
|
173
|
-
- spec/resources/expected/Author.h
|
174
|
-
- spec/resources/expected/Author.m
|
175
|
-
- spec/resources/expected/_Author.h
|
176
|
-
- spec/resources/expected/_Author.m
|
177
|
-
- spec/resources/expected/_Book.h
|
178
|
-
- spec/resources/expected/_Book.m
|
179
|
-
- spec/resources/expected/_Person.h
|
180
|
-
- spec/resources/expected/_Person.m
|
181
|
-
- spec/resources/expected/_Team.h
|
182
|
-
- spec/resources/expected/_Team.m
|
183
|
-
- spec/resources/expected/human/Playable.h
|
184
|
-
- spec/resources/expected/human/Playable.m
|
185
|
-
- spec/resources/expected/human/Playlist.h
|
186
|
-
- spec/resources/expected/human/Playlist.m
|
187
|
-
- spec/resources/expected/human/Track.h
|
188
|
-
- spec/resources/expected/human/Track.m
|
189
|
-
- spec/resources/expected/human/User.h
|
190
|
-
- spec/resources/expected/human/User.m
|
191
|
-
- spec/resources/expected/machine/_Playable.h
|
192
|
-
- spec/resources/expected/machine/_Playable.m
|
193
|
-
- spec/resources/expected/machine/_Playlist.h
|
194
|
-
- spec/resources/expected/machine/_Playlist.m
|
195
|
-
- spec/resources/expected/machine/_Track.h
|
196
|
-
- spec/resources/expected/machine/_Track.m
|
197
|
-
- spec/resources/expected/machine/_User.h
|
198
|
-
- spec/resources/expected/machine/_User.m
|
184
|
+
- spec/resources/expected/objc/Author.h
|
185
|
+
- spec/resources/expected/objc/Author.m
|
186
|
+
- spec/resources/expected/objc/_Author.h
|
187
|
+
- spec/resources/expected/objc/_Author.m
|
188
|
+
- spec/resources/expected/objc/_Book.h
|
189
|
+
- spec/resources/expected/objc/_Book.m
|
190
|
+
- spec/resources/expected/objc/_Person.h
|
191
|
+
- spec/resources/expected/objc/_Person.m
|
192
|
+
- spec/resources/expected/objc/_Team.h
|
193
|
+
- spec/resources/expected/objc/_Team.m
|
194
|
+
- spec/resources/expected/objc/human/Playable.h
|
195
|
+
- spec/resources/expected/objc/human/Playable.m
|
196
|
+
- spec/resources/expected/objc/human/Playlist.h
|
197
|
+
- spec/resources/expected/objc/human/Playlist.m
|
198
|
+
- spec/resources/expected/objc/human/Track.h
|
199
|
+
- spec/resources/expected/objc/human/Track.m
|
200
|
+
- spec/resources/expected/objc/human/User.h
|
201
|
+
- spec/resources/expected/objc/human/User.m
|
202
|
+
- spec/resources/expected/objc/machine/_Playable.h
|
203
|
+
- spec/resources/expected/objc/machine/_Playable.m
|
204
|
+
- spec/resources/expected/objc/machine/_Playlist.h
|
205
|
+
- spec/resources/expected/objc/machine/_Playlist.m
|
206
|
+
- spec/resources/expected/objc/machine/_Track.h
|
207
|
+
- spec/resources/expected/objc/machine/_Track.m
|
208
|
+
- spec/resources/expected/objc/machine/_User.h
|
209
|
+
- spec/resources/expected/objc/machine/_User.m
|
210
|
+
- spec/resources/expected/swift/Author.swift
|
211
|
+
- spec/resources/expected/swift/_Author.swift
|
212
|
+
- spec/resources/expected/swift/_Book.swift
|
213
|
+
- spec/resources/expected/swift/human/Playable.swift
|
214
|
+
- spec/resources/expected/swift/human/Playlist.swift
|
215
|
+
- spec/resources/expected/swift/human/Track.swift
|
216
|
+
- spec/resources/expected/swift/human/User.swift
|
217
|
+
- spec/resources/expected/swift/machine/_Playable.swift
|
218
|
+
- spec/resources/expected/swift/machine/_Playlist.swift
|
219
|
+
- spec/resources/expected/swift/machine/_Track.swift
|
220
|
+
- spec/resources/expected/swift/machine/_User.swift
|
199
221
|
- spec/resources/factories/data_model/attribute_factory.rb
|
200
222
|
- spec/resources/factories/data_model/entity_factory.rb
|
201
223
|
- spec/resources/factories/data_model/relationship_factory.rb
|
202
224
|
- spec/resources/fixtures.rb
|
203
225
|
- spec/resources/tmp/.gitkeep
|
204
|
-
- spec/resources/tmp/
|
205
|
-
- spec/resources/tmp/
|
206
|
-
- spec/resources/tmp/
|
207
|
-
- spec/resources/tmp/human/Playlist.
|
226
|
+
- spec/resources/tmp/objc/human/Playlist.h
|
227
|
+
- spec/resources/tmp/objc/human/Playlist.m
|
228
|
+
- spec/resources/tmp/swift/.gitkeep
|
229
|
+
- spec/resources/tmp/swift/human/Playlist.swift
|
208
230
|
- spec/spec_helper.rb
|
209
231
|
homepage: http://garriguv.io
|
210
232
|
licenses:
|
@@ -236,9 +258,13 @@ test_files:
|
|
236
258
|
- spec/lib/moblues/data_model/attribute_spec.rb
|
237
259
|
- spec/lib/moblues/data_model/entity_spec.rb
|
238
260
|
- spec/lib/moblues/data_model/relationship_spec.rb
|
239
|
-
- spec/lib/moblues/generator/
|
240
|
-
- spec/lib/moblues/generator/
|
241
|
-
- spec/lib/moblues/generator/
|
261
|
+
- spec/lib/moblues/generator/base/model_spec.rb
|
262
|
+
- spec/lib/moblues/generator/base/type_spec.rb
|
263
|
+
- spec/lib/moblues/generator/objc/human_spec.rb
|
264
|
+
- spec/lib/moblues/generator/objc/machine_spec.rb
|
265
|
+
- spec/lib/moblues/generator/objc/type_spec.rb
|
266
|
+
- spec/lib/moblues/generator/swift/human_spec.rb
|
267
|
+
- spec/lib/moblues/generator/swift/machine_spec.rb
|
242
268
|
- spec/lib/moblues/reader/attribute_spec.rb
|
243
269
|
- spec/lib/moblues/reader/entity_spec.rb
|
244
270
|
- spec/lib/moblues/reader/model_spec.rb
|
@@ -249,39 +275,50 @@ test_files:
|
|
249
275
|
- spec/resources/Model.xcdatamodeld/.xccurrentversion
|
250
276
|
- spec/resources/Model.xcdatamodeld/Model 2.xcdatamodel/contents
|
251
277
|
- spec/resources/Model.xcdatamodeld/Model.xcdatamodel/contents
|
252
|
-
- spec/resources/expected/Author.h
|
253
|
-
- spec/resources/expected/Author.m
|
254
|
-
- spec/resources/expected/_Author.h
|
255
|
-
- spec/resources/expected/_Author.m
|
256
|
-
- spec/resources/expected/_Book.h
|
257
|
-
- spec/resources/expected/_Book.m
|
258
|
-
- spec/resources/expected/_Person.h
|
259
|
-
- spec/resources/expected/_Person.m
|
260
|
-
- spec/resources/expected/_Team.h
|
261
|
-
- spec/resources/expected/_Team.m
|
262
|
-
- spec/resources/expected/human/Playable.h
|
263
|
-
- spec/resources/expected/human/Playable.m
|
264
|
-
- spec/resources/expected/human/Playlist.h
|
265
|
-
- spec/resources/expected/human/Playlist.m
|
266
|
-
- spec/resources/expected/human/Track.h
|
267
|
-
- spec/resources/expected/human/Track.m
|
268
|
-
- spec/resources/expected/human/User.h
|
269
|
-
- spec/resources/expected/human/User.m
|
270
|
-
- spec/resources/expected/machine/_Playable.h
|
271
|
-
- spec/resources/expected/machine/_Playable.m
|
272
|
-
- spec/resources/expected/machine/_Playlist.h
|
273
|
-
- spec/resources/expected/machine/_Playlist.m
|
274
|
-
- spec/resources/expected/machine/_Track.h
|
275
|
-
- spec/resources/expected/machine/_Track.m
|
276
|
-
- spec/resources/expected/machine/_User.h
|
277
|
-
- spec/resources/expected/machine/_User.m
|
278
|
+
- spec/resources/expected/objc/Author.h
|
279
|
+
- spec/resources/expected/objc/Author.m
|
280
|
+
- spec/resources/expected/objc/_Author.h
|
281
|
+
- spec/resources/expected/objc/_Author.m
|
282
|
+
- spec/resources/expected/objc/_Book.h
|
283
|
+
- spec/resources/expected/objc/_Book.m
|
284
|
+
- spec/resources/expected/objc/_Person.h
|
285
|
+
- spec/resources/expected/objc/_Person.m
|
286
|
+
- spec/resources/expected/objc/_Team.h
|
287
|
+
- spec/resources/expected/objc/_Team.m
|
288
|
+
- spec/resources/expected/objc/human/Playable.h
|
289
|
+
- spec/resources/expected/objc/human/Playable.m
|
290
|
+
- spec/resources/expected/objc/human/Playlist.h
|
291
|
+
- spec/resources/expected/objc/human/Playlist.m
|
292
|
+
- spec/resources/expected/objc/human/Track.h
|
293
|
+
- spec/resources/expected/objc/human/Track.m
|
294
|
+
- spec/resources/expected/objc/human/User.h
|
295
|
+
- spec/resources/expected/objc/human/User.m
|
296
|
+
- spec/resources/expected/objc/machine/_Playable.h
|
297
|
+
- spec/resources/expected/objc/machine/_Playable.m
|
298
|
+
- spec/resources/expected/objc/machine/_Playlist.h
|
299
|
+
- spec/resources/expected/objc/machine/_Playlist.m
|
300
|
+
- spec/resources/expected/objc/machine/_Track.h
|
301
|
+
- spec/resources/expected/objc/machine/_Track.m
|
302
|
+
- spec/resources/expected/objc/machine/_User.h
|
303
|
+
- spec/resources/expected/objc/machine/_User.m
|
304
|
+
- spec/resources/expected/swift/Author.swift
|
305
|
+
- spec/resources/expected/swift/_Author.swift
|
306
|
+
- spec/resources/expected/swift/_Book.swift
|
307
|
+
- spec/resources/expected/swift/human/Playable.swift
|
308
|
+
- spec/resources/expected/swift/human/Playlist.swift
|
309
|
+
- spec/resources/expected/swift/human/Track.swift
|
310
|
+
- spec/resources/expected/swift/human/User.swift
|
311
|
+
- spec/resources/expected/swift/machine/_Playable.swift
|
312
|
+
- spec/resources/expected/swift/machine/_Playlist.swift
|
313
|
+
- spec/resources/expected/swift/machine/_Track.swift
|
314
|
+
- spec/resources/expected/swift/machine/_User.swift
|
278
315
|
- spec/resources/factories/data_model/attribute_factory.rb
|
279
316
|
- spec/resources/factories/data_model/entity_factory.rb
|
280
317
|
- spec/resources/factories/data_model/relationship_factory.rb
|
281
318
|
- spec/resources/fixtures.rb
|
282
319
|
- spec/resources/tmp/.gitkeep
|
283
|
-
- spec/resources/tmp/
|
284
|
-
- spec/resources/tmp/
|
285
|
-
- spec/resources/tmp/
|
286
|
-
- spec/resources/tmp/human/Playlist.
|
320
|
+
- spec/resources/tmp/objc/human/Playlist.h
|
321
|
+
- spec/resources/tmp/objc/human/Playlist.m
|
322
|
+
- spec/resources/tmp/swift/.gitkeep
|
323
|
+
- spec/resources/tmp/swift/human/Playlist.swift
|
287
324
|
- spec/spec_helper.rb
|
@@ -1,65 +0,0 @@
|
|
1
|
-
require 'erb'
|
2
|
-
require 'moblues/reader/type'
|
3
|
-
|
4
|
-
module Moblues
|
5
|
-
module Generator
|
6
|
-
class Base
|
7
|
-
def initialize(params)
|
8
|
-
@output_dir = params.fetch(:output_dir)
|
9
|
-
end
|
10
|
-
|
11
|
-
protected
|
12
|
-
attr_reader :output_dir
|
13
|
-
|
14
|
-
def write_header(entity)
|
15
|
-
write_file(header_file(entity), header(entity))
|
16
|
-
end
|
17
|
-
|
18
|
-
def write_implementation(entity)
|
19
|
-
write_file(implementation_file(entity), implementation(entity))
|
20
|
-
end
|
21
|
-
|
22
|
-
def write_file(file, text)
|
23
|
-
File.open(file, 'w+') do |f|
|
24
|
-
f.write(text)
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
def header_file(entity)
|
29
|
-
File.join(output_dir, format_name(entity, 'h'))
|
30
|
-
end
|
31
|
-
|
32
|
-
def implementation_file(entity)
|
33
|
-
File.join(output_dir, format_name(entity, 'm'))
|
34
|
-
end
|
35
|
-
|
36
|
-
def format_name(entity, extension)
|
37
|
-
raise NotImplemented
|
38
|
-
end
|
39
|
-
|
40
|
-
def header(entity)
|
41
|
-
render(header_template, entity)
|
42
|
-
end
|
43
|
-
|
44
|
-
def implementation(entity)
|
45
|
-
render(implementation_template, entity)
|
46
|
-
end
|
47
|
-
|
48
|
-
def render(template, entity)
|
49
|
-
ERB.new(template, 0, '-').result(entity.send(:binding))
|
50
|
-
end
|
51
|
-
|
52
|
-
def header_template
|
53
|
-
raise NotImplemented
|
54
|
-
end
|
55
|
-
|
56
|
-
def implementation_template
|
57
|
-
raise NotImplemented
|
58
|
-
end
|
59
|
-
|
60
|
-
def file_template(name)
|
61
|
-
File.read(File.expand_path("../#{name}.erb", __FILE__))
|
62
|
-
end
|
63
|
-
end
|
64
|
-
end
|
65
|
-
end
|
@@ -1,25 +0,0 @@
|
|
1
|
-
require 'moblues/generator/base'
|
2
|
-
|
3
|
-
module Moblues
|
4
|
-
module Generator
|
5
|
-
class Human < Base
|
6
|
-
def generate(entity)
|
7
|
-
write_header(entity) unless File.exists?(header_file(entity))
|
8
|
-
write_implementation(entity) unless File.exists?(implementation_file(entity))
|
9
|
-
end
|
10
|
-
|
11
|
-
private
|
12
|
-
def format_name(entity, extension)
|
13
|
-
"#{entity.name}.#{extension}"
|
14
|
-
end
|
15
|
-
|
16
|
-
def header_template
|
17
|
-
file_template('human_header.h')
|
18
|
-
end
|
19
|
-
|
20
|
-
def implementation_template
|
21
|
-
file_template('human_implementation.m')
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
@@ -1,36 +0,0 @@
|
|
1
|
-
require 'moblues/generator/base'
|
2
|
-
|
3
|
-
module Moblues
|
4
|
-
module Generator
|
5
|
-
class Machine < Base
|
6
|
-
def initialize(params)
|
7
|
-
@type_reader = Reader::Type.new
|
8
|
-
super(params)
|
9
|
-
end
|
10
|
-
|
11
|
-
def generate(entity)
|
12
|
-
write_header(entity)
|
13
|
-
write_implementation(entity)
|
14
|
-
end
|
15
|
-
|
16
|
-
private
|
17
|
-
attr_reader :type_reader
|
18
|
-
|
19
|
-
def format_name(entity, extension)
|
20
|
-
"_#{entity.name}.#{extension}"
|
21
|
-
end
|
22
|
-
|
23
|
-
def capitalized_name(relationship)
|
24
|
-
relationship.name.sub(/^./) { |first_character| first_character.upcase }
|
25
|
-
end
|
26
|
-
|
27
|
-
def header_template
|
28
|
-
file_template('machine_header.h')
|
29
|
-
end
|
30
|
-
|
31
|
-
def implementation_template
|
32
|
-
file_template('machine_implementation.m')
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
require 'moblues/generator/machine'
|
2
|
-
require 'moblues/generator/human'
|
3
|
-
|
4
|
-
module Moblues
|
5
|
-
module Generator
|
6
|
-
class Model
|
7
|
-
def initialize(params)
|
8
|
-
@human = Human.new(output_dir: params.fetch(:human_dir))
|
9
|
-
@machine = Machine.new(output_dir: params.fetch(:machine_dir))
|
10
|
-
end
|
11
|
-
|
12
|
-
def generate(entities)
|
13
|
-
entities.each do |entity|
|
14
|
-
human.generate(entity)
|
15
|
-
machine.generate(entity)
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
private
|
20
|
-
attr_reader :human, :machine
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
@@ -1,74 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
require 'moblues/generator/human'
|
3
|
-
require 'moblues/data_model'
|
4
|
-
|
5
|
-
describe Moblues::Generator::Human do
|
6
|
-
subject { described_class.new(output_dir: Fixtures.generated_dir) }
|
7
|
-
|
8
|
-
after do
|
9
|
-
Fixtures.delete_tmp_files(%w{Author.h Author.m})
|
10
|
-
end
|
11
|
-
|
12
|
-
describe '#generate' do
|
13
|
-
it 'generates a human header' do
|
14
|
-
subject.generate(entity)
|
15
|
-
|
16
|
-
expect(Fixtures.generated_file_content('Author.h')).to eq(Fixtures.expected_content('Author.h'))
|
17
|
-
end
|
18
|
-
|
19
|
-
it 'generates a human implementation' do
|
20
|
-
subject.generate(entity)
|
21
|
-
|
22
|
-
expect(Fixtures.generated_file_content('Author.m')).to eq(Fixtures.expected_content('Author.m'))
|
23
|
-
end
|
24
|
-
|
25
|
-
context 'if the header already exists' do
|
26
|
-
before do
|
27
|
-
File.open(File.join(Fixtures.generated_dir, 'Author.h'), 'w+') do |f|
|
28
|
-
f.write('do nothing')
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
it 'does not overwrite the header file' do
|
33
|
-
subject.generate(entity)
|
34
|
-
|
35
|
-
expect(Fixtures.generated_file_content('Author.h')).to eq('do nothing')
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
context 'if the implementation already exists' do
|
40
|
-
before do
|
41
|
-
File.open(File.join(Fixtures.generated_dir, 'Author.m'), 'w+') do |f|
|
42
|
-
f.write('do nothing')
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
it 'does not overwrite the implementation file' do
|
47
|
-
subject.generate(entity)
|
48
|
-
|
49
|
-
expect(Fixtures.generated_file_content('Author.m')).to eq('do nothing')
|
50
|
-
end
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
def entity
|
55
|
-
Moblues::DataModel::Entity.new(name: 'Author',
|
56
|
-
attributes: attributes,
|
57
|
-
relationships: relationships)
|
58
|
-
end
|
59
|
-
|
60
|
-
def attributes
|
61
|
-
[
|
62
|
-
Moblues::DataModel::Attribute.new(name: 'dob', type: :date),
|
63
|
-
Moblues::DataModel::Attribute.new(name: 'name', type: :string)
|
64
|
-
]
|
65
|
-
end
|
66
|
-
|
67
|
-
def relationships
|
68
|
-
[
|
69
|
-
Moblues::DataModel::Relationship.new(name: 'books', destination_entity: 'Book', to_many: true, ordered: true),
|
70
|
-
Moblues::DataModel::Relationship.new(name: 'essays', destination_entity: 'Book', to_many: true),
|
71
|
-
Moblues::DataModel::Relationship.new(name: 'publisher', destination_entity: 'Publisher')
|
72
|
-
]
|
73
|
-
end
|
74
|
-
end
|
@@ -1,27 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Moblues::Generator::Model do
|
4
|
-
describe '#generate' do
|
5
|
-
subject { described_class.new(human: human, machine: machine, human_dir: human_dir, machine_dir: machine_dir) }
|
6
|
-
|
7
|
-
let(:entities) { [build(:entity)] }
|
8
|
-
let(:entity) { entities.first }
|
9
|
-
let(:human_dir) { 'human/dir'}
|
10
|
-
let(:machine_dir) { 'machine/dir'}
|
11
|
-
|
12
|
-
let(:human) { double(Moblues::Generator::Human) }
|
13
|
-
let(:machine) { double(Moblues::Generator::Machine) }
|
14
|
-
|
15
|
-
before do
|
16
|
-
allow(Moblues::Generator::Human).to receive(:new).with(output_dir: human_dir) { human }
|
17
|
-
allow(Moblues::Generator::Machine).to receive(:new).with(output_dir: machine_dir) { machine }
|
18
|
-
end
|
19
|
-
|
20
|
-
it 'generates the human and machine files' do
|
21
|
-
expect(human).to receive(:generate).with(entity).once
|
22
|
-
expect(machine).to receive(:generate).with(entity).once
|
23
|
-
|
24
|
-
subject.generate(entities)
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
data/spec/resources/tmp/_Team.h
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
#import <Foundation/Foundation.h>
|
2
|
-
#import <CoreData/CoreData.h>
|
3
|
-
|
4
|
-
@class Person;
|
5
|
-
|
6
|
-
@interface _Team : NSManagedObject
|
7
|
-
|
8
|
-
@property (nonatomic, strong) NSSet *teamMembers;
|
9
|
-
@end
|
10
|
-
|
11
|
-
@interface _Team (CoreDataGeneratedAccessors)
|
12
|
-
|
13
|
-
- (void)addTeamMembersObject:(Person *)value;
|
14
|
-
- (void)removeTeamMembersObject:(Person *)value;
|
15
|
-
- (void)addTeamMembers:(NSSet *)values;
|
16
|
-
- (void)removeTeamMembers:(NSSet *)values;
|
17
|
-
|
18
|
-
@end
|