activefacts-examples 1.7.1
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 +7 -0
- data/.gitignore +10 -0
- data/.rspec +1 -0
- data/.travis.yml +4 -0
- data/Gemfile +10 -0
- data/LICENSE.txt +21 -0
- data/README.md +22 -0
- data/Rakefile +6 -0
- data/activefacts-examples.gemspec +26 -0
- data/cql/Address.cql +44 -0
- data/cql/Astronomy.cql +35 -0
- data/cql/Blog.cql +54 -0
- data/cql/CinemaBookings.cql +64 -0
- data/cql/CinemaTickets.cql +127 -0
- data/cql/CompanyDirectorEmployee.cql +56 -0
- data/cql/Death.cql +17 -0
- data/cql/Diplomacy.cql +48 -0
- data/cql/Genealogy.cql +98 -0
- data/cql/Health.cql +78 -0
- data/cql/Insurance.cql +320 -0
- data/cql/Marriage.cql +18 -0
- data/cql/Metamodel.cql +567 -0
- data/cql/Monogamy.cql +24 -0
- data/cql/MultiInheritance.cql +22 -0
- data/cql/MultipleSubtyping.cql +30 -0
- data/cql/NonRoleId.cql +14 -0
- data/cql/OddIdentifier.cql +18 -0
- data/cql/OilSupply.cql +53 -0
- data/cql/OneRoleNesting.cql +38 -0
- data/cql/OneToOnes.cql +17 -0
- data/cql/Orienteering.cql +111 -0
- data/cql/PartyModel.cql +38 -0
- data/cql/PersonPlaysGame.cql +18 -0
- data/cql/RedundantDependency.cql +34 -0
- data/cql/SchoolActivities.cql +33 -0
- data/cql/SeparateSubtype.cql +30 -0
- data/cql/ServiceDirector.cql +276 -0
- data/cql/SimplestUnary.cql +12 -0
- data/cql/Supervision.cql +34 -0
- data/cql/VenueSeating.cql +45 -0
- data/cql/WaiterTips.cql +33 -0
- data/cql/Warehousing.cql +101 -0
- data/cql/WindowInRoomInBldg.cql +28 -0
- data/cql/unit.cql +474 -0
- data/diagrams/json/Address.json +41 -0
- data/diagrams/json/Astronomy.json +31 -0
- data/diagrams/json/Blog.json +46 -0
- data/diagrams/json/CinemaBookings.json +53 -0
- data/diagrams/json/CinemaTickets.json +101 -0
- data/diagrams/json/CompanyDirectorEmployee.json +44 -0
- data/diagrams/json/Death.json +20 -0
- data/diagrams/json/Diplomacy.json +34 -0
- data/diagrams/json/Genealogy.json +78 -0
- data/diagrams/json/Insurance.json +259 -0
- data/diagrams/json/Marriage.json +21 -0
- data/diagrams/json/Metamodel.json +318 -0
- data/diagrams/json/Monogamy.json +22 -0
- data/diagrams/json/MultiInheritance.json +25 -0
- data/diagrams/json/MultipleSubtyping.json +22 -0
- data/diagrams/json/OilSupply.json +49 -0
- data/diagrams/json/OneRoleNesting.json +37 -0
- data/diagrams/json/Orienteering.json +94 -0
- data/diagrams/json/PersonPlaysGame.json +22 -0
- data/diagrams/json/RedundantDependency.json +33 -0
- data/diagrams/json/SchoolActivities.json +28 -0
- data/diagrams/json/SeparateSubtype.json +29 -0
- data/diagrams/json/SimplestUnary.json +15 -0
- data/diagrams/json/Supervision.json +27 -0
- data/diagrams/json/VenueSeating.json +40 -0
- data/diagrams/json/WaiterTips.json +29 -0
- data/diagrams/json/Warehousing.json +86 -0
- data/diagrams/json/WindowInRoomInBldg.json +31 -0
- data/images/Address.SQL.png +0 -0
- data/images/Address.png +0 -0
- data/images/Blog.png +0 -0
- data/images/CinemaBookings.png +0 -0
- data/images/CinemaTickets.png +0 -0
- data/images/CompanyDirectorEmployee.png +0 -0
- data/images/Death.png +0 -0
- data/images/Diplomacy.png +0 -0
- data/images/DumpMetamodel.bat +2 -0
- data/images/Genealogy.png +0 -0
- data/images/Insurance/Claim.png +0 -0
- data/images/Insurance/Insurance.png +0 -0
- data/images/Insurance/Person.png +0 -0
- data/images/Insurance/Policy.png +0 -0
- data/images/Insurance/Related.png +0 -0
- data/images/Insurance/VehicleIncident.png +0 -0
- data/images/Marriage.png +0 -0
- data/images/Metamodel/Concepts.png +0 -0
- data/images/Metamodel/Constraints.png +0 -0
- data/images/Metamodel/ContextNote.png +0 -0
- data/images/Metamodel/Diagrams.png +0 -0
- data/images/Metamodel/Language.png +0 -0
- data/images/Metamodel/Legacy.png +0 -0
- data/images/Metamodel/Objects.png +0 -0
- data/images/Metamodel/Populations.png +0 -0
- data/images/Metamodel/Query.png +0 -0
- data/images/Metamodel/Units.png +0 -0
- data/images/Metamodel/ValueConstraints.png +0 -0
- data/images/Metamodel/ValueTypes.png +0 -0
- data/images/MetamodelER.bcp +1 -0
- data/images/MetamodelER.pdf +0 -0
- data/images/MultiInheritance.png +0 -0
- data/images/NorthwindER.png +0 -0
- data/images/OilSupply.png +0 -0
- data/images/Orienteering/Administration.png +0 -0
- data/images/Orienteering/Registration.png +0 -0
- data/images/Orienteering/Scoring.png +0 -0
- data/images/PersonPlaysGame.png +0 -0
- data/images/RedundantDependency.png +0 -0
- data/images/SchoolActivities.png +0 -0
- data/images/SeparateSubtype.png +0 -0
- data/images/SimplestUnary.png +0 -0
- data/images/Supervision.png +0 -0
- data/images/VenueSeating.png +0 -0
- data/images/WaiterTips.png +0 -0
- data/images/Warehousing.png +0 -0
- data/images/WindowInRoomInBldg.png +0 -0
- data/metadata/json/Astronomy.json +175 -0
- data/metadata/json/CinemaBookings.json +354 -0
- data/metadata/json/CinemaTickets.json +768 -0
- data/metadata/json/CompanyDirectorEmployee.json +270 -0
- data/metadata/json/Diplomacy.json +186 -0
- data/metadata/json/Metamodel.json +3214 -0
- data/metadata/json/OilSupply.json +411 -0
- data/metadata/json/SeparateSubtype.json +157 -0
- data/metadata/json/Supervision.json +128 -0
- data/metadata/json/VenueSeating.json +209 -0
- data/orm/.gitignore +11 -0
- data/orm/Address.orm +1268 -0
- data/orm/Astronomy.orm +925 -0
- data/orm/Blog.orm +1711 -0
- data/orm/CinemaBookings.orm +1998 -0
- data/orm/CinemaTickets.orm +5060 -0
- data/orm/CompanyDirectorEmployee.orm +2094 -0
- data/orm/Death.orm +386 -0
- data/orm/Diplomacy.orm +1478 -0
- data/orm/ExampleModels2010.csproj +764 -0
- data/orm/ExampleModels2010.sln +16 -0
- data/orm/Genealogy.orm +3209 -0
- data/orm/Health.orm +2407 -0
- data/orm/Insurance.orm +12727 -0
- data/orm/Marriage.orm +493 -0
- data/orm/Metamodel.orm +20998 -0
- data/orm/Monogamy.orm +328 -0
- data/orm/MultiInheritance.orm +537 -0
- data/orm/MultipleSubtyping.orm +347 -0
- data/orm/OilSupply.orm +2533 -0
- data/orm/OneRoleNesting.orm +1237 -0
- data/orm/Orienteering.orm +3976 -0
- data/orm/PersonPlaysGame.orm +426 -0
- data/orm/RedundantDependency.orm +844 -0
- data/orm/SchoolActivities.orm +961 -0
- data/orm/SeparateSubtype.orm +821 -0
- data/orm/SimplestUnary.orm +172 -0
- data/orm/Supervision.orm +734 -0
- data/orm/VenueSeating.orm +1289 -0
- data/orm/WaiterTips.orm +789 -0
- data/orm/Warehousing.orm +3792 -0
- data/orm/WindowInRoomInBldg.orm +772 -0
- data/rails/models/Astronomy.models +17 -0
- data/rails/models/CinemaBookings.models +123 -0
- data/rails/models/CinemaTickets.models +192 -0
- data/rails/models/Diplomacy.models +126 -0
- data/rails/models/Metamodel.models +894 -0
- data/rails/models/OneRoleNesting.models +18 -0
- data/rails/models/SeparateSubtype.models +49 -0
- data/rails/models/VenueSeating.models +70 -0
- data/rails/schema/Astronomy.schema.rb +25 -0
- data/rails/schema/CinemaBookings.schema.rb +78 -0
- data/rails/schema/CinemaTickets.schema.rb +132 -0
- data/rails/schema/Diplomacy.schema.rb +74 -0
- data/rails/schema/Metamodel.schema.rb +538 -0
- data/rails/schema/OneRoleNesting.rb +20 -0
- data/rails/schema/SeparateSubtype.schema.rb +35 -0
- data/rails/schema/VenueSeating.schema.rb +46 -0
- data/rails/schema/Warehousing.schema.rb +145 -0
- data/ruby/Address.rb +68 -0
- data/ruby/Astronomy.rb +55 -0
- data/ruby/Blog.rb +84 -0
- data/ruby/CinemaBookings.rb +109 -0
- data/ruby/CinemaTickets.rb +218 -0
- data/ruby/CompanyDirectorEmployee.rb +73 -0
- data/ruby/Death.rb +26 -0
- data/ruby/Diplomacy.rb +59 -0
- data/ruby/Genealogy.rb +173 -0
- data/ruby/Insurance.rb +562 -0
- data/ruby/Marriage.rb +21 -0
- data/ruby/Metamodel.rb +621 -0
- data/ruby/Monogamy.rb +27 -0
- data/ruby/MultiInheritance.rb +38 -0
- data/ruby/OilSupply.rb +112 -0
- data/ruby/OneRoleNesting.rb +66 -0
- data/ruby/Orienteering.rb +216 -0
- data/ruby/PersonPlaysGame.rb +31 -0
- data/ruby/RedundantDependency.rb +53 -0
- data/ruby/SchoolActivities.rb +49 -0
- data/ruby/SeparateSubtype.rb +46 -0
- data/ruby/SimplestUnary.rb +10 -0
- data/ruby/Supervision.rb +33 -0
- data/ruby/TwoValues.rb +14 -0
- data/ruby/VenueSeating.rb +64 -0
- data/ruby/WaiterTips.rb +49 -0
- data/ruby/Warehousing.rb +167 -0
- data/ruby/WindowInRoomInBldg.rb +45 -0
- data/sql/server/Address.sql +40 -0
- data/sql/server/Astronomy.sql +36 -0
- data/sql/server/Blog.sql +78 -0
- data/sql/server/CinemaBookings.sql +95 -0
- data/sql/server/CinemaTickets.sql +191 -0
- data/sql/server/CompanyDirectorEmployee.sql +104 -0
- data/sql/server/Death.sql +11 -0
- data/sql/server/Diplomacy.sql +66 -0
- data/sql/server/Genealogy.sql +138 -0
- data/sql/server/Health.sql +169 -0
- data/sql/server/Insurance.sql +484 -0
- data/sql/server/Marriage.sql +30 -0
- data/sql/server/Metamodel.sql +1000 -0
- data/sql/server/Monogamy.sql +20 -0
- data/sql/server/MultiInheritance.sql +27 -0
- data/sql/server/OilSupply.sql +105 -0
- data/sql/server/OneRoleNesting.sql +29 -0
- data/sql/server/Orienteering.sql +186 -0
- data/sql/server/PersonPlaysGame.sql +9 -0
- data/sql/server/RedundantDependency.sql +54 -0
- data/sql/server/SchoolActivities.sql +30 -0
- data/sql/server/SeparateSubtype.sql +33 -0
- data/sql/server/SimplestUnary.sql +9 -0
- data/sql/server/Supervision.sql +30 -0
- data/sql/server/VenueSeating.sql +54 -0
- data/sql/server/WaiterTips.sql +31 -0
- data/sql/server/Warehousing.sql +203 -0
- data/sql/server/WindowInRoomInBldg.sql +13 -0
- data/transform/surrogate/Address.absorption +2 -0
- data/transform/surrogate/Blog.absorption +5 -0
- data/transform/surrogate/CinemaBookings.absorption +7 -0
- data/transform/surrogate/CompanyDirectorEmployee.absorption +7 -0
- data/transform/surrogate/Death.absorption +1 -0
- data/transform/surrogate/Diplomacy-revised.absorption +6 -0
- data/transform/surrogate/Diplomacy.absorption +6 -0
- data/transform/surrogate/Genealogy.absorption +8 -0
- data/transform/surrogate/Insurance.absorption +18 -0
- data/transform/surrogate/Marriage.absorption +2 -0
- data/transform/surrogate/Metamodel.absorption +25 -0
- data/transform/surrogate/Monogamy.absorption +1 -0
- data/transform/surrogate/MultiInheritance.absorption +1 -0
- data/transform/surrogate/MultipleSubtyping.absorption +1 -0
- data/transform/surrogate/OilSupply.absorption +8 -0
- data/transform/surrogate/OneRoleNesting.absorption +1 -0
- data/transform/surrogate/Orienteering.absorption +11 -0
- data/transform/surrogate/PersonPlaysGame.absorption +1 -0
- data/transform/surrogate/RedundantDependency.absorption +3 -0
- data/transform/surrogate/SchoolActivities.absorption +3 -0
- data/transform/surrogate/SeparateSubtype.absorption +3 -0
- data/transform/surrogate/SimplestUnary.absorption +1 -0
- data/transform/surrogate/Supervision.absorption +2 -0
- data/transform/surrogate/WaiterTips.absorption +3 -0
- data/transform/surrogate/Warehousing.absorption +12 -0
- data/transform/surrogate/WindowInRoomInBldg.absorption +1 -0
- data/transform/surrogate/unit.absorption +0 -0
- metadata +374 -0
data/ruby/OilSupply.rb
ADDED
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
require 'activefacts/api'
|
|
2
|
+
|
|
3
|
+
module ::OilSupply
|
|
4
|
+
|
|
5
|
+
class Cost < Money
|
|
6
|
+
value_type
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
class MonthNr < SignedInteger
|
|
10
|
+
value_type :length => 32
|
|
11
|
+
one_to_one :month, :restrict => 1..12 # See Month.month_nr
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
class ProductName < String
|
|
15
|
+
value_type
|
|
16
|
+
one_to_one :product # See Product.product_name
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
class Quantity < UnsignedInteger
|
|
20
|
+
value_type :length => 32
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
class RefineryName < String
|
|
24
|
+
value_type :length => 80
|
|
25
|
+
one_to_one :refinery # See Refinery.refinery_name
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
class RegionName < String
|
|
29
|
+
value_type
|
|
30
|
+
one_to_one :region # See Region.region_name
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
class Season < String
|
|
34
|
+
value_type :length => 6
|
|
35
|
+
restrict 'Autumn', 'Spring', 'Summer', 'Winter'
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
class TransportMethod < String
|
|
39
|
+
value_type
|
|
40
|
+
restrict 'Rail', 'Road', 'Sea'
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
class YearNr < SignedInteger
|
|
44
|
+
value_type :length => 32
|
|
45
|
+
one_to_one :year # See Year.year_nr
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
class Month
|
|
49
|
+
identified_by :month_nr
|
|
50
|
+
one_to_one :month_nr, :mandatory => true # See MonthNr.month
|
|
51
|
+
has_one :season, :mandatory => true # See Season.all_month
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
class Product
|
|
55
|
+
identified_by :product_name
|
|
56
|
+
one_to_one :product_name, :mandatory => true # See ProductName.product
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
class Refinery
|
|
60
|
+
identified_by :refinery_name
|
|
61
|
+
one_to_one :refinery_name, :mandatory => true # See RefineryName.refinery
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
class Region
|
|
65
|
+
identified_by :region_name
|
|
66
|
+
one_to_one :region_name, :mandatory => true # See RegionName.region
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
class TransportRoute
|
|
70
|
+
identified_by :transport_method, :refinery, :region
|
|
71
|
+
has_one :refinery, :mandatory => true # See Refinery.all_transport_route
|
|
72
|
+
has_one :region, :mandatory => true # See Region.all_transport_route
|
|
73
|
+
has_one :transport_method, :mandatory => true # See TransportMethod.all_transport_route
|
|
74
|
+
has_one :cost # See Cost.all_transport_route
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
class Year
|
|
78
|
+
identified_by :year_nr
|
|
79
|
+
one_to_one :year_nr, :mandatory => true # See YearNr.year
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
class AcceptableSubstitution
|
|
83
|
+
identified_by :product, :alternate_product, :season
|
|
84
|
+
has_one :alternate_product, :class => Product, :mandatory => true # See Product.all_acceptable_substitution_as_alternate_product
|
|
85
|
+
has_one :product, :mandatory => true # See Product.all_acceptable_substitution
|
|
86
|
+
has_one :season, :mandatory => true # See Season.all_acceptable_substitution
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
class SupplyPeriod
|
|
90
|
+
identified_by :year, :month
|
|
91
|
+
has_one :month, :mandatory => true # See Month.all_supply_period
|
|
92
|
+
has_one :year, :mandatory => true # See Year.all_supply_period
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
class ProductionForecast
|
|
96
|
+
identified_by :refinery, :supply_period, :product
|
|
97
|
+
has_one :product, :mandatory => true # See Product.all_production_forecast
|
|
98
|
+
has_one :quantity, :mandatory => true # See Quantity.all_production_forecast
|
|
99
|
+
has_one :refinery, :mandatory => true # See Refinery.all_production_forecast
|
|
100
|
+
has_one :supply_period, :mandatory => true # See SupplyPeriod.all_production_forecast
|
|
101
|
+
has_one :cost # See Cost.all_production_forecast
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
class RegionalDemand
|
|
105
|
+
identified_by :region, :supply_period, :product
|
|
106
|
+
has_one :product, :mandatory => true # See Product.all_regional_demand
|
|
107
|
+
has_one :quantity, :mandatory => true # See Quantity.all_regional_demand
|
|
108
|
+
has_one :region, :mandatory => true # See Region.all_regional_demand
|
|
109
|
+
has_one :supply_period, :mandatory => true # See SupplyPeriod.all_regional_demand
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
end
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
require 'activefacts/api'
|
|
2
|
+
|
|
3
|
+
module ::OneRoleNesting
|
|
4
|
+
|
|
5
|
+
class AccuracyLevel < SignedInteger
|
|
6
|
+
value_type :length => 32
|
|
7
|
+
one_to_one :accuracy, :restrict => 1..5 # See Accuracy.accuracy_level
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
class PartyId < AutoCounter
|
|
11
|
+
value_type
|
|
12
|
+
one_to_one :party # See Party.party_id
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
class PartyName < String
|
|
16
|
+
value_type
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
class Ymd < Date
|
|
20
|
+
value_type
|
|
21
|
+
one_to_one :event_date # See EventDate.ymd
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
class Accuracy
|
|
25
|
+
identified_by :accuracy_level
|
|
26
|
+
one_to_one :accuracy_level, :mandatory => true # See AccuracyLevel.accuracy
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
class EventDate
|
|
30
|
+
identified_by :ymd
|
|
31
|
+
one_to_one :ymd, :mandatory => true # See ymd.event_date
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
class Party
|
|
35
|
+
identified_by :party_id
|
|
36
|
+
one_to_one :party_id, :mandatory => true # See PartyId.party
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
class PartyMoniker
|
|
40
|
+
identified_by :party
|
|
41
|
+
one_to_one :party, :mandatory => true # See Party.party_moniker
|
|
42
|
+
has_one :party_name, :mandatory => true # See PartyName.all_party_moniker
|
|
43
|
+
has_one :accuracy, :mandatory => true # See Accuracy.all_party_moniker
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
class Person < Party
|
|
47
|
+
maybe :died
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
class Birth
|
|
51
|
+
identified_by :person
|
|
52
|
+
has_one :event_date, :mandatory => true # See EventDate.all_birth
|
|
53
|
+
one_to_one :person, :mandatory => true # See Person.birth
|
|
54
|
+
has_one :attending_doctor, :class => "Doctor" # See Doctor.all_birth_as_attending_doctor
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
class Death
|
|
58
|
+
identified_by :person
|
|
59
|
+
one_to_one :person, :mandatory => true # See Person.death
|
|
60
|
+
has_one :death_event_date, :class => EventDate # See EventDate.all_death_as_death_event_date
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
class Doctor < Person
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
end
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
require 'activefacts/api'
|
|
2
|
+
|
|
3
|
+
module ::Orienteering
|
|
4
|
+
|
|
5
|
+
class Accessibility < Char
|
|
6
|
+
value_type :length => 1
|
|
7
|
+
restrict 'A'..'D'
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
class ClubCode < String
|
|
11
|
+
value_type :length => 6
|
|
12
|
+
one_to_one :club # See Club.club_code
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
class ClubName < String
|
|
16
|
+
value_type :length => 32
|
|
17
|
+
one_to_one :club # See Club.club_name
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
class ControlNumber < UnsignedInteger
|
|
21
|
+
value_type :length => 32
|
|
22
|
+
restrict 1..1000
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
class Course < String
|
|
26
|
+
value_type :length => 16
|
|
27
|
+
restrict 'A'..'E', 'PW'
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
class EntryID < AutoCounter
|
|
31
|
+
value_type
|
|
32
|
+
one_to_one :entry # See Entry.entry_id
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
class EventID < AutoCounter
|
|
36
|
+
value_type
|
|
37
|
+
one_to_one :event # See Event.event_id
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
class EventName < String
|
|
41
|
+
value_type :length => 50
|
|
42
|
+
one_to_one :event # See Event.event_name
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
class FamilyName < String
|
|
46
|
+
value_type :length => 48
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
class Gender < Char
|
|
50
|
+
value_type :length => 1
|
|
51
|
+
restrict 'F', 'M'
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
class GivenName < String
|
|
55
|
+
value_type :length => 48
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
class Location < String
|
|
59
|
+
value_type :length => 200
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
class MapID < AutoCounter
|
|
63
|
+
value_type
|
|
64
|
+
one_to_one :map # See Map.map_id
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
class MapName < String
|
|
68
|
+
value_type :length => 80
|
|
69
|
+
one_to_one :map # See Map.map_name
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
class Number < UnsignedInteger
|
|
73
|
+
value_type :length => 32
|
|
74
|
+
restrict 1..100
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
class PersonID < AutoCounter
|
|
78
|
+
value_type
|
|
79
|
+
one_to_one :person # See Person.person_id
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
class Placing < UnsignedInteger
|
|
83
|
+
value_type :length => 32
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
class PointValue < UnsignedInteger
|
|
87
|
+
value_type :length => 32
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
class PostCode < UnsignedInteger
|
|
91
|
+
value_type :length => 32
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
class PunchID < AutoCounter
|
|
95
|
+
value_type
|
|
96
|
+
one_to_one :punch # See Punch.punch_id
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
class Score < SignedInteger
|
|
100
|
+
value_type :length => 32
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
class ScoringMethod < String
|
|
104
|
+
value_type :length => 32
|
|
105
|
+
restrict 'Scatter', 'Score', 'Special'
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
class SeriesID < AutoCounter
|
|
109
|
+
value_type
|
|
110
|
+
one_to_one :series # See Series.series_id
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
class SeriesName < String
|
|
114
|
+
value_type :length => 40
|
|
115
|
+
one_to_one :series, :counterpart => :name # See Series.name
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
class StartTime < DateTime
|
|
119
|
+
value_type
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
class Time < DateTime
|
|
123
|
+
value_type
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
class Year < UnsignedInteger
|
|
127
|
+
value_type :length => 32
|
|
128
|
+
restrict 1900..3000
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
class Club
|
|
132
|
+
identified_by :club_code
|
|
133
|
+
one_to_one :club_code, :mandatory => true # See ClubCode.club
|
|
134
|
+
one_to_one :club_name, :mandatory => true # See ClubName.club
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
class Event
|
|
138
|
+
identified_by :event_id
|
|
139
|
+
has_one :club, :mandatory => true # See Club.all_event
|
|
140
|
+
one_to_one :event_id, :class => EventID, :mandatory => true # See EventID.event
|
|
141
|
+
one_to_one :event_name # See EventName.event
|
|
142
|
+
has_one :map, :mandatory => true # See Map.all_event
|
|
143
|
+
has_one :number # See Number.all_event
|
|
144
|
+
has_one :series # See Series.all_event
|
|
145
|
+
has_one :start_location, :class => Location, :mandatory => true # See Location.all_event_as_start_location
|
|
146
|
+
has_one :start_time, :mandatory => true # See StartTime.all_event
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
class EventControl
|
|
150
|
+
identified_by :event, :control_number
|
|
151
|
+
has_one :control_number, :mandatory => true # See ControlNumber.all_event_control
|
|
152
|
+
has_one :event, :mandatory => true # See Event.all_event_control
|
|
153
|
+
has_one :point_value # See PointValue.all_event_control
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
class EventScoringMethod
|
|
157
|
+
identified_by :course, :event
|
|
158
|
+
has_one :course, :mandatory => true # See Course.all_event_scoring_method
|
|
159
|
+
has_one :event, :mandatory => true # See Event.all_event_scoring_method
|
|
160
|
+
has_one :scoring_method, :mandatory => true # See ScoringMethod.all_event_scoring_method
|
|
161
|
+
end
|
|
162
|
+
|
|
163
|
+
class Map
|
|
164
|
+
identified_by :map_id
|
|
165
|
+
has_one :accessibility # See Accessibility.all_map
|
|
166
|
+
one_to_one :map_id, :class => MapID, :mandatory => true # See MapID.map
|
|
167
|
+
one_to_one :map_name, :mandatory => true # See MapName.map
|
|
168
|
+
has_one :owner, :class => Club, :mandatory => true # See Club.all_map_as_owner
|
|
169
|
+
end
|
|
170
|
+
|
|
171
|
+
class Person
|
|
172
|
+
identified_by :person_id
|
|
173
|
+
has_one :birth_year, :class => Year # See Year.all_person_as_birth_year
|
|
174
|
+
has_one :club # See Club.all_person
|
|
175
|
+
has_one :family_name, :mandatory => true # See FamilyName.all_person
|
|
176
|
+
has_one :gender # See Gender.all_person
|
|
177
|
+
has_one :given_name, :mandatory => true # See GivenName.all_person
|
|
178
|
+
one_to_one :person_id, :class => PersonID, :mandatory => true # See PersonID.person
|
|
179
|
+
has_one :post_code # See PostCode.all_person
|
|
180
|
+
end
|
|
181
|
+
|
|
182
|
+
class Punch
|
|
183
|
+
identified_by :punch_id
|
|
184
|
+
one_to_one :punch_id, :class => PunchID, :mandatory => true # See PunchID.punch
|
|
185
|
+
end
|
|
186
|
+
|
|
187
|
+
class PunchPlacement
|
|
188
|
+
identified_by :punch, :event_control
|
|
189
|
+
has_one :event_control, :mandatory => true # See EventControl.all_punch_placement
|
|
190
|
+
has_one :punch, :mandatory => true # See Punch.all_punch_placement
|
|
191
|
+
end
|
|
192
|
+
|
|
193
|
+
class Series
|
|
194
|
+
identified_by :series_id
|
|
195
|
+
one_to_one :name, :class => SeriesName, :mandatory => true # See SeriesName.series_as_name
|
|
196
|
+
one_to_one :series_id, :class => SeriesID, :mandatory => true # See SeriesID.series
|
|
197
|
+
end
|
|
198
|
+
|
|
199
|
+
class Entry
|
|
200
|
+
identified_by :entry_id
|
|
201
|
+
has_one :course, :mandatory => true # See Course.all_entry
|
|
202
|
+
has_one :event, :mandatory => true # See Event.all_entry
|
|
203
|
+
has_one :person, :mandatory => true # See Person.all_entry
|
|
204
|
+
one_to_one :entry_id, :class => EntryID, :mandatory => true # See EntryID.entry
|
|
205
|
+
has_one :finish_placing, :class => Placing # See Placing.all_entry_as_finish_placing
|
|
206
|
+
has_one :score # See Score.all_entry
|
|
207
|
+
end
|
|
208
|
+
|
|
209
|
+
class Visit
|
|
210
|
+
identified_by :punch, :entry, :time
|
|
211
|
+
has_one :entry, :mandatory => true # See Entry.all_visit
|
|
212
|
+
has_one :punch, :mandatory => true # See Punch.all_visit
|
|
213
|
+
has_one :time, :mandatory => true # See Time.all_visit
|
|
214
|
+
end
|
|
215
|
+
|
|
216
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
require 'activefacts/api'
|
|
2
|
+
|
|
3
|
+
module ::PersonPlaysGame
|
|
4
|
+
|
|
5
|
+
class GameCode < Char
|
|
6
|
+
value_type
|
|
7
|
+
one_to_one :game # See Game.game_code
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
class PersonName < String
|
|
11
|
+
value_type
|
|
12
|
+
one_to_one :person # See Person.person_name
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
class Game
|
|
16
|
+
identified_by :game_code
|
|
17
|
+
one_to_one :game_code, :mandatory => true # See GameCode.game
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
class Person
|
|
21
|
+
identified_by :person_name
|
|
22
|
+
one_to_one :person_name, :mandatory => true # See PersonName.person
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
class Playing
|
|
26
|
+
identified_by :person, :game
|
|
27
|
+
has_one :game, :mandatory => true # See Game.all_playing
|
|
28
|
+
has_one :person, :mandatory => true # See Person.all_playing
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
end
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
require 'activefacts/api'
|
|
2
|
+
|
|
3
|
+
module ::RedundantDependency
|
|
4
|
+
|
|
5
|
+
class AddressId < AutoCounter
|
|
6
|
+
value_type
|
|
7
|
+
one_to_one :address # See Address.address_id
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
class DistrictNumber < SignedInteger
|
|
11
|
+
value_type :length => 32
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
class PoliticianId < AutoCounter
|
|
15
|
+
value_type
|
|
16
|
+
one_to_one :politician # See Politician.politician_id
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
class PostalCode < SignedInteger
|
|
20
|
+
value_type :length => 32
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
class StateOrProvinceId < AutoCounter
|
|
24
|
+
value_type
|
|
25
|
+
one_to_one :state_or_province # See StateOrProvince.state_or_province_id
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
class Address
|
|
29
|
+
identified_by :address_id
|
|
30
|
+
one_to_one :address_id, :mandatory => true # See AddressId.address
|
|
31
|
+
has_one :legislative_district # See LegislativeDistrict.all_address
|
|
32
|
+
has_one :postal_code # See PostalCode.all_address
|
|
33
|
+
has_one :state_or_province # See StateOrProvince.all_address
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
class Politician
|
|
37
|
+
identified_by :politician_id
|
|
38
|
+
one_to_one :politician_id, :mandatory => true # See PoliticianId.politician
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
class StateOrProvince
|
|
42
|
+
identified_by :state_or_province_id
|
|
43
|
+
one_to_one :state_or_province_id, :mandatory => true # See StateOrProvinceId.state_or_province
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
class LegislativeDistrict
|
|
47
|
+
identified_by :district_number, :state_or_province
|
|
48
|
+
has_one :district_number, :mandatory => true # See DistrictNumber.all_legislative_district
|
|
49
|
+
one_to_one :politician, :mandatory => true # See Politician.legislative_district
|
|
50
|
+
has_one :state_or_province, :mandatory => true # See StateOrProvince.all_legislative_district
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
end
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
require 'activefacts/api'
|
|
2
|
+
|
|
3
|
+
module ::SchoolActivities
|
|
4
|
+
|
|
5
|
+
class ActivityName < String
|
|
6
|
+
value_type :length => 32
|
|
7
|
+
one_to_one :activity # See Activity.activity_name
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
class SchoolName < String
|
|
11
|
+
value_type
|
|
12
|
+
one_to_one :school # See School.school_name
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
class StudentName < String
|
|
16
|
+
value_type
|
|
17
|
+
one_to_one :student # See Student.student_name
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
class Activity
|
|
21
|
+
identified_by :activity_name
|
|
22
|
+
one_to_one :activity_name, :mandatory => true # See ActivityName.activity
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
class School
|
|
26
|
+
identified_by :school_name
|
|
27
|
+
one_to_one :school_name, :mandatory => true # See SchoolName.school
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
class SchoolActivity
|
|
31
|
+
identified_by :school, :activity
|
|
32
|
+
has_one :activity, :mandatory => true # See Activity.all_school_activity
|
|
33
|
+
has_one :school, :mandatory => true # See School.all_school_activity
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
class Student
|
|
37
|
+
identified_by :student_name
|
|
38
|
+
has_one :school, :mandatory => true # See School.all_student
|
|
39
|
+
one_to_one :student_name, :mandatory => true # See StudentName.student
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
class StudentParticipation
|
|
43
|
+
identified_by :student, :activity
|
|
44
|
+
has_one :activity, :mandatory => true # See Activity.all_student_participation
|
|
45
|
+
has_one :school, :mandatory => true # See School.all_student_participation
|
|
46
|
+
has_one :student, :mandatory => true # See Student.all_student_participation
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
end
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
require 'activefacts/api'
|
|
2
|
+
|
|
3
|
+
module ::SeparateSubtype
|
|
4
|
+
|
|
5
|
+
class ClaimID < AutoCounter
|
|
6
|
+
value_type
|
|
7
|
+
one_to_one :claim # See Claim.claim_id
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
class DateTime < ::DateTime
|
|
11
|
+
value_type
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
class PersonName < String
|
|
15
|
+
value_type
|
|
16
|
+
one_to_one :person # See Person.person_name
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
class Claim
|
|
20
|
+
identified_by :claim_id
|
|
21
|
+
one_to_one :claim_id, :class => ClaimID, :mandatory => true # See ClaimID.claim
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
class Incident
|
|
25
|
+
identified_by :claim
|
|
26
|
+
one_to_one :claim, :mandatory => true # See Claim.incident
|
|
27
|
+
has_one :date_time # See DateTime.all_incident
|
|
28
|
+
has_one :witness # See Witness.all_incident
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
class Person
|
|
32
|
+
identified_by :person_name
|
|
33
|
+
one_to_one :person_name, :mandatory => true # See PersonName.person
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
class VehicleIncident < Incident
|
|
37
|
+
has_one :driver # See Driver.all_vehicle_incident
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
class Witness < Person
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
class Driver < Person
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
end
|
data/ruby/Supervision.rb
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
require 'activefacts/api'
|
|
2
|
+
|
|
3
|
+
module ::Supervision
|
|
4
|
+
|
|
5
|
+
class CompanyName < String
|
|
6
|
+
value_type
|
|
7
|
+
one_to_one :company # See Company.company_name
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
class EmployeeNr < SignedInteger
|
|
11
|
+
value_type :length => 32
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
class Company
|
|
15
|
+
identified_by :company_name
|
|
16
|
+
has_one :ceo, :class => "CEO", :mandatory => true # See CEO.all_company
|
|
17
|
+
one_to_one :company_name, :mandatory => true # See CompanyName.company
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
class Employee
|
|
21
|
+
identified_by :company, :employee_nr
|
|
22
|
+
has_one :company, :mandatory => true # See Company.all_employee
|
|
23
|
+
has_one :employee_nr, :mandatory => true # See EmployeeNr.all_employee
|
|
24
|
+
has_one :manager # See Manager.all_employee
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
class Manager < Employee
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
class CEO < Manager
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
end
|
data/ruby/TwoValues.rb
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
require 'activefacts/api'
|
|
2
|
+
|
|
3
|
+
module ::VenueSeating
|
|
4
|
+
|
|
5
|
+
class EventId < AutoCounter
|
|
6
|
+
value_type
|
|
7
|
+
one_to_one :event # See Event.event_id
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
class Number < UnsignedInteger
|
|
11
|
+
value_type :length => 16
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
class ReserveName < String
|
|
15
|
+
value_type
|
|
16
|
+
one_to_one :reserve # See Reserve.reserve_name
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
class RowCode < Char
|
|
20
|
+
value_type
|
|
21
|
+
one_to_one :row # See Row.row_code
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
class VenueId < AutoCounter
|
|
25
|
+
value_type
|
|
26
|
+
one_to_one :venue # See Venue.venue_id
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
class Event
|
|
30
|
+
identified_by :event_id
|
|
31
|
+
one_to_one :event_id, :mandatory => true # See EventId.event
|
|
32
|
+
has_one :venue, :mandatory => true # See Venue.all_event
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
class Reserve
|
|
36
|
+
identified_by :reserve_name
|
|
37
|
+
one_to_one :reserve_name, :mandatory => true # See ReserveName.reserve
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
class Row
|
|
41
|
+
identified_by :row_code
|
|
42
|
+
one_to_one :row_code, :mandatory => true # See RowCode.row
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
class Venue
|
|
46
|
+
identified_by :venue_id
|
|
47
|
+
one_to_one :venue_id, :mandatory => true # See VenueId.venue
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
class Seat
|
|
51
|
+
identified_by :venue, :reserve, :row, :number
|
|
52
|
+
has_one :number, :mandatory => true # See Number.all_seat
|
|
53
|
+
has_one :reserve, :mandatory => true # See Reserve.all_seat
|
|
54
|
+
has_one :row, :mandatory => true # See Row.all_seat
|
|
55
|
+
has_one :venue, :mandatory => true # See Venue.all_seat
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
class Ticket
|
|
59
|
+
identified_by :event, :seat
|
|
60
|
+
has_one :event, :mandatory => true # See Event.all_ticket
|
|
61
|
+
has_one :seat, :mandatory => true # See Seat.all_ticket
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
end
|