tripod 0.3.2 → 0.3.3

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/README.md CHANGED
@@ -118,6 +118,8 @@ Note: Tripod doesn't supply a database. You need to install one. I recommend [Fu
118
118
 
119
119
  Resource.graph("http://mygraph") #=> Retruns a criteria object with a graph restriction (note: if graph_uri set on the class, it will default to using this)
120
120
 
121
+ Resource.find_by_sparql('SELECT ?uri ?graph WHERE { GRAPH ?graph { ?uri ?p ?o } }') #=> allows arbitrary sparql. Again, use ?uri for the variable of the subjects (and ?graph for the graph).
122
+
121
123
  ## Chainable criteria
122
124
 
123
125
  Person.all.where("?uri <http://name> 'Ric'").where("?uri <http://knows> <http://asa>).first
@@ -62,7 +62,7 @@ module Tripod::Finders
62
62
  #
63
63
  # @return [ Array ] An array of hydrated resources of this class's type.
64
64
  def find_by_sparql(sparql_query, opts={})
65
- uris_and_graphs = _select_uris_and_graphs(criteria, opts)
65
+ uris_and_graphs = _select_uris_and_graphs(sparql_query, opts)
66
66
  _create_and_hydrate_resources(uris_and_graphs)
67
67
  end
68
68
 
@@ -1,3 +1,3 @@
1
1
  module Tripod
2
- VERSION = "0.3.2"
2
+ VERSION = "0.3.3"
3
3
  end
@@ -120,4 +120,35 @@ describe Tripod::Finders do
120
120
  end
121
121
  end
122
122
 
123
+ describe '.find_by_sparql' do
124
+
125
+ before do
126
+ # save these into the db
127
+ bill.save!
128
+ ric.save!
129
+ end
130
+
131
+ it 'returns an array of resources which match those in the db' do
132
+ res = Person.find_by_sparql('SELECT ?uri ?graph WHERE { GRAPH ?graph { ?uri ?p ?o } }')
133
+ res.length.should == 2
134
+ res.first.should == ric
135
+ res.last.should == bill
136
+
137
+ res.first.name.should == "ric"
138
+ res.first.knows.should == [RDF::URI.new("http://bill")]
139
+ end
140
+
141
+ it 'uses the uri and graph variables if supplied' do
142
+ res = Person.find_by_sparql('SELECT ?bob ?geoff WHERE { GRAPH ?geoff { ?bob ?p ?o } }', :uri_variable => 'bob', :graph_variable => 'geoff')
143
+ res.length.should == 2
144
+ end
145
+
146
+ it "returns non-new records" do
147
+ res = Person.find_by_sparql('SELECT ?uri ?graph WHERE { GRAPH ?graph { ?uri ?p ?o } }')
148
+ res.first.new_record?.should be_false
149
+ end
150
+
151
+ end
152
+
153
+
123
154
  end
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.3.2
4
+ version: 0.3.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -15,7 +15,7 @@ date: 2013-02-20 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: rest-client
18
- requirement: &70205083592080 !ruby/object:Gem::Requirement
18
+ requirement: &70137501007220 !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: *70205083592080
26
+ version_requirements: *70137501007220
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: activemodel
29
- requirement: &70205083591380 !ruby/object:Gem::Requirement
29
+ requirement: &70137501006540 !ruby/object:Gem::Requirement
30
30
  none: false
31
31
  requirements:
32
32
  - - ~>
@@ -34,10 +34,10 @@ dependencies:
34
34
  version: '3.1'
35
35
  type: :runtime
36
36
  prerelease: false
37
- version_requirements: *70205083591380
37
+ version_requirements: *70137501006540
38
38
  - !ruby/object:Gem::Dependency
39
39
  name: equivalent-xml
40
- requirement: &70205083590920 !ruby/object:Gem::Requirement
40
+ requirement: &70137501006080 !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: *70205083590920
48
+ version_requirements: *70137501006080
49
49
  - !ruby/object:Gem::Dependency
50
50
  name: rdf
51
- requirement: &70205083589940 !ruby/object:Gem::Requirement
51
+ requirement: &70137501005120 !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: *70205083589940
59
+ version_requirements: *70137501005120
60
60
  - !ruby/object:Gem::Dependency
61
61
  name: rdf-rdfxml
62
- requirement: &70205083589120 !ruby/object:Gem::Requirement
62
+ requirement: &70137501004320 !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: *70205083589120
70
+ version_requirements: *70137501004320
71
71
  - !ruby/object:Gem::Dependency
72
72
  name: rdf-n3
73
- requirement: &70205083588320 !ruby/object:Gem::Requirement
73
+ requirement: &70137501003540 !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: *70205083588320
81
+ version_requirements: *70137501003540
82
82
  - !ruby/object:Gem::Dependency
83
83
  name: rdf-json
84
- requirement: &70205083587160 !ruby/object:Gem::Requirement
84
+ requirement: &70137501002360 !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: *70205083587160
92
+ version_requirements: *70137501002360
93
93
  - !ruby/object:Gem::Dependency
94
94
  name: json-ld
95
- requirement: &70205083586480 !ruby/object:Gem::Requirement
95
+ requirement: &70137501001680 !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: *70205083586480
103
+ version_requirements: *70137501001680
104
104
  - !ruby/object:Gem::Dependency
105
105
  name: guid
106
- requirement: &70205083584700 !ruby/object:Gem::Requirement
106
+ requirement: &70137500999880 !ruby/object:Gem::Requirement
107
107
  none: false
108
108
  requirements:
109
109
  - - ! '>='
@@ -111,7 +111,7 @@ dependencies:
111
111
  version: '0'
112
112
  type: :runtime
113
113
  prerelease: false
114
- version_requirements: *70205083584700
114
+ version_requirements: *70137500999880
115
115
  description: RDF ruby ORM
116
116
  email:
117
117
  - ric@swirrl.com