tripod 0.6.1 → 0.7.1
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/tripod.rb +1 -0
- data/lib/tripod/attributes.rb +26 -3
- data/lib/tripod/callbacks.rb +8 -0
- data/lib/tripod/components.rb +1 -0
- data/lib/tripod/criteria/execution.rb +31 -13
- data/lib/tripod/fields.rb +0 -12
- data/lib/tripod/finders.rb +2 -1
- data/lib/tripod/persistence.rb +0 -5
- data/lib/tripod/resource.rb +7 -5
- data/lib/tripod/sparql_client.rb +1 -1
- data/lib/tripod/version.rb +1 -1
- data/spec/app/models/person.rb +1 -1
- data/spec/tripod/attributes_spec.rb +5 -14
- data/spec/tripod/criteria_execution_spec.rb +65 -3
- data/spec/tripod/resource_spec.rb +1 -1
- metadata +23 -22
data/lib/tripod.rb
CHANGED
data/lib/tripod/attributes.rb
CHANGED
@@ -24,6 +24,7 @@ module Tripod::Attributes
|
|
24
24
|
raise Tripod::Errors::FieldNotPresent.new unless field
|
25
25
|
|
26
26
|
attr_values = read_predicate(field.predicate)
|
27
|
+
attr_values.map! { |v| read_value_for_field(v, field) }
|
27
28
|
|
28
29
|
# If the field is multivalued, return an array of the results
|
29
30
|
# If it's not multivalued, return the first (should be only) result.
|
@@ -56,16 +57,38 @@ module Tripod::Attributes
|
|
56
57
|
if field.multivalued
|
57
58
|
new_val = []
|
58
59
|
value.each do |v|
|
59
|
-
new_val <<
|
60
|
+
new_val << write_value_for_field(v, field)
|
60
61
|
end
|
61
62
|
else
|
62
|
-
new_val =
|
63
|
+
new_val = write_value_for_field(value.first, field)
|
63
64
|
end
|
64
65
|
else
|
65
|
-
new_val =
|
66
|
+
new_val = write_value_for_field(value, field)
|
66
67
|
end
|
67
68
|
|
68
69
|
write_predicate(field.predicate, new_val)
|
69
70
|
end
|
70
71
|
alias :[]= :write_attribute
|
72
|
+
|
73
|
+
private
|
74
|
+
|
75
|
+
def read_value_for_field(value, field)
|
76
|
+
if field.is_uri?
|
77
|
+
value
|
78
|
+
else
|
79
|
+
value.object
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
def write_value_for_field(value, field)
|
84
|
+
return unless value
|
85
|
+
|
86
|
+
if field.is_uri?
|
87
|
+
RDF::URI.new(value.to_s)
|
88
|
+
elsif field.datatype
|
89
|
+
RDF::Literal.new(value, :datatype => field.datatype)
|
90
|
+
else
|
91
|
+
value
|
92
|
+
end
|
93
|
+
end
|
71
94
|
end
|
data/lib/tripod/components.rb
CHANGED
@@ -8,23 +8,28 @@ module Tripod
|
|
8
8
|
|
9
9
|
# Execute the query and return a +ResourceCollection+ of all hydrated resources
|
10
10
|
# +ResourceCollection+ is an +Enumerable+, Array-like object.
|
11
|
-
|
11
|
+
# options:
|
12
|
+
# :return_graph (default true) # indicates whether to return the graph as one of the variables.
|
13
|
+
def resources(opts={})
|
12
14
|
Tripod::ResourceCollection.new(
|
13
|
-
resources_from_sparql(build_select_query)
|
15
|
+
resources_from_sparql(build_select_query(opts))
|
14
16
|
)
|
15
17
|
end
|
16
18
|
|
17
19
|
# Execute the query and return the first result as a hydrated resource
|
18
|
-
|
19
|
-
|
20
|
-
|
20
|
+
# options:
|
21
|
+
# :return_graph (default true) # indicates whether to return the graph as one of the variables.
|
22
|
+
def first(opts={})
|
23
|
+
sq = Tripod::SparqlQuery.new(build_select_query(opts))
|
21
24
|
first_sparql = sq.as_first_query_str
|
22
25
|
resources_from_sparql(first_sparql).first
|
23
26
|
end
|
24
27
|
|
25
28
|
# Return how many records the current criteria would return
|
26
|
-
|
27
|
-
|
29
|
+
# options:
|
30
|
+
# :return_graph (default true) # indicates whether to return the graph as one of the variables.
|
31
|
+
def count(opts={})
|
32
|
+
sq = Tripod::SparqlQuery.new(build_select_query(opts))
|
28
33
|
count_sparql = sq.as_count_query_str
|
29
34
|
result = Tripod::SparqlClient::Query.select(count_sparql)
|
30
35
|
result[0]["c"]["value"].to_i
|
@@ -41,17 +46,30 @@ module Tripod
|
|
41
46
|
self.resource_class._create_and_hydrate_resources(uris_and_graphs)
|
42
47
|
end
|
43
48
|
|
44
|
-
|
49
|
+
# options:
|
50
|
+
# :return_graph (default true) # indicates whether to return the graph as one of the variables.
|
51
|
+
def build_select_query(opts={})
|
52
|
+
|
53
|
+
return_graph = opts.has_key?(:return_graph) ? opts[:return_graph] : true
|
54
|
+
|
55
|
+
select_query = "SELECT DISTINCT ?uri "
|
45
56
|
|
46
|
-
if
|
47
|
-
|
57
|
+
if return_graph
|
58
|
+
# if we are returing the graph, select it as a variable, and include either the <graph> or ?graph in the where clause
|
59
|
+
if graph_uri
|
60
|
+
select_query += "(<#{graph_uri}> as ?graph) WHERE { GRAPH <#{graph_uri}> { "
|
61
|
+
else
|
62
|
+
select_query += "?graph WHERE { GRAPH ?graph { "
|
63
|
+
end
|
48
64
|
else
|
49
|
-
select_query
|
65
|
+
select_query += "WHERE { "
|
66
|
+
# if we're not returning the graph, only restrict by the <graph> if there's one set at class level
|
67
|
+
select_query += "GRAPH <#{graph_uri}> { " if graph_uri
|
50
68
|
end
|
51
69
|
|
52
|
-
select_query += "{ "
|
53
70
|
select_query += self.where_clauses.join(" . ")
|
54
|
-
select_query += " }
|
71
|
+
select_query += " } "
|
72
|
+
select_query += "} " if return_graph || graph_uri # close the graph clause
|
55
73
|
select_query += self.extra_clauses.join(" ")
|
56
74
|
|
57
75
|
select_query += [order_clause, limit_clause, offset_clause].join(" ")
|
data/lib/tripod/fields.rb
CHANGED
@@ -32,18 +32,6 @@ module Tripod::Fields
|
|
32
32
|
add_field(name, predicate, options)
|
33
33
|
end
|
34
34
|
|
35
|
-
|
36
|
-
def new_value_for_field(value, field)
|
37
|
-
return unless value
|
38
|
-
if field.is_uri?
|
39
|
-
RDF::URI.new(value.to_s)
|
40
|
-
elsif field.datatype
|
41
|
-
RDF::Literal.new(value, :datatype => field.datatype)
|
42
|
-
else
|
43
|
-
value
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
35
|
protected
|
48
36
|
|
49
37
|
# Define a field attribute for the +Resource+.
|
data/lib/tripod/finders.rb
CHANGED
@@ -154,7 +154,8 @@ module Tripod::Finders
|
|
154
154
|
select_results.each do |r|
|
155
155
|
uri_variable = opts[:uri_variable] || 'uri'
|
156
156
|
graph_variable = opts[:graph_variable] || 'graph'
|
157
|
-
|
157
|
+
graph_value = r[graph_variable]["value"] if r[graph_variable]
|
158
|
+
uris_and_graphs[ r[uri_variable]["value"] ] = graph_value || nil
|
158
159
|
end
|
159
160
|
|
160
161
|
uris_and_graphs
|
data/lib/tripod/persistence.rb
CHANGED
data/lib/tripod/resource.rb
CHANGED
@@ -33,12 +33,14 @@ module Tripod::Resource
|
|
33
33
|
def initialize(uri, graph_uri=nil)
|
34
34
|
raise Tripod::Errors::UriNotSet.new('uri missing') unless uri
|
35
35
|
@uri = RDF::URI(uri.to_s)
|
36
|
-
|
37
|
-
graph_uri ||= self.class._GRAPH_URI if self.class._GRAPH_URI
|
38
|
-
@graph_uri = RDF::URI(graph_uri) if graph_uri
|
39
36
|
@repository = RDF::Repository.new
|
40
37
|
@new_record = true
|
41
|
-
|
38
|
+
|
39
|
+
run_callbacks :initialize do
|
40
|
+
graph_uri ||= self.class._GRAPH_URI if self.class._GRAPH_URI
|
41
|
+
@graph_uri = RDF::URI(graph_uri) if graph_uri
|
42
|
+
self.rdf_type = self.class._RDF_TYPE if respond_to?(:rdf_type=) && self.class._RDF_TYPE
|
43
|
+
end
|
42
44
|
end
|
43
45
|
|
44
46
|
# default comparison is via the uri
|
@@ -96,7 +98,7 @@ module Tripod::Resource
|
|
96
98
|
# and sets a class level _RDF_TYPE variable with the rdf_type passed in.
|
97
99
|
def rdf_type(new_rdf_type)
|
98
100
|
self._RDF_TYPE = RDF::URI.new(new_rdf_type.to_s)
|
99
|
-
field :rdf_type, RDF.type, :multivalued => true # things can have more than 1 type and often do
|
101
|
+
field :rdf_type, RDF.type, :multivalued => true, :is_uri => true # things can have more than 1 type and often do
|
100
102
|
end
|
101
103
|
|
102
104
|
def graph_uri(new_graph_uri)
|
data/lib/tripod/sparql_client.rb
CHANGED
@@ -30,7 +30,7 @@ module Tripod::SparqlClient
|
|
30
30
|
end
|
31
31
|
|
32
32
|
response = Tripod::Streaming.get_data(request_url, streaming_opts)
|
33
|
-
|
33
|
+
# Rails.logger.debug "TRIPOD: response: #{response}" if defined?(Rails)
|
34
34
|
response
|
35
35
|
}
|
36
36
|
|
data/lib/tripod/version.rb
CHANGED
data/spec/app/models/person.rb
CHANGED
@@ -7,7 +7,7 @@ class Person
|
|
7
7
|
|
8
8
|
field :name, 'http://example.com/name'
|
9
9
|
field :father, 'http://example.com/father', :is_uri => true
|
10
|
-
field :knows, 'http://example.com/knows', :multivalued => true
|
10
|
+
field :knows, 'http://example.com/knows', :multivalued => true, :is_uri => true
|
11
11
|
field :aliases, 'http://exmample.com/alias', :multivalued => true
|
12
12
|
field :age, 'http://example.com/age', :datatype => RDF::XSD.integer
|
13
13
|
field :important_dates, 'http://example.com/importantdates', :datatype => RDF::XSD.date, :multivalued => true
|
@@ -17,8 +17,8 @@ describe Tripod::Attributes do
|
|
17
17
|
end
|
18
18
|
|
19
19
|
context "for a literal" do
|
20
|
-
it "should return
|
21
|
-
person[:name].class.should ==
|
20
|
+
it "should return the native type" do
|
21
|
+
person[:name].class.should == String
|
22
22
|
end
|
23
23
|
it "should read the given attribute" do
|
24
24
|
person[:name].should == 'Barry'
|
@@ -48,32 +48,23 @@ describe Tripod::Attributes do
|
|
48
48
|
context "where field is given and single-valued" do
|
49
49
|
let(:field) { Person.send(:field_for, :hat_type, 'http://example.com/hat', {}) }
|
50
50
|
before do
|
51
|
-
person.stub(:read_predicate).with('http://example.com/hat').and_return(['fez'])
|
51
|
+
person.stub(:read_predicate).with('http://example.com/hat').and_return([RDF::Literal.new('fez')])
|
52
52
|
end
|
53
53
|
|
54
54
|
it "should use the predicate name from the given field" do
|
55
|
-
person.should_receive(:read_predicate).with('http://example.com/hat').and_return(['fez'])
|
55
|
+
person.should_receive(:read_predicate).with('http://example.com/hat').and_return([RDF::Literal.new('fez')])
|
56
56
|
person.read_attribute(:hat_type, field)
|
57
57
|
end
|
58
58
|
|
59
59
|
it "should return a single value" do
|
60
60
|
person.read_attribute(:hat_type, field).should == 'fez'
|
61
61
|
end
|
62
|
-
|
63
|
-
context "and the value is a URI" do
|
64
|
-
let(:field) { Person.send(:field_for, :hat_type, 'http://example.com/hat', {is_uri: true}) }
|
65
|
-
before do
|
66
|
-
person.stub(:read_predicate).with('http://example.com/hat').and_return(['fez'])
|
67
|
-
end
|
68
|
-
|
69
|
-
|
70
|
-
end
|
71
62
|
end
|
72
63
|
|
73
64
|
context "where field is given and is multi-valued" do
|
74
65
|
let(:field) { Person.send(:field_for, :hat_types, 'http://example.com/hat', {multivalued: true}) }
|
75
66
|
before do
|
76
|
-
person.stub(:read_predicate).with('http://example.com/hat').and_return(['fez', 'bowler'])
|
67
|
+
person.stub(:read_predicate).with('http://example.com/hat').and_return([RDF::Literal.new('fez'), RDF::Literal.new('bowler')])
|
77
68
|
end
|
78
69
|
|
79
70
|
it "should return an array of values" do
|
@@ -31,6 +31,12 @@ describe Tripod::Criteria do
|
|
31
31
|
person_criteria.send(:build_select_query).should == "SELECT DISTINCT ?uri (<http://example.com/graph> as ?graph) WHERE { GRAPH <http://example.com/graph> { ?uri a <http://example.com/person> . ?uri ?p ?o } }"
|
32
32
|
end
|
33
33
|
|
34
|
+
context "with include_graph option set to false" do
|
35
|
+
it "should not select graphs, but restrict to graph" do
|
36
|
+
person_criteria.send(:build_select_query, :return_graph => false).should == "SELECT DISTINCT ?uri WHERE { GRAPH <http://example.com/graph> { ?uri a <http://example.com/person> . ?uri ?p ?o } }"
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
34
40
|
context "and extra restrictions" do
|
35
41
|
before { person_criteria.where("[pattern]") }
|
36
42
|
|
@@ -53,6 +59,12 @@ describe Tripod::Criteria do
|
|
53
59
|
resource_criteria.send(:build_select_query).should == "SELECT DISTINCT ?uri ?graph WHERE { GRAPH ?graph { ?uri ?p ?o } }"
|
54
60
|
end
|
55
61
|
|
62
|
+
context "with include_graph option set to false" do
|
63
|
+
it "should not select graphs or restrict to graph" do
|
64
|
+
resource_criteria.send(:build_select_query, :return_graph => false).should == "SELECT DISTINCT ?uri WHERE { ?uri ?p ?o }"
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
56
68
|
context "and extra restrictions" do
|
57
69
|
before { resource_criteria.where("[pattern]") }
|
58
70
|
|
@@ -82,7 +94,12 @@ describe Tripod::Criteria do
|
|
82
94
|
|
83
95
|
describe "#resources" do
|
84
96
|
|
85
|
-
|
97
|
+
context "with options passed" do
|
98
|
+
it "should pass the options to build_select_query" do
|
99
|
+
person_criteria.should_receive(:build_select_query).with(:return_graph => false).and_call_original
|
100
|
+
person_criteria.resources(:return_graph => false)
|
101
|
+
end
|
102
|
+
end
|
86
103
|
|
87
104
|
context "with no extra restrictions" do
|
88
105
|
it "should return a set of hydrated objects for the type" do
|
@@ -91,18 +108,40 @@ describe Tripod::Criteria do
|
|
91
108
|
end
|
92
109
|
|
93
110
|
context "with extra restrictions" do
|
94
|
-
|
95
111
|
before { person_criteria.where("?uri <http://example.com/name> 'John'") }
|
96
112
|
|
97
113
|
it "should return a set of hydrated objects for the type and restrictions" do
|
98
|
-
|
114
|
+
person_criteria.resources.to_a.should == [john]
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
context "with return_graph option set to false" do
|
119
|
+
|
120
|
+
context "where the class has a graph_uri set" do
|
121
|
+
it "should set the graph_uri on the hydrated objects" do
|
122
|
+
person_criteria.resources(:return_graph => false).first.graph_uri.should_not be_nil
|
123
|
+
end
|
124
|
+
end
|
125
|
+
|
126
|
+
context "where the class does not have a graph_uri set" do
|
127
|
+
it "should not set the graph_uri on the hydrated objects" do
|
128
|
+
resource_criteria.resources(:return_graph => false).first.graph_uri.should be_nil
|
129
|
+
end
|
99
130
|
end
|
131
|
+
|
100
132
|
end
|
101
133
|
|
102
134
|
end
|
103
135
|
|
104
136
|
describe "#first" do
|
105
137
|
|
138
|
+
context "with options passed" do
|
139
|
+
it "should pass the options to build_select_query" do
|
140
|
+
person_criteria.should_receive(:build_select_query).with(:return_graph => false).and_call_original
|
141
|
+
person_criteria.first(:return_graph => false)
|
142
|
+
end
|
143
|
+
end
|
144
|
+
|
106
145
|
it "should return the first resource for the criteria" do
|
107
146
|
person_criteria.first.should == john
|
108
147
|
end
|
@@ -112,10 +151,33 @@ describe Tripod::Criteria do
|
|
112
151
|
Tripod::SparqlClient::Query.should_receive(:select).with(sparql).and_call_original
|
113
152
|
person_criteria.first
|
114
153
|
end
|
154
|
+
|
155
|
+
context "with return_graph option set to false" do
|
156
|
+
|
157
|
+
context "where the class has a graph_uri set" do
|
158
|
+
it "should set the graph_uri on the hydrated object" do
|
159
|
+
person_criteria.first(:return_graph => false).graph_uri.should_not be_nil
|
160
|
+
end
|
161
|
+
end
|
162
|
+
|
163
|
+
context "where the class does not have a graph_uri set" do
|
164
|
+
it "should not set the graph_uri on the hydrated object" do
|
165
|
+
resource_criteria.first(:return_graph => false).graph_uri.should be_nil
|
166
|
+
end
|
167
|
+
end
|
168
|
+
|
169
|
+
end
|
115
170
|
end
|
116
171
|
|
117
172
|
describe "#count" do
|
118
173
|
|
174
|
+
context "with options passed" do
|
175
|
+
it "should pass the options to build_select_query" do
|
176
|
+
person_criteria.should_receive(:build_select_query).with(:return_graph => false).and_call_original
|
177
|
+
person_criteria.count(:return_graph => false)
|
178
|
+
end
|
179
|
+
end
|
180
|
+
|
119
181
|
it "should return a set of hydrated objects for the criteria" do
|
120
182
|
person_criteria.count.should == 2
|
121
183
|
person_criteria.where("?uri <http://example.com/name> 'John'").count.should ==1
|
@@ -23,7 +23,7 @@ describe Tripod::Resource do
|
|
23
23
|
|
24
24
|
context "with rdf_type specified at class level" do
|
25
25
|
it "sets the rdf type from the class" do
|
26
|
-
person.rdf_type.should == ['http://example.com/person']
|
26
|
+
person.rdf_type.should == [RDF::URI.new('http://example.com/person')]
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tripod
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -11,11 +11,11 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2013-03-
|
14
|
+
date: 2013-03-28 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: rest-client
|
18
|
-
requirement: &
|
18
|
+
requirement: &70200922668480 !ruby/object:Gem::Requirement
|
19
19
|
none: false
|
20
20
|
requirements:
|
21
21
|
- - ! '>='
|
@@ -23,10 +23,10 @@ dependencies:
|
|
23
23
|
version: '0'
|
24
24
|
type: :runtime
|
25
25
|
prerelease: false
|
26
|
-
version_requirements: *
|
26
|
+
version_requirements: *70200922668480
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: activemodel
|
29
|
-
requirement: &
|
29
|
+
requirement: &70200922664960 !ruby/object:Gem::Requirement
|
30
30
|
none: false
|
31
31
|
requirements:
|
32
32
|
- - ~>
|
@@ -34,10 +34,10 @@ dependencies:
|
|
34
34
|
version: '3.2'
|
35
35
|
type: :runtime
|
36
36
|
prerelease: false
|
37
|
-
version_requirements: *
|
37
|
+
version_requirements: *70200922664960
|
38
38
|
- !ruby/object:Gem::Dependency
|
39
39
|
name: equivalent-xml
|
40
|
-
requirement: &
|
40
|
+
requirement: &70200922663180 !ruby/object:Gem::Requirement
|
41
41
|
none: false
|
42
42
|
requirements:
|
43
43
|
- - ! '>='
|
@@ -45,10 +45,10 @@ dependencies:
|
|
45
45
|
version: '0'
|
46
46
|
type: :runtime
|
47
47
|
prerelease: false
|
48
|
-
version_requirements: *
|
48
|
+
version_requirements: *70200922663180
|
49
49
|
- !ruby/object:Gem::Dependency
|
50
50
|
name: rdf
|
51
|
-
requirement: &
|
51
|
+
requirement: &70200922662000 !ruby/object:Gem::Requirement
|
52
52
|
none: false
|
53
53
|
requirements:
|
54
54
|
- - ~>
|
@@ -56,10 +56,10 @@ dependencies:
|
|
56
56
|
version: '1.0'
|
57
57
|
type: :runtime
|
58
58
|
prerelease: false
|
59
|
-
version_requirements: *
|
59
|
+
version_requirements: *70200922662000
|
60
60
|
- !ruby/object:Gem::Dependency
|
61
61
|
name: rdf-rdfxml
|
62
|
-
requirement: &
|
62
|
+
requirement: &70200922660520 !ruby/object:Gem::Requirement
|
63
63
|
none: false
|
64
64
|
requirements:
|
65
65
|
- - ! '>='
|
@@ -67,10 +67,10 @@ dependencies:
|
|
67
67
|
version: '0'
|
68
68
|
type: :runtime
|
69
69
|
prerelease: false
|
70
|
-
version_requirements: *
|
70
|
+
version_requirements: *70200922660520
|
71
71
|
- !ruby/object:Gem::Dependency
|
72
72
|
name: rdf-n3
|
73
|
-
requirement: &
|
73
|
+
requirement: &70200922674900 !ruby/object:Gem::Requirement
|
74
74
|
none: false
|
75
75
|
requirements:
|
76
76
|
- - ! '>='
|
@@ -78,10 +78,10 @@ dependencies:
|
|
78
78
|
version: '0'
|
79
79
|
type: :runtime
|
80
80
|
prerelease: false
|
81
|
-
version_requirements: *
|
81
|
+
version_requirements: *70200922674900
|
82
82
|
- !ruby/object:Gem::Dependency
|
83
83
|
name: rdf-json
|
84
|
-
requirement: &
|
84
|
+
requirement: &70200922673580 !ruby/object:Gem::Requirement
|
85
85
|
none: false
|
86
86
|
requirements:
|
87
87
|
- - ! '>='
|
@@ -89,10 +89,10 @@ dependencies:
|
|
89
89
|
version: '0'
|
90
90
|
type: :runtime
|
91
91
|
prerelease: false
|
92
|
-
version_requirements: *
|
92
|
+
version_requirements: *70200922673580
|
93
93
|
- !ruby/object:Gem::Dependency
|
94
94
|
name: json-ld
|
95
|
-
requirement: &
|
95
|
+
requirement: &70200922670740 !ruby/object:Gem::Requirement
|
96
96
|
none: false
|
97
97
|
requirements:
|
98
98
|
- - ! '>='
|
@@ -100,10 +100,10 @@ dependencies:
|
|
100
100
|
version: '0'
|
101
101
|
type: :runtime
|
102
102
|
prerelease: false
|
103
|
-
version_requirements: *
|
103
|
+
version_requirements: *70200922670740
|
104
104
|
- !ruby/object:Gem::Dependency
|
105
105
|
name: guid
|
106
|
-
requirement: &
|
106
|
+
requirement: &70200922693900 !ruby/object:Gem::Requirement
|
107
107
|
none: false
|
108
108
|
requirements:
|
109
109
|
- - ! '>='
|
@@ -111,10 +111,10 @@ dependencies:
|
|
111
111
|
version: '0'
|
112
112
|
type: :runtime
|
113
113
|
prerelease: false
|
114
|
-
version_requirements: *
|
114
|
+
version_requirements: *70200922693900
|
115
115
|
- !ruby/object:Gem::Dependency
|
116
116
|
name: dalli
|
117
|
-
requirement: &
|
117
|
+
requirement: &70200922692800 !ruby/object:Gem::Requirement
|
118
118
|
none: false
|
119
119
|
requirements:
|
120
120
|
- - ~>
|
@@ -122,7 +122,7 @@ dependencies:
|
|
122
122
|
version: '2.6'
|
123
123
|
type: :runtime
|
124
124
|
prerelease: false
|
125
|
-
version_requirements: *
|
125
|
+
version_requirements: *70200922692800
|
126
126
|
description: RDF ruby ORM
|
127
127
|
email:
|
128
128
|
- ric@swirrl.com
|
@@ -140,6 +140,7 @@ files:
|
|
140
140
|
- lib/tripod.rb
|
141
141
|
- lib/tripod/attributes.rb
|
142
142
|
- lib/tripod/cache_stores/memcached_cache_store.rb
|
143
|
+
- lib/tripod/callbacks.rb
|
143
144
|
- lib/tripod/components.rb
|
144
145
|
- lib/tripod/criteria.rb
|
145
146
|
- lib/tripod/criteria/execution.rb
|