activefacts-api 0.8.10 → 0.8.12
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.
- data/VERSION +1 -1
- data/activefacts-api.gemspec +79 -0
- data/lib/activefacts/api/numeric.rb +16 -2
- data/lib/activefacts/api/support.rb +8 -0
- data/spec/constellation_spec.rb +6 -10
- metadata +58 -87
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.8.
|
1
|
+
0.8.12
|
@@ -0,0 +1,79 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = "activefacts-api"
|
8
|
+
s.version = "0.8.12"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Clifford Heath"]
|
12
|
+
s.date = "2012-01-03"
|
13
|
+
s.description = "\nThe ActiveFacts API is a Ruby DSL for managing constellations of elementary facts.\nEach fact is either existential (a value or an entity), characteristic (boolean) or\nbinary relational (A rel B). Relational facts are consistently co-referenced, so you\ncan traverse them efficiently in any direction. Each constellation maintains constraints\nover the fact population.\n"
|
14
|
+
s.email = "clifford.heath@gmail.com"
|
15
|
+
s.extra_rdoc_files = [
|
16
|
+
"LICENSE.txt",
|
17
|
+
"README.rdoc",
|
18
|
+
"TODO"
|
19
|
+
]
|
20
|
+
s.files = [
|
21
|
+
".document",
|
22
|
+
".rspec",
|
23
|
+
"LICENSE.txt",
|
24
|
+
"README.rdoc",
|
25
|
+
"Rakefile",
|
26
|
+
"VERSION",
|
27
|
+
"activefacts-api.gemspec",
|
28
|
+
"lib/activefacts/api.rb",
|
29
|
+
"lib/activefacts/api/constellation.rb",
|
30
|
+
"lib/activefacts/api/entity.rb",
|
31
|
+
"lib/activefacts/api/instance.rb",
|
32
|
+
"lib/activefacts/api/instance_index.rb",
|
33
|
+
"lib/activefacts/api/numeric.rb",
|
34
|
+
"lib/activefacts/api/object_type.rb",
|
35
|
+
"lib/activefacts/api/role.rb",
|
36
|
+
"lib/activefacts/api/role_values.rb",
|
37
|
+
"lib/activefacts/api/standard_types.rb",
|
38
|
+
"lib/activefacts/api/support.rb",
|
39
|
+
"lib/activefacts/api/value.rb",
|
40
|
+
"lib/activefacts/api/vocabulary.rb",
|
41
|
+
"lib/activefacts/tracer.rb",
|
42
|
+
"spec/autocounter_spec.rb",
|
43
|
+
"spec/constellation_spec.rb",
|
44
|
+
"spec/entity_type_spec.rb",
|
45
|
+
"spec/identification_spec.rb",
|
46
|
+
"spec/instance_spec.rb",
|
47
|
+
"spec/role_values_spec.rb",
|
48
|
+
"spec/roles_spec.rb",
|
49
|
+
"spec/spec_helper.rb",
|
50
|
+
"spec/value_type_spec.rb"
|
51
|
+
]
|
52
|
+
s.homepage = "http://github.com/cjheath/activefacts-api"
|
53
|
+
s.licenses = ["MIT"]
|
54
|
+
s.require_paths = ["lib"]
|
55
|
+
s.rubygems_version = "1.8.10"
|
56
|
+
s.summary = "A fact-based data model DSL and API"
|
57
|
+
|
58
|
+
if s.respond_to? :specification_version then
|
59
|
+
s.specification_version = 3
|
60
|
+
|
61
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
62
|
+
s.add_development_dependency(%q<rspec>, ["~> 2.3.0"])
|
63
|
+
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
64
|
+
s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
|
65
|
+
s.add_development_dependency(%q<rdoc>, [">= 2.4.2"])
|
66
|
+
else
|
67
|
+
s.add_dependency(%q<rspec>, ["~> 2.3.0"])
|
68
|
+
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
69
|
+
s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
|
70
|
+
s.add_dependency(%q<rdoc>, [">= 2.4.2"])
|
71
|
+
end
|
72
|
+
else
|
73
|
+
s.add_dependency(%q<rspec>, ["~> 2.3.0"])
|
74
|
+
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
75
|
+
s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
|
76
|
+
s.add_dependency(%q<rdoc>, [">= 2.4.2"])
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
@@ -21,6 +21,10 @@ class Int < SimpleDelegator
|
|
21
21
|
__getobj__.to_s
|
22
22
|
end
|
23
23
|
|
24
|
+
def to_json c = {} #:nodoc
|
25
|
+
__getobj__.to_json
|
26
|
+
end
|
27
|
+
|
24
28
|
def hash #:nodoc:
|
25
29
|
__getobj__.hash
|
26
30
|
end
|
@@ -60,6 +64,10 @@ class Real < SimpleDelegator
|
|
60
64
|
__getobj__.to_s
|
61
65
|
end
|
62
66
|
|
67
|
+
def to_json c = {} #:nodoc
|
68
|
+
__getobj__.to_json
|
69
|
+
end
|
70
|
+
|
63
71
|
def eql?(o) #:nodoc:
|
64
72
|
# Note: See the note above on Int#eql?
|
65
73
|
__getobj__.eql?(Float(o))
|
@@ -122,7 +130,13 @@ end
|
|
122
130
|
class AutoCounter
|
123
131
|
def initialize(i = :new)
|
124
132
|
raise "AutoCounter #{self.class} may not be #{i.inspect}" unless i == :new or i.is_a?(Integer) or i.is_a?(AutoCounter)
|
125
|
-
|
133
|
+
@@placeholder ||= 0
|
134
|
+
if i == :new
|
135
|
+
@value = nil
|
136
|
+
@initially = (@@placeholder+=1)
|
137
|
+
else
|
138
|
+
@initially = @value = i.to_i;
|
139
|
+
end
|
126
140
|
end
|
127
141
|
|
128
142
|
# Assign a definite value to an AutoCounter; this may only be done once
|
@@ -140,7 +154,7 @@ class AutoCounter
|
|
140
154
|
if self.defined?
|
141
155
|
@value.to_s
|
142
156
|
else
|
143
|
-
"new_#{
|
157
|
+
"new_#{@initially}"
|
144
158
|
end
|
145
159
|
end
|
146
160
|
|
@@ -5,6 +5,14 @@
|
|
5
5
|
# Copyright (c) 2009 Clifford Heath. Read the LICENSE file.
|
6
6
|
#
|
7
7
|
|
8
|
+
# Define Infinity as a constant, if it's not already defined:
|
9
|
+
# We use this to define open-ended ranges.
|
10
|
+
begin
|
11
|
+
Object.const_get("Infinity")
|
12
|
+
rescue
|
13
|
+
Infinity = 1.0/0.0
|
14
|
+
end
|
15
|
+
|
8
16
|
class Symbol #:nodoc:
|
9
17
|
def to_proc
|
10
18
|
Proc.new{|*args| args.shift.__send__(self, *args)}
|
data/spec/constellation_spec.rb
CHANGED
@@ -264,16 +264,12 @@ describe "A Constellation instance" do
|
|
264
264
|
it "should handle one-to-ones correctly" do
|
265
265
|
person = @constellation.Person "Fred", "Smith", :auto_counter_value => :new, :birth_name => "Nerk"
|
266
266
|
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
person.birth_name = nil
|
274
|
-
nerk.person_as_birth_name.should be_nil
|
275
|
-
@constellation.Name["Nerk"].should_not be_nil
|
276
|
-
end
|
267
|
+
nerk = @constellation.Name["Nerk"]
|
268
|
+
nerk.should_not be_nil
|
269
|
+
nerk.person_as_birth_name.should == person
|
270
|
+
person.birth_name = nil
|
271
|
+
nerk.person_as_birth_name.should be_nil
|
272
|
+
@constellation.Name["Nerk"].should_not be_nil
|
277
273
|
end
|
278
274
|
|
279
275
|
it "should allow retraction of instances" do
|
metadata
CHANGED
@@ -1,110 +1,90 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: activefacts-api
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.8.12
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 8
|
9
|
-
- 10
|
10
|
-
version: 0.8.10
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Clifford Heath
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2012-01-03 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
21
15
|
name: rspec
|
22
|
-
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: &70247315177760 !ruby/object:Gem::Requirement
|
24
17
|
none: false
|
25
|
-
requirements:
|
18
|
+
requirements:
|
26
19
|
- - ~>
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
hash: 3
|
29
|
-
segments:
|
30
|
-
- 2
|
31
|
-
- 3
|
32
|
-
- 0
|
20
|
+
- !ruby/object:Gem::Version
|
33
21
|
version: 2.3.0
|
34
22
|
type: :development
|
35
|
-
version_requirements: *id001
|
36
|
-
- !ruby/object:Gem::Dependency
|
37
|
-
name: bundler
|
38
23
|
prerelease: false
|
39
|
-
|
24
|
+
version_requirements: *70247315177760
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: bundler
|
27
|
+
requirement: &70247315159600 !ruby/object:Gem::Requirement
|
40
28
|
none: false
|
41
|
-
requirements:
|
29
|
+
requirements:
|
42
30
|
- - ~>
|
43
|
-
- !ruby/object:Gem::Version
|
44
|
-
hash: 23
|
45
|
-
segments:
|
46
|
-
- 1
|
47
|
-
- 0
|
48
|
-
- 0
|
31
|
+
- !ruby/object:Gem::Version
|
49
32
|
version: 1.0.0
|
50
33
|
type: :development
|
51
|
-
version_requirements: *id002
|
52
|
-
- !ruby/object:Gem::Dependency
|
53
|
-
name: jeweler
|
54
34
|
prerelease: false
|
55
|
-
|
35
|
+
version_requirements: *70247315159600
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: jeweler
|
38
|
+
requirement: &70247315158800 !ruby/object:Gem::Requirement
|
56
39
|
none: false
|
57
|
-
requirements:
|
40
|
+
requirements:
|
58
41
|
- - ~>
|
59
|
-
- !ruby/object:Gem::Version
|
60
|
-
hash: 7
|
61
|
-
segments:
|
62
|
-
- 1
|
63
|
-
- 5
|
64
|
-
- 2
|
42
|
+
- !ruby/object:Gem::Version
|
65
43
|
version: 1.5.2
|
66
44
|
type: :development
|
67
|
-
version_requirements: *id003
|
68
|
-
- !ruby/object:Gem::Dependency
|
69
|
-
name: rdoc
|
70
45
|
prerelease: false
|
71
|
-
|
46
|
+
version_requirements: *70247315158800
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: rdoc
|
49
|
+
requirement: &70247315158320 !ruby/object:Gem::Requirement
|
72
50
|
none: false
|
73
|
-
requirements:
|
74
|
-
- -
|
75
|
-
- !ruby/object:Gem::Version
|
76
|
-
hash: 27
|
77
|
-
segments:
|
78
|
-
- 2
|
79
|
-
- 4
|
80
|
-
- 2
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
81
54
|
version: 2.4.2
|
82
55
|
type: :development
|
83
|
-
|
84
|
-
|
85
|
-
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: *70247315158320
|
58
|
+
description: ! '
|
59
|
+
|
86
60
|
The ActiveFacts API is a Ruby DSL for managing constellations of elementary facts.
|
87
|
-
|
88
|
-
|
61
|
+
|
62
|
+
Each fact is either existential (a value or an entity), characteristic (boolean)
|
63
|
+
or
|
64
|
+
|
65
|
+
binary relational (A rel B). Relational facts are consistently co-referenced, so
|
66
|
+
you
|
67
|
+
|
89
68
|
can traverse them efficiently in any direction. Each constellation maintains constraints
|
69
|
+
|
90
70
|
over the fact population.
|
91
71
|
|
72
|
+
'
|
92
73
|
email: clifford.heath@gmail.com
|
93
74
|
executables: []
|
94
|
-
|
95
75
|
extensions: []
|
96
|
-
|
97
|
-
extra_rdoc_files:
|
76
|
+
extra_rdoc_files:
|
98
77
|
- LICENSE.txt
|
99
78
|
- README.rdoc
|
100
79
|
- TODO
|
101
|
-
files:
|
80
|
+
files:
|
102
81
|
- .document
|
103
82
|
- .rspec
|
104
83
|
- LICENSE.txt
|
105
84
|
- README.rdoc
|
106
85
|
- Rakefile
|
107
86
|
- VERSION
|
87
|
+
- activefacts-api.gemspec
|
108
88
|
- lib/activefacts/api.rb
|
109
89
|
- lib/activefacts/api/constellation.rb
|
110
90
|
- lib/activefacts/api/entity.rb
|
@@ -130,37 +110,28 @@ files:
|
|
130
110
|
- spec/value_type_spec.rb
|
131
111
|
- TODO
|
132
112
|
homepage: http://github.com/cjheath/activefacts-api
|
133
|
-
licenses:
|
113
|
+
licenses:
|
134
114
|
- MIT
|
135
115
|
post_install_message:
|
136
116
|
rdoc_options: []
|
137
|
-
|
138
|
-
require_paths:
|
117
|
+
require_paths:
|
139
118
|
- lib
|
140
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
119
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
141
120
|
none: false
|
142
|
-
requirements:
|
143
|
-
- -
|
144
|
-
- !ruby/object:Gem::Version
|
145
|
-
|
146
|
-
|
147
|
-
- 0
|
148
|
-
version: "0"
|
149
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ! '>='
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
150
126
|
none: false
|
151
|
-
requirements:
|
152
|
-
- -
|
153
|
-
- !ruby/object:Gem::Version
|
154
|
-
|
155
|
-
segments:
|
156
|
-
- 0
|
157
|
-
version: "0"
|
127
|
+
requirements:
|
128
|
+
- - ! '>='
|
129
|
+
- !ruby/object:Gem::Version
|
130
|
+
version: '0'
|
158
131
|
requirements: []
|
159
|
-
|
160
132
|
rubyforge_project:
|
161
|
-
rubygems_version: 1.8.
|
133
|
+
rubygems_version: 1.8.10
|
162
134
|
signing_key:
|
163
135
|
specification_version: 3
|
164
136
|
summary: A fact-based data model DSL and API
|
165
137
|
test_files: []
|
166
|
-
|