roadforest 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
data/spec/update-focus.rb CHANGED
@@ -1,10 +1,9 @@
1
1
  require 'roadforest/rdf/source-rigor'
2
- require 'roadforest/rdf/update-focus'
3
2
  require 'roadforest/rdf/graph-store'
4
3
  require 'roadforest/rdf/document'
5
4
  require 'rdf/rdfa'
6
5
 
7
- describe RoadForest::RDF::UpdateFocus do
6
+ describe RoadForest::RDF::GraphFocus, "with UpdateManager" do
8
7
  class Voc < ::RDF::Vocabulary("http:/pred.org/"); end
9
8
 
10
9
  let :context_node do
@@ -62,15 +61,18 @@ describe RoadForest::RDF::UpdateFocus do
62
61
  end
63
62
  end
64
63
 
65
- subject :updater do
66
- RoadForest::RDF::UpdateFocus.new.tap do |updater|
67
- updater.source_graph = source_graph
68
- updater.target_graph = target_graph
69
- updater.subject = context_node
70
- updater.source_rigor = source_rigor
64
+ let :access do
65
+ RoadForest::RDF::UpdateManager.new.tap do |access|
66
+ access.source_graph = source_graph
67
+ access.target_graph = target_graph
68
+ access.rigor = source_rigor
71
69
  end
72
70
  end
73
71
 
72
+ subject :updater do
73
+ RoadForest::RDF::GraphFocus.new(access, context_node)
74
+ end
75
+
74
76
  it "should make relevant prefixes available" do
75
77
  updater[[:rdf, :type]] = [:voc, :Thing]
76
78
  updater[[:voc, :a]] = 15
metadata CHANGED
@@ -2,14 +2,14 @@
2
2
  name: roadforest
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.2
5
+ version: 0.0.3
6
6
  platform: ruby
7
7
  authors:
8
8
  - Judson Lester
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-10-09 00:00:00.000000000 Z
12
+ date: 2013-10-25 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  prerelease: false
@@ -17,14 +17,22 @@ dependencies:
17
17
  name: rdf
18
18
  version_requirements: !ruby/object:Gem::Requirement
19
19
  requirements:
20
- - - '='
20
+ - - ~>
21
21
  - !ruby/object:Gem::Version
22
+ segments:
23
+ - 1
24
+ - 0
25
+ - 6
22
26
  version: 1.0.6
23
27
  none: false
24
28
  requirement: !ruby/object:Gem::Requirement
25
29
  requirements:
26
- - - '='
30
+ - - ~>
27
31
  - !ruby/object:Gem::Version
32
+ segments:
33
+ - 1
34
+ - 0
35
+ - 6
28
36
  version: 1.0.6
29
37
  none: false
30
38
  - !ruby/object:Gem::Dependency
@@ -35,13 +43,21 @@ dependencies:
35
43
  requirements:
36
44
  - - ~>
37
45
  - !ruby/object:Gem::Version
38
- version: 1.0.0
46
+ segments:
47
+ - 1
48
+ - 0
49
+ - 8
50
+ version: 1.0.8
39
51
  none: false
40
52
  requirement: !ruby/object:Gem::Requirement
41
53
  requirements:
42
54
  - - ~>
43
55
  - !ruby/object:Gem::Version
44
- version: 1.0.0
56
+ segments:
57
+ - 1
58
+ - 0
59
+ - 8
60
+ version: 1.0.8
45
61
  none: false
46
62
  - !ruby/object:Gem::Dependency
47
63
  prerelease: false
@@ -51,12 +67,20 @@ dependencies:
51
67
  requirements:
52
68
  - - ! '>='
53
69
  - !ruby/object:Gem::Version
70
+ segments:
71
+ - 1
72
+ - 1
73
+ - 0
54
74
  version: 1.1.0
55
75
  none: false
56
76
  requirement: !ruby/object:Gem::Requirement
57
77
  requirements:
58
78
  - - ! '>='
59
79
  - !ruby/object:Gem::Version
80
+ segments:
81
+ - 1
82
+ - 1
83
+ - 0
60
84
  version: 1.1.0
61
85
  none: false
62
86
  - !ruby/object:Gem::Dependency
@@ -67,12 +91,20 @@ dependencies:
67
91
  requirements:
68
92
  - - ~>
69
93
  - !ruby/object:Gem::Version
94
+ segments:
95
+ - 2
96
+ - 2
97
+ - 8
70
98
  version: 2.2.8
71
99
  none: false
72
100
  requirement: !ruby/object:Gem::Requirement
73
101
  requirements:
74
102
  - - ~>
75
103
  - !ruby/object:Gem::Version
104
+ segments:
105
+ - 2
106
+ - 2
107
+ - 8
76
108
  version: 2.2.8
77
109
  none: false
78
110
  - !ruby/object:Gem::Dependency
@@ -83,12 +115,18 @@ dependencies:
83
115
  requirements:
84
116
  - - ~>
85
117
  - !ruby/object:Gem::Version
118
+ segments:
119
+ - 0
120
+ - 25
86
121
  version: '0.25'
87
122
  none: false
88
123
  requirement: !ruby/object:Gem::Requirement
89
124
  requirements:
90
125
  - - ~>
91
126
  - !ruby/object:Gem::Version
127
+ segments:
128
+ - 0
129
+ - 25
92
130
  version: '0.25'
93
131
  none: false
94
132
  - !ruby/object:Gem::Dependency
@@ -99,12 +137,20 @@ dependencies:
99
137
  requirements:
100
138
  - - ! '>='
101
139
  - !ruby/object:Gem::Version
140
+ segments:
141
+ - 1
142
+ - 3
143
+ - 6
102
144
  version: 1.3.6
103
145
  none: false
104
146
  requirement: !ruby/object:Gem::Requirement
105
147
  requirements:
106
148
  - - ! '>='
107
149
  - !ruby/object:Gem::Version
150
+ segments:
151
+ - 1
152
+ - 3
153
+ - 6
108
154
  version: 1.3.6
109
155
  none: false
110
156
  - !ruby/object:Gem::Dependency
@@ -115,12 +161,20 @@ dependencies:
115
161
  requirements:
116
162
  - - ! '>='
117
163
  - !ruby/object:Gem::Version
164
+ segments:
165
+ - 0
166
+ - 9
167
+ - 1
118
168
  version: 0.9.1
119
169
  none: false
120
170
  requirement: !ruby/object:Gem::Requirement
121
171
  requirements:
122
172
  - - ! '>='
123
173
  - !ruby/object:Gem::Version
174
+ segments:
175
+ - 0
176
+ - 9
177
+ - 1
124
178
  version: 0.9.1
125
179
  none: false
126
180
  description: ! " RoaD FoReST is a web framework designed to use the Resource Description\n
@@ -137,9 +191,8 @@ files:
137
191
  - lib/roadforest/rdf/graph-store.rb
138
192
  - lib/roadforest/rdf/normalization.rb
139
193
  - lib/roadforest/rdf/focus-list.rb
140
- - lib/roadforest/rdf/graph-reading.rb
141
194
  - lib/roadforest/rdf/graph-copier.rb
142
- - lib/roadforest/rdf/context-fascade.rb
195
+ - lib/roadforest/rdf/access-manager.rb
143
196
  - lib/roadforest/rdf/source-rigor.rb
144
197
  - lib/roadforest/rdf/graph-focus.rb
145
198
  - lib/roadforest/rdf/etagging.rb
@@ -153,7 +206,6 @@ files:
153
206
  - lib/roadforest/rdf/source-rigor/credence-annealer.rb
154
207
  - lib/roadforest/rdf/post-focus.rb
155
208
  - lib/roadforest/rdf/investigation.rb
156
- - lib/roadforest/rdf/update-focus.rb
157
209
  - lib/roadforest/rdf/vocabulary.rb
158
210
  - lib/roadforest/rdf/document.rb
159
211
  - lib/roadforest/rdf/resource-pattern.rb
@@ -170,7 +222,6 @@ files:
170
222
  - lib/roadforest/resource/http/form-parsing.rb
171
223
  - lib/roadforest/resource/role/writable.rb
172
224
  - lib/roadforest/resource/role/has-children.rb
173
- - lib/roadforest/resource/handlers.rb
174
225
  - lib/roadforest/resource/rdf.rb
175
226
  - lib/roadforest/test-support/http-client.rb
176
227
  - lib/roadforest/test-support/trace-formatter.rb
@@ -218,7 +269,7 @@ rdoc_options:
218
269
  - --main
219
270
  - doc/README
220
271
  - --title
221
- - roadforest-0.0.2 Documentation
272
+ - roadforest-0.0.3 Documentation
222
273
  require_paths:
223
274
  - lib/
224
275
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -227,7 +278,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
227
278
  - !ruby/object:Gem::Version
228
279
  segments:
229
280
  - 0
230
- hash: -203066605
281
+ hash: -124333677
231
282
  version: '0'
232
283
  none: false
233
284
  required_rubygems_version: !ruby/object:Gem::Requirement
@@ -1,200 +0,0 @@
1
- require 'roadforest/rdf/focus-list'
2
- require 'roadforest/rdf/normalization'
3
- require 'roadforest/rdf/resource-query'
4
- require 'rdf/model/node'
5
- require 'roadforest/rdf'
6
-
7
-
8
- module RoadForest::RDF
9
- class GraphReading
10
- #XXX Any changes to this class heirarchy or to ContextFascade should start
11
- #with a refactor like:
12
- # Reduce this to the single-node API ([] []=)
13
- # Change the ContextFascade into a family of classes (RO, RW, Update)
14
- include Normalization
15
-
16
- #attr_accessor :source_graph, :target_graph, :subject, :root_url,
17
- #:source_rigor
18
-
19
- attr_accessor :subject, :access_manager
20
-
21
- alias rdf subject
22
-
23
- def initialize(subject = nil, graph = nil, rigor = nil)
24
- @access_manager = ContextFascade.new
25
- @access_manager.rigor = rigor
26
- self.target_graph = graph
27
- self.source_graph = graph
28
-
29
- self.subject = subject unless subject.nil?
30
- end
31
-
32
- def source_graph
33
- @access_manager.source_graph
34
- end
35
-
36
- def source_graph=(graph)
37
- @access_manager.source_graph = graph
38
- end
39
-
40
- def target_graph
41
- nil
42
- end
43
-
44
- def target_graph=(graph)
45
- @access_manager.target_graph = nil
46
- end
47
-
48
- def source_rigor
49
- @access_manager.rigor
50
- end
51
-
52
- def source_rigor=(rigor)
53
- @access_manager.rigor = rigor
54
- end
55
-
56
- def root_url
57
- @access_manager.resource
58
- end
59
-
60
- def subject=(*value)
61
- @subject = normalize_resource(value)
62
- case @subject
63
- when ::RDF::URI
64
- @access_manager.resource = @subject
65
- end
66
- end
67
-
68
- def inspect
69
- "#<#{self.class.name}:0x#{"%x" % object_id} (#{subject.to_s}) #{forward_properties.inspect}>"
70
- end
71
- alias to_s inspect
72
-
73
- def dup
74
- other = self.class.new
75
- other.access_manager = access_manager.dup
76
- other.subject = subject
77
- other
78
- end
79
-
80
- def wrap_node(value)
81
- next_step = dup
82
- if ::RDF::Node === value
83
- next_step.root_url = self.root_url
84
- else
85
- next_step.root_url = normalize_context(value)
86
- end
87
- next_step.subject = value
88
- next_step
89
- end
90
-
91
- def unwrap_value(value)
92
- return nil if value.nil?
93
- if value.respond_to? :object
94
- value.object
95
- else
96
- wrap_node(value)
97
- end
98
- end
99
-
100
- def to_context
101
- normalize_context(subject)
102
- end
103
-
104
- def root_url=(*value) #XXX curies?
105
- @root_url = normalize_resource(value)
106
- end
107
-
108
- #XXX This probably wants to be handled completely in the MediaType handler
109
- def relevant_prefixes
110
- relevant_prefixes_for_graph(source_graph)
111
- end
112
-
113
- def get(prefix, property = nil)
114
- return single_or_enum(forward_query_value( prefix, property))
115
- end
116
- alias_method :[], :get
117
-
118
- def first(prefix, property = nil)
119
- return forward_query_value( prefix, property ).first
120
- end
121
-
122
- def all(prefix, property = nil)
123
- return forward_query_value( prefix, property )
124
- end
125
-
126
- #XXX Maybe rev should return a decorator, so it looks like:
127
- #focus.rev.get(...) or focus.rev.all(...)
128
- def rev(prefix, property = nil)
129
- return single_or_enum(reverse_query_value( prefix, property))
130
- end
131
-
132
- def rev_first(prefix, property = nil)
133
- return reverse_query_value(prefix, property).first
134
- end
135
-
136
- def rev_all(prefix, property = nil)
137
- return reverse_query_value(prefix, property)
138
- end
139
-
140
- def as_list
141
- list = FocusList.new(subject, access_manager)
142
- list.base_node = self
143
- list
144
- end
145
-
146
- def forward_properties
147
- query_properties( build_query{|q| q.pattern([ normalize_resource(subject), :property, :value ])} )
148
- end
149
-
150
- def reverse_properties
151
- query_properties( build_query{|q| q.pattern([ :value, :property, normalize_resource(subject)])} )
152
- end
153
-
154
- protected
155
-
156
- def single_or_enum(values)
157
- case values.length
158
- when 0
159
- return nil
160
- when 1
161
- return values.first
162
- else
163
- return values.enum_for(:each)
164
- end
165
- end
166
-
167
- def reverse_query_value(prefix, property=nil)
168
- query_value(build_query{|q|
169
- q.pattern([ :value, normalize_property(prefix, property), normalize_resource(subject)])
170
- })
171
- end
172
-
173
- def forward_query_value(prefix, property=nil)
174
- query_value(build_query{|q|
175
- q.pattern([ normalize_resource(subject), normalize_property(prefix, property), :value])
176
- })
177
- end
178
-
179
- def build_query(&block)
180
- access_manager.build_query(&block)
181
- end
182
-
183
- def query_value(query)
184
- solutions = query.execute(access_manager)
185
- solutions.map do |solution|
186
- unwrap_value(solution.value)
187
- end
188
- end
189
-
190
- def query_properties(query)
191
- Hash[query.execute(access_manager).map do |solution|
192
- prop = solution.property
193
- if qname = prop.qname
194
- prop = qname
195
- end
196
- [prop, solution.value]
197
- end]
198
- end
199
- end
200
- end
@@ -1,18 +0,0 @@
1
- require 'roadforest/rdf/graph-focus'
2
- require 'roadforest/rdf/parcel'
3
-
4
- module RoadForest::RDF
5
- class UpdateFocus < GraphWriting
6
- def target_graph
7
- @access_manager.target_graph
8
- end
9
-
10
- def target_graph=(graph)
11
- @access_manager.target_graph = graph
12
- end
13
-
14
- def relevant_prefixes
15
- super.merge(relevant_prefixes_for_graph(target_graph))
16
- end
17
- end
18
- end