reality-model 1.0.0 → 1.1.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/lib/reality/model/model_element.rb +8 -0
- data/reality-model.gemspec +1 -1
- data/test/test_integration.rb +112 -0
- data/test/test_model_element.rb +38 -0
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8fe355b83ba162dc06b6f7c193d50bf95fa568d4
|
4
|
+
data.tar.gz: 47107dc95beadc82f578bfe6475248b76fc0352f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 06202bcdaa8795d589109d48e49b0d3fc1c77cb3e71b85ee9d43e4c2a518bef9692e6d6b61a50be863677fa79813b28277a9bc49f9e4f2b086ba938da40f0d68
|
7
|
+
data.tar.gz: 7cf867c73d8488815cbde92a1874a1c674d158ff8504a7c18073134d78ed113ba92a8f0a9208e2659e227e13a6ba51b2e67c97ce5f2842108bac7d59237d0778
|
@@ -130,6 +130,10 @@ class #{self.model_classname}
|
|
130
130
|
|
131
131
|
public
|
132
132
|
|
133
|
+
def <=>(other)
|
134
|
+
self.#{self.id_method} <=> other.#{self.id_method}
|
135
|
+
end
|
136
|
+
|
133
137
|
def options=(options)
|
134
138
|
options.each_pair do |k, v|
|
135
139
|
keys = k.to_s.split('.')
|
@@ -180,6 +184,10 @@ end
|
|
180
184
|
#{child.inverse_access_method}_map.values
|
181
185
|
end
|
182
186
|
|
187
|
+
def #{child.inverse_access_method}_#{Reality::Naming.pluralize(child.id_method)}
|
188
|
+
#{child.inverse_access_method}_map.keys
|
189
|
+
end
|
190
|
+
|
183
191
|
def #{child.access_method}?
|
184
192
|
!#{child.inverse_access_method}_map.empty?
|
185
193
|
end
|
data/reality-model.gemspec
CHANGED
@@ -0,0 +1,112 @@
|
|
1
|
+
require File.expand_path('../helper', __FILE__)
|
2
|
+
|
3
|
+
class Reality::Model::TestIntegration < Reality::Model::TestCase
|
4
|
+
|
5
|
+
module ResgenLogContainer
|
6
|
+
Reality::Logging.configure(ResgenLogContainer, ::Logger::WARN)
|
7
|
+
end
|
8
|
+
|
9
|
+
module ResgenFacetContainer
|
10
|
+
extend Reality::Facets::FacetContainer
|
11
|
+
end
|
12
|
+
|
13
|
+
module ResgenInstanceContainer
|
14
|
+
end
|
15
|
+
|
16
|
+
module ResgenModel
|
17
|
+
class Repository
|
18
|
+
def catalog(name, path, options = {}, &block)
|
19
|
+
Catalog.new(self, name, path, options, &block)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
class Catalog
|
24
|
+
def initialize(repository, name, path, options = {}, &block)
|
25
|
+
@path = path
|
26
|
+
perform_init(repository, name, options, &block)
|
27
|
+
end
|
28
|
+
|
29
|
+
attr_reader :path
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def test_create_no_defaults
|
34
|
+
Reality::Model::Repository.new(:Resgen,
|
35
|
+
ResgenModel,
|
36
|
+
:instance_container => ResgenInstanceContainer,
|
37
|
+
:facet_container => ResgenFacetContainer,
|
38
|
+
:log_container => ResgenLogContainer) do |r|
|
39
|
+
r.model_element(:repository)
|
40
|
+
r.model_element(:catalog, :repository, :custom_initialize => true)
|
41
|
+
r.model_element(:uibinder_file, :catalog, :id_method => :key)
|
42
|
+
r.model_element(:uibinder_parameter, :uibinder_file, :access_method => :parameters, :inverse_access_method => :parameter)
|
43
|
+
end
|
44
|
+
|
45
|
+
ResgenFacetContainer.facet(:gwt) do |facet|
|
46
|
+
facet.enhance(ResgenModel::Catalog) do
|
47
|
+
attr_writer :with_lookup
|
48
|
+
|
49
|
+
def with_lookup?
|
50
|
+
!!(@with_lookup ||= false)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
assert_equal ResgenInstanceContainer.repository_names, []
|
56
|
+
assert_equal ResgenInstanceContainer.repositories, []
|
57
|
+
|
58
|
+
repository = ResgenInstanceContainer.repository(:Planner) do |r|
|
59
|
+
r.enable_facets(:gwt)
|
60
|
+
r.catalog(:PlannerCatalog, 'user-experience/src/main/resources', 'gwt.with_lookup' => true) do |c|
|
61
|
+
c.uibinder_file(:SomeCell1) do |u|
|
62
|
+
u.parameter(:ParamB)
|
63
|
+
u.parameter(:ParamA)
|
64
|
+
u.parameter(:ParamC)
|
65
|
+
end
|
66
|
+
c.uibinder_file(:SomeCell2) do |u|
|
67
|
+
u.parameter(:ParamB)
|
68
|
+
u.parameter(:ParamA)
|
69
|
+
u.parameter(:ParamC)
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
assert_equal ResgenInstanceContainer.repository_names, ['Planner']
|
75
|
+
assert_equal ResgenInstanceContainer.repositories, [repository]
|
76
|
+
assert_equal ResgenInstanceContainer.repository_by_name(:Planner), repository
|
77
|
+
|
78
|
+
assert_equal repository.gwt?, true
|
79
|
+
assert_equal repository.respond_to?(:gwt), false
|
80
|
+
|
81
|
+
assert_equal repository.catalog_names, ['PlannerCatalog']
|
82
|
+
assert_equal repository.catalogs.size, 1
|
83
|
+
assert_equal repository.catalog_by_name?('PlannerCatalog'), true
|
84
|
+
|
85
|
+
catalog = repository.catalog_by_name('PlannerCatalog')
|
86
|
+
|
87
|
+
assert_equal catalog.gwt?, true
|
88
|
+
assert_equal catalog.respond_to?(:gwt), true
|
89
|
+
assert_equal catalog.gwt.with_lookup?, true
|
90
|
+
|
91
|
+
assert_equal catalog.repository, repository
|
92
|
+
assert_equal catalog.path, 'user-experience/src/main/resources'
|
93
|
+
|
94
|
+
assert_equal catalog.uibinder_file_keys, %w(SomeCell1 SomeCell2)
|
95
|
+
assert_equal catalog.uibinder_files.size, 2
|
96
|
+
assert_equal catalog.uibinder_file_by_key?('SomeCell1'), true
|
97
|
+
|
98
|
+
uibinder_file = catalog.uibinder_file_by_key('SomeCell1')
|
99
|
+
|
100
|
+
assert_equal uibinder_file.catalog, catalog
|
101
|
+
assert_equal uibinder_file.parameter_names, %w(ParamB ParamA ParamC)
|
102
|
+
assert_equal uibinder_file.parameters.size, 3
|
103
|
+
assert_equal uibinder_file.parameter_by_name?('ParamA'), true
|
104
|
+
|
105
|
+
assert_equal uibinder_file.parameters.collect { |p| p.name }, [:ParamB, :ParamA, :ParamC]
|
106
|
+
assert_equal uibinder_file.parameters.sort.collect { |p| p.name }, [:ParamA, :ParamB, :ParamC]
|
107
|
+
|
108
|
+
parameter = uibinder_file.parameter_by_name('ParamA')
|
109
|
+
|
110
|
+
assert_equal parameter.uibinder_file, uibinder_file
|
111
|
+
end
|
112
|
+
end
|
data/test/test_model_element.rb
CHANGED
@@ -137,6 +137,10 @@ class Reality::Model::TestModelElement < Reality::Model::TestCase
|
|
137
137
|
component_map.values
|
138
138
|
end
|
139
139
|
|
140
|
+
def component_names
|
141
|
+
component_map.keys
|
142
|
+
end
|
143
|
+
|
140
144
|
def components?
|
141
145
|
!component_map.empty?
|
142
146
|
end
|
@@ -178,6 +182,10 @@ CODE
|
|
178
182
|
component_map.values
|
179
183
|
end
|
180
184
|
|
185
|
+
def component_names
|
186
|
+
component_map.keys
|
187
|
+
end
|
188
|
+
|
181
189
|
def components?
|
182
190
|
!component_map.empty?
|
183
191
|
end
|
@@ -217,6 +225,10 @@ class Bundle
|
|
217
225
|
|
218
226
|
public
|
219
227
|
|
228
|
+
def <=>(other)
|
229
|
+
self.name <=> other.name
|
230
|
+
end
|
231
|
+
|
220
232
|
def options=(options)
|
221
233
|
options.each_pair do |k, v|
|
222
234
|
keys = k.to_s.split('.')
|
@@ -260,6 +272,10 @@ class Bundle
|
|
260
272
|
|
261
273
|
public
|
262
274
|
|
275
|
+
def <=>(other)
|
276
|
+
self.name <=> other.name
|
277
|
+
end
|
278
|
+
|
263
279
|
def options=(options)
|
264
280
|
options.each_pair do |k, v|
|
265
281
|
keys = k.to_s.split('.')
|
@@ -300,6 +316,10 @@ class Bundle
|
|
300
316
|
|
301
317
|
public
|
302
318
|
|
319
|
+
def <=>(other)
|
320
|
+
self.name <=> other.name
|
321
|
+
end
|
322
|
+
|
303
323
|
def options=(options)
|
304
324
|
options.each_pair do |k, v|
|
305
325
|
keys = k.to_s.split('.')
|
@@ -344,6 +364,10 @@ class Bundle
|
|
344
364
|
|
345
365
|
public
|
346
366
|
|
367
|
+
def <=>(other)
|
368
|
+
self.name <=> other.name
|
369
|
+
end
|
370
|
+
|
347
371
|
def options=(options)
|
348
372
|
options.each_pair do |k, v|
|
349
373
|
keys = k.to_s.split('.')
|
@@ -403,6 +427,10 @@ class Project
|
|
403
427
|
bundle_map.values
|
404
428
|
end
|
405
429
|
|
430
|
+
def bundle_names
|
431
|
+
bundle_map.keys
|
432
|
+
end
|
433
|
+
|
406
434
|
def bundles?
|
407
435
|
!bundle_map.empty?
|
408
436
|
end
|
@@ -420,6 +448,10 @@ class Project
|
|
420
448
|
|
421
449
|
public
|
422
450
|
|
451
|
+
def <=>(other)
|
452
|
+
self.name <=> other.name
|
453
|
+
end
|
454
|
+
|
423
455
|
def options=(options)
|
424
456
|
options.each_pair do |k, v|
|
425
457
|
keys = k.to_s.split('.')
|
@@ -459,13 +491,16 @@ CODE
|
|
459
491
|
assert_equal true, ResgenContainer.const_defined?(:Project)
|
460
492
|
assert_equal true, ResgenContainer.const_defined?(:Bundle)
|
461
493
|
|
494
|
+
assert_true ResgenContainer::Project.instance_methods.include?(:<=>)
|
462
495
|
assert_true ResgenContainer::Project.instance_methods.include?(:name)
|
463
496
|
assert_true ResgenContainer::Project.instance_methods.include?(:bundles)
|
497
|
+
assert_true ResgenContainer::Project.instance_methods.include?(:bundle_names)
|
464
498
|
assert_true ResgenContainer::Project.instance_methods.include?(:bundle_by_name)
|
465
499
|
assert_true ResgenContainer::Project.instance_methods.include?(:bundle_by_name?)
|
466
500
|
assert_true ResgenContainer::Project.instance_methods.include?(:bundle)
|
467
501
|
assert_false ResgenContainer::Project.instance_methods.include?(:perform_init)
|
468
502
|
|
503
|
+
assert_true ResgenContainer::Bundle.instance_methods.include?(:<=>)
|
469
504
|
assert_true ResgenContainer::Bundle.instance_methods.include?(:project)
|
470
505
|
assert_true ResgenContainer::Bundle.instance_methods.include?(:name)
|
471
506
|
assert_false ResgenContainer::Bundle.instance_methods.include?(:perform_init)
|
@@ -495,9 +530,11 @@ CODE
|
|
495
530
|
assert_equal ResgenContainer2::Prj, model1.model
|
496
531
|
assert_equal ResgenContainer2::Bundle, model2.model
|
497
532
|
|
533
|
+
assert_true ResgenContainer2::Prj.instance_methods.include?(:<=>)
|
498
534
|
assert_true ResgenContainer2::Prj.instance_methods.include?(:key)
|
499
535
|
assert_false ResgenContainer2::Prj.instance_methods.include?(:name)
|
500
536
|
assert_true ResgenContainer2::Prj.instance_methods.include?(:bnds)
|
537
|
+
assert_true ResgenContainer2::Prj.instance_methods.include?(:bnd_keys)
|
501
538
|
assert_true ResgenContainer2::Prj.instance_methods.include?(:bnd_by_key)
|
502
539
|
assert_true ResgenContainer2::Prj.instance_methods.include?(:bnd_by_key?)
|
503
540
|
|
@@ -505,6 +542,7 @@ CODE
|
|
505
542
|
assert_false ResgenContainer2::Prj.instance_methods.include?(:bundle)
|
506
543
|
assert_false ResgenContainer2::Prj.instance_methods.include?(:bnd)
|
507
544
|
|
545
|
+
assert_true ResgenContainer2::Bundle.instance_methods.include?(:<=>)
|
508
546
|
assert_true ResgenContainer2::Bundle.instance_methods.include?(:prj)
|
509
547
|
assert_true ResgenContainer2::Bundle.instance_methods.include?(:key)
|
510
548
|
assert_false ResgenContainer2::Bundle.instance_methods.include?(:name)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: reality-model
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Peter Donald
|
@@ -115,6 +115,7 @@ files:
|
|
115
115
|
- lib/reality/model/repository.rb
|
116
116
|
- reality-model.gemspec
|
117
117
|
- test/helper.rb
|
118
|
+
- test/test_integration.rb
|
118
119
|
- test/test_model_element.rb
|
119
120
|
- test/test_repository.rb
|
120
121
|
homepage: https://github.com/realityforge/reality-model
|