activefacts 0.8.18 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. checksums.yaml +8 -8
  2. data/Rakefile +0 -8
  3. data/examples/CQL/CompanyDirectorEmployee.cql +12 -8
  4. data/examples/CQL/Metamodel.cql +40 -24
  5. data/examples/CQL/OilSupply.cql +10 -8
  6. data/examples/CQL/unit.cql +52 -51
  7. data/lib/activefacts/cql/LexicalRules.treetop +1 -1
  8. data/lib/activefacts/cql/compiler.rb +1 -1
  9. data/lib/activefacts/cql/compiler/clause.rb +16 -24
  10. data/lib/activefacts/cql/compiler/constraint.rb +4 -4
  11. data/lib/activefacts/cql/compiler/entity_type.rb +16 -16
  12. data/lib/activefacts/cql/compiler/expression.rb +3 -3
  13. data/lib/activefacts/cql/compiler/fact.rb +1 -1
  14. data/lib/activefacts/cql/compiler/fact_type.rb +14 -4
  15. data/lib/activefacts/cql/compiler/shared.rb +1 -1
  16. data/lib/activefacts/cql/compiler/value_type.rb +2 -2
  17. data/lib/activefacts/generate/cql.rb +10 -34
  18. data/lib/activefacts/generate/helpers/oo.rb +10 -6
  19. data/lib/activefacts/generate/helpers/ordered.rb +32 -6
  20. data/lib/activefacts/generate/json.rb +2 -2
  21. data/lib/activefacts/generate/ruby.rb +7 -15
  22. data/lib/activefacts/generate/transform/surrogate.rb +7 -7
  23. data/lib/activefacts/input/orm.rb +23 -26
  24. data/lib/activefacts/persistence/index.rb +1 -1
  25. data/lib/activefacts/persistence/reference.rb +5 -2
  26. data/lib/activefacts/version.rb +3 -3
  27. data/lib/activefacts/vocabulary/extensions.rb +59 -19
  28. data/lib/activefacts/vocabulary/metamodel.rb +30 -14
  29. data/spec/cql/parser/bad_literals_spec.rb +1 -1
  30. data/spec/cql/parser/expressions_spec.rb +1 -1
  31. data/spec/cql_dm_spec.rb +15 -0
  32. data/spec/cql_mysql_spec.rb +1 -1
  33. data/spec/cqldump_spec.rb +12 -12
  34. data/spec/norma_cql_spec.rb +0 -1
  35. data/spec/norma_ruby_sql_spec.rb +3 -2
  36. data/spec/norma_tables_spec.rb +1 -1
  37. metadata +78 -127
  38. data/examples/CQL/JoinEquality.cql +0 -35
  39. data/examples/CQL/MonthInSeason.cql +0 -23
  40. data/examples/CQL/Moon.cql +0 -23
  41. data/examples/CQL/SubtypePI.cql +0 -31
  42. data/examples/CQL/Tests.Test5.Load.cql +0 -38
@@ -120,7 +120,7 @@ module ActiveFacts
120
120
  value_type :length => 256
121
121
  end
122
122
 
123
- class TransactionTiming < String
123
+ class TransactionPhase < String
124
124
  value_type
125
125
  restrict 'assert', 'commit'
126
126
  end
@@ -162,12 +162,16 @@ module ActiveFacts
162
162
  has_one :implication_rule # See ImplicationRule.all_concept
163
163
  end
164
164
 
165
- class Constraint < Concept
165
+ class Constraint
166
+ identified_by :concept
167
+ one_to_one :concept, :mandatory => true # See Concept.constraint
166
168
  has_one :name # See Name.all_constraint
167
169
  has_one :vocabulary # See Vocabulary.all_constraint
168
170
  end
169
171
 
170
- class ContextNote < Concept
172
+ class ContextNote
173
+ identified_by :concept
174
+ one_to_one :concept, :mandatory => true # See Concept.context_note
171
175
  has_one :context_note_kind, :mandatory => true # See ContextNoteKind.all_context_note
172
176
  has_one :discussion, :mandatory => true # See Discussion.all_context_note
173
177
  has_one :relevant_concept, :class => Concept # See Concept.all_context_note_as_relevant_concept
@@ -180,12 +184,16 @@ module ActiveFacts
180
184
  has_one :enforcement_code, :mandatory => true # See EnforcementCode.all_enforcement
181
185
  end
182
186
 
183
- class Fact < Concept
187
+ class Fact
188
+ identified_by :concept
189
+ one_to_one :concept, :mandatory => true # See Concept.fact
184
190
  has_one :fact_type, :mandatory => true # See FactType.all_fact
185
191
  has_one :population, :mandatory => true # See Population.all_fact
186
192
  end
187
193
 
188
- class FactType < Concept
194
+ class FactType
195
+ identified_by :concept
196
+ one_to_one :concept, :mandatory => true # See Concept.fact_type
189
197
  end
190
198
 
191
199
  class ImplicationRule
@@ -193,7 +201,9 @@ module ActiveFacts
193
201
  one_to_one :implication_rule_name, :mandatory => true # See ImplicationRuleName.implication_rule
194
202
  end
195
203
 
196
- class Instance < Concept
204
+ class Instance
205
+ identified_by :concept
206
+ one_to_one :concept, :mandatory => true # See Concept.instance
197
207
  one_to_one :fact # See Fact.instance
198
208
  has_one :object_type, :mandatory => true # See ObjectType.all_instance
199
209
  has_one :population, :mandatory => true # See Population.all_instance
@@ -217,7 +227,9 @@ module ActiveFacts
217
227
  has_one :role_sequence, :mandatory => true # See RoleSequence.all_presence_constraint
218
228
  end
219
229
 
220
- class Query < Concept
230
+ class Query
231
+ identified_by :concept
232
+ one_to_one :concept, :mandatory => true # See Concept.query
221
233
  end
222
234
 
223
235
  class Reading
@@ -235,8 +247,9 @@ module ActiveFacts
235
247
  has_one :role # See Role.all_ring_constraint
236
248
  end
237
249
 
238
- class Role < Concept
250
+ class Role
239
251
  identified_by :fact_type, :ordinal
252
+ one_to_one :concept, :mandatory => true # See Concept.role
240
253
  has_one :fact_type, :mandatory => true # See FactType.all_role
241
254
  one_to_one :link_fact_type, :counterpart => :implying_role # See LinkFactType.implying_role
242
255
  has_one :object_type, :mandatory => true # See ObjectType.all_role
@@ -274,8 +287,10 @@ module ActiveFacts
274
287
  has_one :superset_role_sequence, :class => RoleSequence, :mandatory => true # See RoleSequence.all_subset_constraint_as_superset_role_sequence
275
288
  end
276
289
 
277
- class Unit < Concept
290
+ class Unit
291
+ identified_by :concept
278
292
  has_one :coefficient # See Coefficient.all_unit
293
+ one_to_one :concept, :mandatory => true # See Concept.unit
279
294
  has_one :ephemera_url, :class => EphemeraURL # See EphemeraURL.all_unit
280
295
  maybe :is_fundamental
281
296
  one_to_one :name, :mandatory => true # See Name.unit
@@ -375,8 +390,9 @@ module ActiveFacts
375
390
  class ORMDiagram < Diagram
376
391
  end
377
392
 
378
- class ObjectType < Concept
393
+ class ObjectType
379
394
  identified_by :vocabulary, :name
395
+ one_to_one :concept, :mandatory => true # See Concept.object_type
380
396
  maybe :is_independent
381
397
  has_one :name, :mandatory => true # See Name.all_object_type
382
398
  has_one :pronoun # See Pronoun.all_object_type
@@ -399,8 +415,9 @@ module ActiveFacts
399
415
  has_one :step, :counterpart => :incidental_play # See Step.all_incidental_play
400
416
  end
401
417
 
402
- class Population < Concept
418
+ class Population
403
419
  identified_by :vocabulary, :name
420
+ one_to_one :concept, :mandatory => true # See Concept.population
404
421
  has_one :name, :mandatory => true # See Name.all_population
405
422
  has_one :vocabulary # See Vocabulary.all_population
406
423
  end
@@ -411,7 +428,7 @@ module ActiveFacts
411
428
  end
412
429
 
413
430
  class RingConstraintShape < ConstraintShape
414
- has_one :fact_type, :mandatory => true # See FactType.all_ring_constraint_shape
431
+ has_one :fact_type_shape, :mandatory => true # See FactTypeShape.all_ring_constraint_shape
415
432
  end
416
433
 
417
434
  class RoleDisplay
@@ -484,7 +501,6 @@ module ActiveFacts
484
501
 
485
502
  class EntityType < DomainObjectType
486
503
  one_to_one :fact_type # See FactType.entity_type
487
- maybe :is_implied_by_objectification
488
504
  end
489
505
 
490
506
  class TypeInheritance < FactType
@@ -499,7 +515,7 @@ module ActiveFacts
499
515
  has_one :length # See Length.all_value_type
500
516
  has_one :scale # See Scale.all_value_type
501
517
  has_one :supertype, :class => ValueType # See ValueType.all_value_type_as_supertype
502
- has_one :transaction_timing # See TransactionTiming.all_value_type
518
+ has_one :transaction_phase # See TransactionPhase.all_value_type
503
519
  has_one :unit # See Unit.all_value_type
504
520
  one_to_one :value_constraint # See ValueConstraint.value_type
505
521
  end
@@ -17,7 +17,7 @@ describe "Parsing Invalid Numbers and Strings" do
17
17
 
18
18
  it "should fail to parse a hexadecimal number containing non-hexadecimal digits" do
19
19
  "aa is written as b(0xDice);".
20
- should fail_to_parse /Expected (.|\n)* at .* after aa is written as b\(0$/
20
+ should fail_to_parse /Expected \[0-9A-Fa-f\] at .* after aa is written as b\(0xD$/
21
21
  end
22
22
 
23
23
  it "should fail to parse a negative number with an intervening space" do
@@ -115,7 +115,7 @@ describe "ASTs from Derived Fact Types with expressions" do
115
115
  it "should fail to parse a contracted comparison that doesn't follow a role" do
116
116
  %q{
117
117
  Director is old: Person directs company, Person is of Age considerable > 3*20;
118
- }.should fail_to_parse /Expected (.|\n)* after (.|\n)* Age considerable $/
118
+ }.should fail_to_parse /Expected (.|\n)* after (.|\n)* Age considerable > 3\*20;\n *$/
119
119
  end
120
120
 
121
121
  it "should parse pre and post-qualifiers and leading and trailing adjectives with contracted comparisons" do
@@ -23,6 +23,8 @@
23
23
  # so if the final query is what you're after, then you'll have to
24
24
  # hook those both instead.
25
25
 
26
+ if false
27
+
26
28
  require 'spec_helper'
27
29
  require 'stringio'
28
30
  require 'activefacts/vocabulary'
@@ -32,6 +34,17 @@ require 'activefacts/generate/dm'
32
34
  require 'dm-core'
33
35
  require 'dm-core/spec/lib/spec_helper'
34
36
 
37
+ #def SecureRandom.uuid
38
+ # @@counter ||= 99999999999
39
+ # h = "%032X" % @@counter
40
+ # @@counter -= 1
41
+ # h.
42
+ # sub(
43
+ # @@format_pattern ||= /(........)(....)(....)(....)(............)/,
44
+ # @@format_string ||= '\1-\2-\3-\4-\5'
45
+ # )
46
+ #end
47
+
35
48
  describe "CQL Loader with DataMapper output" do
36
49
  cql_failures = { # These CQL files can't be compiled
37
50
  }
@@ -119,3 +132,5 @@ describe "CQL Loader with DataMapper output" do
119
132
  end
120
133
  end
121
134
  end
135
+
136
+ end # if false
@@ -31,7 +31,7 @@ describe "CQL Loader with SQL output" do
31
31
  pattern = ENV["AFTESTS"] || "*"
32
32
  Dir["examples/CQL/#{pattern}.cql"].each do |cql_file|
33
33
  actual_file = cql_file.sub(%r{examples/CQL/(.*).cql}, 'spec/actual/\1.my.sql')
34
- expected_file = cql_file.sub(%r{examples/CQL/(.*).cql\Z}, 'examples/MySQL/\1.sql')
34
+ expected_file = cql_file.sub(%r{examples/CQL/(.*).cql\Z}, 'examples/MySQL/\1.my.sql')
35
35
 
36
36
  next unless ENV["AFTESTS"] || File.exists?(expected_file)
37
37
 
@@ -16,8 +16,8 @@ describe "CQL Dumper" do
16
16
  before :each do
17
17
  @constellation = ActiveFacts::API::Constellation.new(ActiveFacts::Metamodel)
18
18
  @vocabulary = @constellation.Vocabulary("TestVocab")
19
- @string_type = @constellation.ValueType(@vocabulary, "String", :guid => :new)
20
- @integer_type = @constellation.ValueType(@vocabulary, "Integer", :guid => :new)
19
+ @string_type = @constellation.ValueType(@vocabulary, "String", :concept => :new)
20
+ @integer_type = @constellation.ValueType(@vocabulary, "Integer", :concept => :new)
21
21
  @dumper = ActiveFacts::Generate::CQL.new(@constellation)
22
22
  end
23
23
 
@@ -29,7 +29,7 @@ describe "CQL Dumper" do
29
29
  end
30
30
 
31
31
  it "should dump a String ValueType" do
32
- vt = @constellation.ValueType(@vocabulary, "Name", :supertype => @string_type, :length => 20, :guid => :new)
32
+ vt = @constellation.ValueType(@vocabulary, "Name", :supertype => @string_type, :length => 20, :concept => :new)
33
33
  vt.supertype = @string_type
34
34
  vt.length = 20
35
35
  #p vt.class.roles.keys.sort_by{|s| s.to_s}
@@ -46,7 +46,7 @@ END
46
46
  end
47
47
 
48
48
  it "should dump an Integer ValueType" do
49
- vt = @constellation.ValueType(@vocabulary, "Count", :supertype => @integer_type, :length => 32, :guid => :new)
49
+ vt = @constellation.ValueType(@vocabulary, "Count", :supertype => @integer_type, :length => 32, :concept => :new)
50
50
  cql.should == <<END
51
51
  vocabulary TestVocab;
52
52
 
@@ -60,9 +60,9 @@ END
60
60
 
61
61
  def value_type(name, datatype = "String", length = 0, scale = 0)
62
62
  dt = @constellation.ValueType[[@vocabulary.identifying_role_values, datatype]] ||
63
- @constellation.ValueType(@vocabulary, datatype, :guid => :new)
63
+ @constellation.ValueType(@vocabulary, datatype, :concept => :new)
64
64
  vt = @constellation.ValueType[[@vocabulary.identifying_role_values, name]] ||
65
- @constellation.ValueType(@vocabulary, name, :supertype => dt, :guid => :new)
65
+ @constellation.ValueType(@vocabulary, name, :supertype => dt, :concept => :new)
66
66
  vt.length = length if length != 0
67
67
  vt.scale = scale if scale != 0
68
68
  vt
@@ -71,8 +71,8 @@ END
71
71
  def one_to_many(one, many, reading)
72
72
  # Combine them with a fact type:
73
73
  ft = @constellation.FactType(:new)
74
- role0 = @constellation.Role(ft, 0, :object_type => one, :guid => :new)
75
- role1 = @constellation.Role(ft, 1, :object_type => many, :guid => :new)
74
+ role0 = @constellation.Role(ft, 0, :object_type => one, :concept => :new)
75
+ role1 = @constellation.Role(ft, 1, :object_type => many, :concept => :new)
76
76
 
77
77
  # Make a role sequence:
78
78
  rs = @constellation.RoleSequence(:new)
@@ -93,8 +93,8 @@ END
93
93
  def one_to_one(first, second, reading)
94
94
  # Combine them with a fact type:
95
95
  ft = @constellation.FactType(:new)
96
- role0 = @constellation.Role(ft, 0, :object_type => first, :guid => :new)
97
- role1 = @constellation.Role(ft, 1, :object_type => second, :guid => :new)
96
+ role0 = @constellation.Role(ft, 0, :object_type => first, :concept => :new)
97
+ role1 = @constellation.Role(ft, 1, :object_type => second, :concept => :new)
98
98
 
99
99
  # Make a role sequence for the reading
100
100
  rs = @constellation.RoleSequence(:new)
@@ -144,8 +144,8 @@ END
144
144
  end
145
145
 
146
146
  it "should dump an named EntityType" do
147
- vt = @constellation.ValueType(@vocabulary, "Name", :supertype => @string_type, :length => 20, :guid => :new)
148
- et = @constellation.EntityType(@vocabulary, "Company", :guid => :new)
147
+ vt = @constellation.ValueType(@vocabulary, "Name", :supertype => @string_type, :length => 20, :concept => :new)
148
+ et = @constellation.EntityType(@vocabulary, "Company", :concept => :new)
149
149
 
150
150
  ft = one_to_one(et, vt, "{0} is called {1}")
151
151
 
@@ -17,7 +17,6 @@ describe "Norma Loader" do
17
17
  orm_cql_failures = {
18
18
  # "OddIdentifier" => "Strange identification pattern is incorrectly verbalised to CQL", # Fixed
19
19
  "UnaryIdentification" => "No PI for VisitStatus",
20
- "Supervision" => "Derivations are not imported from NORMA",
21
20
  }
22
21
  # Generate and return the CQL for the given vocabulary
23
22
  def cql(vocabulary)
@@ -23,7 +23,7 @@ describe "Column lists from absorption compared with Ruby's" do
23
23
  # Generate and return the Ruby for the given vocabulary
24
24
  def ruby(vocabulary)
25
25
  output = StringIO.new
26
- @dumper = ActiveFacts::Generate::RUBY.new(vocabulary.constellation, "sql")
26
+ @dumper = ActiveFacts::Generate::RUBY.new(vocabulary.constellation, "mapping=sql")
27
27
  @dumper.generate(output)
28
28
  output.rewind
29
29
  output.read
@@ -89,7 +89,8 @@ describe "Column lists from absorption compared with Ruby's" do
89
89
  mod = eval(vocabulary.name)
90
90
  ruby_tables = mod.constants.map{|n|
91
91
  c = mod.const_get(n)
92
- c.class == Class && c.is_table ? c : nil
92
+ next unless c.class == Class
93
+ c.is_table ? c : nil
93
94
  }.compact.sort_by{|c|
94
95
  c.basename
95
96
  }
@@ -18,7 +18,7 @@ require 'activefacts/input/orm'
18
18
  orm_failures = {
19
19
  }
20
20
  norma_table_exceptions = {
21
- "Metamodel" => [%w{Concept}, %w{Agreement Enforcement}], # ActiveFacts absorbs Agreement into ContextNote, Enforcement into Constraint
21
+ "Metamodel" => [%w{Query}, %w{Agreement Enforcement Comment ContactReport ID Money Nr Photo ReferenceCheck Resource TimeDivision}], # ActiveFacts absorbs Agreement into ContextNote, Enforcement into Constraint, lots into Concept
22
22
  "MetamodelNext" => [[], %w{Agreement Enforcement TypeInheritance}],
23
23
  "Orienteering" => [%w{Punch}, []], # NORMA doesn't make a table for the IDENTITY field
24
24
  "OrienteeringER" => [%w{SeriesEvent}, []], # NORMA doesn't make a table for the IDENTITY field
metadata CHANGED
@@ -1,34 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activefacts
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.18
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Clifford Heath
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-11-15 00:00:00.000000000 Z
11
+ date: 2014-08-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activefacts-api
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
+ - - ! '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '1.3'
17
20
  - - ~>
18
21
  - !ruby/object:Gem::Version
19
- version: 0.9.8
22
+ version: '1'
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '1.3'
24
30
  - - ~>
25
31
  - !ruby/object:Gem::Version
26
- version: 0.9.8
32
+ version: '1'
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: rbtree-pure
29
35
  requirement: !ruby/object:Gem::Requirement
30
36
  requirements:
31
37
  - - ! '>='
38
+ - !ruby/object:Gem::Version
39
+ version: 0.1.1
40
+ - - ~>
32
41
  - !ruby/object:Gem::Version
33
42
  version: '0'
34
43
  type: :runtime
@@ -36,6 +45,9 @@ dependencies:
36
45
  version_requirements: !ruby/object:Gem::Requirement
37
46
  requirements:
38
47
  - - ! '>='
48
+ - !ruby/object:Gem::Version
49
+ version: 0.1.1
50
+ - - ~>
39
51
  - !ruby/object:Gem::Version
40
52
  version: '0'
41
53
  - !ruby/object:Gem::Dependency
@@ -45,6 +57,9 @@ dependencies:
45
57
  - - ! '>='
46
58
  - !ruby/object:Gem::Version
47
59
  version: 1.4.14
60
+ - - ~>
61
+ - !ruby/object:Gem::Version
62
+ version: '1.4'
48
63
  type: :runtime
49
64
  prerelease: false
50
65
  version_requirements: !ruby/object:Gem::Requirement
@@ -52,230 +67,171 @@ dependencies:
52
67
  - - ! '>='
53
68
  - !ruby/object:Gem::Version
54
69
  version: 1.4.14
70
+ - - ~>
71
+ - !ruby/object:Gem::Version
72
+ version: '1.4'
55
73
  - !ruby/object:Gem::Dependency
56
74
  name: nokogiri
57
75
  requirement: !ruby/object:Gem::Requirement
58
76
  requirements:
59
77
  - - ! '>='
60
78
  - !ruby/object:Gem::Version
61
- version: '0'
79
+ version: '1.6'
80
+ - - ~>
81
+ - !ruby/object:Gem::Version
82
+ version: '1'
62
83
  type: :runtime
63
84
  prerelease: false
64
85
  version_requirements: !ruby/object:Gem::Requirement
65
86
  requirements:
66
87
  - - ! '>='
67
88
  - !ruby/object:Gem::Version
68
- version: '0'
89
+ version: '1.6'
90
+ - - ~>
91
+ - !ruby/object:Gem::Version
92
+ version: '1'
69
93
  - !ruby/object:Gem::Dependency
70
94
  name: rake
71
95
  requirement: !ruby/object:Gem::Requirement
72
96
  requirements:
73
- - - ! '>='
97
+ - - ~>
74
98
  - !ruby/object:Gem::Version
75
- version: '0'
99
+ version: '10'
76
100
  type: :runtime
77
101
  prerelease: false
78
102
  version_requirements: !ruby/object:Gem::Requirement
79
103
  requirements:
80
- - - ! '>='
104
+ - - ~>
81
105
  - !ruby/object:Gem::Version
82
- version: '0'
106
+ version: '10'
83
107
  - !ruby/object:Gem::Dependency
84
108
  name: debugger
85
109
  requirement: !ruby/object:Gem::Requirement
86
110
  requirements:
87
- - - ! '>='
111
+ - - ~>
88
112
  - !ruby/object:Gem::Version
89
- version: '0'
113
+ version: '1'
90
114
  type: :development
91
115
  prerelease: false
92
116
  version_requirements: !ruby/object:Gem::Requirement
93
117
  requirements:
94
- - - ! '>='
118
+ - - ~>
95
119
  - !ruby/object:Gem::Version
96
- version: '0'
120
+ version: '1'
97
121
  - !ruby/object:Gem::Dependency
98
122
  name: activesupport
99
123
  requirement: !ruby/object:Gem::Requirement
100
124
  requirements:
101
- - - ! '>='
125
+ - - ~>
102
126
  - !ruby/object:Gem::Version
103
- version: '0'
127
+ version: '4'
104
128
  type: :development
105
129
  prerelease: false
106
130
  version_requirements: !ruby/object:Gem::Requirement
107
131
  requirements:
108
- - - ! '>='
132
+ - - ~>
109
133
  - !ruby/object:Gem::Version
110
- version: '0'
134
+ version: '4'
111
135
  - !ruby/object:Gem::Dependency
112
136
  name: dm-core
113
137
  requirement: !ruby/object:Gem::Requirement
114
138
  requirements:
115
139
  - - ! '>='
116
140
  - !ruby/object:Gem::Version
117
- version: '0'
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - ! '>='
123
- - !ruby/object:Gem::Version
124
- version: '0'
125
- - !ruby/object:Gem::Dependency
126
- name: dm-constraints
127
- requirement: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - ! '>='
141
+ version: '1.2'
142
+ - - ~>
130
143
  - !ruby/object:Gem::Version
131
- version: '0'
144
+ version: '1'
132
145
  type: :development
133
146
  prerelease: false
134
147
  version_requirements: !ruby/object:Gem::Requirement
135
148
  requirements:
136
149
  - - ! '>='
137
150
  - !ruby/object:Gem::Version
138
- version: '0'
139
- - !ruby/object:Gem::Dependency
140
- name: dm-migrations
141
- requirement: !ruby/object:Gem::Requirement
142
- requirements:
143
- - - ! '>='
144
- - !ruby/object:Gem::Version
145
- version: '0'
146
- type: :development
147
- prerelease: false
148
- version_requirements: !ruby/object:Gem::Requirement
149
- requirements:
150
- - - ! '>='
151
+ version: '1.2'
152
+ - - ~>
151
153
  - !ruby/object:Gem::Version
152
- version: '0'
154
+ version: '1'
153
155
  - !ruby/object:Gem::Dependency
154
- name: jeweler
156
+ name: dm-constraints
155
157
  requirement: !ruby/object:Gem::Requirement
156
158
  requirements:
157
159
  - - ! '>='
158
160
  - !ruby/object:Gem::Version
159
- version: '0'
160
- type: :development
161
- prerelease: false
162
- version_requirements: !ruby/object:Gem::Requirement
163
- requirements:
164
- - - ! '>='
165
- - !ruby/object:Gem::Version
166
- version: '0'
167
- - !ruby/object:Gem::Dependency
168
- name: rspec
169
- requirement: !ruby/object:Gem::Requirement
170
- requirements:
161
+ version: '1.2'
171
162
  - - ~>
172
163
  - !ruby/object:Gem::Version
173
- version: 2.11.0
164
+ version: '1'
174
165
  type: :development
175
166
  prerelease: false
176
167
  version_requirements: !ruby/object:Gem::Requirement
177
- requirements:
178
- - - ~>
179
- - !ruby/object:Gem::Version
180
- version: 2.11.0
181
- - !ruby/object:Gem::Dependency
182
- name: activefacts-api
183
- requirement: !ruby/object:Gem::Requirement
184
- requirements:
185
- - - ~>
186
- - !ruby/object:Gem::Version
187
- version: 0.9.1
188
- type: :runtime
189
- prerelease: false
190
- version_requirements: !ruby/object:Gem::Requirement
191
- requirements:
192
- - - ~>
193
- - !ruby/object:Gem::Version
194
- version: 0.9.1
195
- - !ruby/object:Gem::Dependency
196
- name: treetop
197
- requirement: !ruby/object:Gem::Requirement
198
168
  requirements:
199
169
  - - ! '>='
200
170
  - !ruby/object:Gem::Version
201
- version: '0'
202
- type: :runtime
203
- prerelease: false
204
- version_requirements: !ruby/object:Gem::Requirement
205
- requirements:
206
- - - ! '>='
171
+ version: '1.2'
172
+ - - ~>
207
173
  - !ruby/object:Gem::Version
208
- version: '0'
174
+ version: '1'
209
175
  - !ruby/object:Gem::Dependency
210
- name: nokogiri
176
+ name: dm-migrations
211
177
  requirement: !ruby/object:Gem::Requirement
212
178
  requirements:
213
179
  - - ! '>='
214
180
  - !ruby/object:Gem::Version
215
- version: '0'
216
- type: :runtime
217
- prerelease: false
218
- version_requirements: !ruby/object:Gem::Requirement
219
- requirements:
220
- - - ! '>='
221
- - !ruby/object:Gem::Version
222
- version: '0'
223
- - !ruby/object:Gem::Dependency
224
- name: rspec
225
- requirement: !ruby/object:Gem::Requirement
226
- requirements:
181
+ version: '1.2'
227
182
  - - ~>
228
183
  - !ruby/object:Gem::Version
229
- version: 2.3.0
184
+ version: '1'
230
185
  type: :development
231
186
  prerelease: false
232
187
  version_requirements: !ruby/object:Gem::Requirement
233
188
  requirements:
234
- - - ~>
235
- - !ruby/object:Gem::Version
236
- version: 2.3.0
237
- - !ruby/object:Gem::Dependency
238
- name: bundler
239
- requirement: !ruby/object:Gem::Requirement
240
- requirements:
241
- - - ~>
189
+ - - ! '>='
242
190
  - !ruby/object:Gem::Version
243
- version: 1.0.0
244
- type: :development
245
- prerelease: false
246
- version_requirements: !ruby/object:Gem::Requirement
247
- requirements:
191
+ version: '1.2'
248
192
  - - ~>
249
193
  - !ruby/object:Gem::Version
250
- version: 1.0.0
194
+ version: '1'
251
195
  - !ruby/object:Gem::Dependency
252
196
  name: jeweler
253
197
  requirement: !ruby/object:Gem::Requirement
254
198
  requirements:
199
+ - - ! '>='
200
+ - !ruby/object:Gem::Version
201
+ version: '2.0'
255
202
  - - ~>
256
203
  - !ruby/object:Gem::Version
257
- version: 1.5.2
204
+ version: '2'
258
205
  type: :development
259
206
  prerelease: false
260
207
  version_requirements: !ruby/object:Gem::Requirement
261
208
  requirements:
209
+ - - ! '>='
210
+ - !ruby/object:Gem::Version
211
+ version: '2.0'
262
212
  - - ~>
263
213
  - !ruby/object:Gem::Version
264
- version: 1.5.2
214
+ version: '2'
265
215
  - !ruby/object:Gem::Dependency
266
- name: rdoc
216
+ name: rspec
267
217
  requirement: !ruby/object:Gem::Requirement
268
218
  requirements:
269
219
  - - ! '>='
270
220
  - !ruby/object:Gem::Version
271
- version: 2.4.2
221
+ version: 2.11.0
222
+ - - ~>
223
+ - !ruby/object:Gem::Version
224
+ version: '2.11'
272
225
  type: :development
273
226
  prerelease: false
274
227
  version_requirements: !ruby/object:Gem::Requirement
275
228
  requirements:
276
229
  - - ! '>='
277
230
  - !ruby/object:Gem::Version
278
- version: 2.4.2
231
+ version: 2.11.0
232
+ - - ~>
233
+ - !ruby/object:Gem::Version
234
+ version: '2.11'
279
235
  description: ! '
280
236
 
281
237
  ActiveFacts provides a semantic modeling language, the Constellation
@@ -319,12 +275,9 @@ files:
319
275
  - examples/CQL/Diplomacy.cql
320
276
  - examples/CQL/Genealogy.cql
321
277
  - examples/CQL/Insurance.cql
322
- - examples/CQL/JoinEquality.cql
323
278
  - examples/CQL/Marriage.cql
324
279
  - examples/CQL/Metamodel.cql
325
280
  - examples/CQL/Monogamy.cql
326
- - examples/CQL/MonthInSeason.cql
327
- - examples/CQL/Moon.cql
328
281
  - examples/CQL/MultiInheritance.cql
329
282
  - examples/CQL/NonRoleId.cql
330
283
  - examples/CQL/OddIdentifier.cql
@@ -337,9 +290,7 @@ files:
337
290
  - examples/CQL/SeparateSubtype.cql
338
291
  - examples/CQL/ServiceDirector.cql
339
292
  - examples/CQL/SimplestUnary.cql
340
- - examples/CQL/SubtypePI.cql
341
293
  - examples/CQL/Supervision.cql
342
- - examples/CQL/Tests.Test5.Load.cql
343
294
  - examples/CQL/WaiterTips.cql
344
295
  - examples/CQL/Warehousing.cql
345
296
  - examples/CQL/WindowInRoomInBldg.cql
@@ -478,7 +429,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
478
429
  version: '0'
479
430
  requirements: []
480
431
  rubyforge_project:
481
- rubygems_version: 2.1.10
432
+ rubygems_version: 2.2.2
482
433
  signing_key:
483
434
  specification_version: 4
484
435
  summary: A semantic modeling and query language (CQL) and application runtime (the