tripod 0.3.3 → 0.3.4

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.
@@ -39,10 +39,6 @@ module Tripod
39
39
 
40
40
  def build_select_query
41
41
 
42
- # convert the order, limit and offset to extras in the right order
43
- extras(order_clause)
44
- extras(limit_clause)
45
- extras(offset_clause)
46
42
 
47
43
  if graph_uri
48
44
  select_query = "SELECT ?uri (<#{graph_uri}> as ?graph) WHERE { GRAPH <#{graph_uri}> "
@@ -54,6 +50,9 @@ module Tripod
54
50
  select_query += self.where_clauses.join(" . ")
55
51
  select_query += " } } "
56
52
  select_query += self.extra_clauses.join(" ")
53
+
54
+ select_query += [order_clause, limit_clause, offset_clause].join(" ")
55
+
57
56
  select_query.strip
58
57
  end
59
58
 
@@ -47,7 +47,6 @@ module Tripod
47
47
  end
48
48
 
49
49
  def as_count_query_str
50
-
51
50
  check_subqueryable!
52
51
 
53
52
  count_query = "SELECT COUNT(*) { #{self.body} }"
@@ -58,8 +57,7 @@ module Tripod
58
57
  end
59
58
 
60
59
  def as_first_query_str
61
- # only allow for selects
62
- raise SparqlQueryError.new("Can't turn this into a subquery") unless self.query_type == :select
60
+ check_subqueryable!
63
61
 
64
62
  first_query = "SELECT * { #{self.body} } LIMIT 1"
65
63
  first_query = "#{self.prefixes} #{first_query}" if self.prefixes
@@ -1,3 +1,3 @@
1
1
  module Tripod
2
- VERSION = "0.3.3"
2
+ VERSION = "0.3.4"
3
3
  end
@@ -10,15 +10,17 @@ describe Tripod::Criteria do
10
10
  c = Tripod::Criteria.new(Resource)
11
11
  end
12
12
 
13
- let(:john) do
13
+ let!(:john) do
14
14
  p = Person.new('http://john')
15
15
  p.name = "John"
16
+ p.save!
16
17
  p
17
18
  end
18
19
 
19
- let(:barry) do
20
+ let!(:barry) do
20
21
  p = Person.new('http://barry')
21
22
  p.name = "Barry"
23
+ p.save!
22
24
  p
23
25
  end
24
26
 
@@ -80,10 +82,7 @@ describe Tripod::Criteria do
80
82
 
81
83
  describe "#resources" do
82
84
 
83
- before do
84
- john.save!
85
- barry.save!
86
- end
85
+
87
86
 
88
87
  context "with no extra restrictions" do
89
88
  it "should return a set of hydrated objects for the type" do
@@ -104,11 +103,6 @@ describe Tripod::Criteria do
104
103
 
105
104
  describe "#first" do
106
105
 
107
- before do
108
- john.save!
109
- barry.save!
110
- end
111
-
112
106
  it "should return the first resource for the criteria" do
113
107
  person_criteria.first.should == john
114
108
  end
@@ -122,10 +116,6 @@ describe Tripod::Criteria do
122
116
 
123
117
  describe "#count" do
124
118
 
125
- before do
126
- john.save!
127
- barry.save!
128
- end
129
119
 
130
120
  it "should return a set of hydrated objects for the criteria" do
131
121
  person_criteria.count.should == 2
@@ -138,15 +128,16 @@ describe Tripod::Criteria do
138
128
  person_criteria.count
139
129
  end
140
130
 
131
+ it "should execute the right Sparql" do
132
+ sparql = "SELECT COUNT(*) { SELECT ?uri (<http://graph> as ?graph) WHERE { GRAPH <http://graph> { ?uri a <http://person> } } LIMIT 10 OFFSET 20 }"
133
+ Tripod::SparqlClient::Query.should_receive(:select).with(sparql).and_call_original
134
+ Person.all.limit(10).offset(20).count
135
+ end
136
+
141
137
  end
142
138
 
143
139
  describe "exeuting a chained criteria" do
144
140
 
145
- before do
146
- john.save!
147
- barry.save!
148
- end
149
-
150
141
  let(:chained_criteria) { Person.where("?uri <http://name> ?name").limit(1).offset(0).order("DESC(?name)") }
151
142
 
152
143
  it "should run the right Sparql" do
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.3
4
+ version: 0.3.4
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-02-20 00:00:00.000000000 Z
14
+ date: 2013-02-21 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: rest-client
18
- requirement: &70137501007220 !ruby/object:Gem::Requirement
18
+ requirement: &70190726102800 !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: *70137501007220
26
+ version_requirements: *70190726102800
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: activemodel
29
- requirement: &70137501006540 !ruby/object:Gem::Requirement
29
+ requirement: &70190726101660 !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: *70137501006540
37
+ version_requirements: *70190726101660
38
38
  - !ruby/object:Gem::Dependency
39
39
  name: equivalent-xml
40
- requirement: &70137501006080 !ruby/object:Gem::Requirement
40
+ requirement: &70190726100840 !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: *70137501006080
48
+ version_requirements: *70190726100840
49
49
  - !ruby/object:Gem::Dependency
50
50
  name: rdf
51
- requirement: &70137501005120 !ruby/object:Gem::Requirement
51
+ requirement: &70190730540020 !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: *70137501005120
59
+ version_requirements: *70190730540020
60
60
  - !ruby/object:Gem::Dependency
61
61
  name: rdf-rdfxml
62
- requirement: &70137501004320 !ruby/object:Gem::Requirement
62
+ requirement: &70190730539320 !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: *70137501004320
70
+ version_requirements: *70190730539320
71
71
  - !ruby/object:Gem::Dependency
72
72
  name: rdf-n3
73
- requirement: &70137501003540 !ruby/object:Gem::Requirement
73
+ requirement: &70190730538300 !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: *70137501003540
81
+ version_requirements: *70190730538300
82
82
  - !ruby/object:Gem::Dependency
83
83
  name: rdf-json
84
- requirement: &70137501002360 !ruby/object:Gem::Requirement
84
+ requirement: &70190730537520 !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: *70137501002360
92
+ version_requirements: *70190730537520
93
93
  - !ruby/object:Gem::Dependency
94
94
  name: json-ld
95
- requirement: &70137501001680 !ruby/object:Gem::Requirement
95
+ requirement: &70190730536780 !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: *70137501001680
103
+ version_requirements: *70190730536780
104
104
  - !ruby/object:Gem::Dependency
105
105
  name: guid
106
- requirement: &70137500999880 !ruby/object:Gem::Requirement
106
+ requirement: &70190730536300 !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: *70137500999880
114
+ version_requirements: *70190730536300
115
115
  description: RDF ruby ORM
116
116
  email:
117
117
  - ric@swirrl.com