sparql-client 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1 @@
1
+ * Nicholas Humfrey <njh@aelius.com>
data/README CHANGED
@@ -68,8 +68,8 @@ Documentation
68
68
  Dependencies
69
69
  ------------
70
70
 
71
- * [RDF.rb](http://rubygems.org/gems/rdf) (>= 0.1.7)
72
- * [JSON](http://rubygems.org/gems/json_pure) (>= 1.2.3)
71
+ * [RDF.rb](http://rubygems.org/gems/rdf) (>= 0.1.10)
72
+ * [JSON](http://rubygems.org/gems/json_pure) (>= 1.4.0)
73
73
 
74
74
  Installation
75
75
  ------------
@@ -107,6 +107,10 @@ Authors
107
107
  * [Arto Bendiken](mailto:arto.bendiken@gmail.com) - <http://ar.to/>
108
108
  * [Ben Lavender](mailto:blavender@gmail.com) - <http://bhuga.net/>
109
109
 
110
+ Contributors
111
+ ------------
112
+ * [Nicholas Humfrey](mailto:njh@aelius.com) - <http://www.aelius.com/njh/>
113
+
110
114
  License
111
115
  -------
112
116
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.3
1
+ 0.0.4
@@ -3,7 +3,7 @@ module SPARQL; class Client
3
3
  # A read-only repository view of a SPARQL endpoint.
4
4
  #
5
5
  # @see RDF::Repository
6
- class Repository < ::RDF::Repository
6
+ class Repository < RDF::Repository
7
7
  # @return [SPARQL::Client]
8
8
  attr_reader :client
9
9
 
@@ -24,8 +24,7 @@ module SPARQL; class Client
24
24
  # @see RDF::Repository#each
25
25
  def each(&block)
26
26
  unless block_given?
27
- require 'enumerator' unless defined?(::Enumerable::Enumerator)
28
- ::Enumerable::Enumerator.new(self, :each)
27
+ RDF::Enumerator.new(self, :each)
29
28
  else
30
29
  client.construct([:s, :p, :o]).where([:s, :p, :o]).each_statement(&block)
31
30
  end
@@ -70,8 +69,7 @@ module SPARQL; class Client
70
69
  # @see RDF::Repository#each_subject?
71
70
  def each_subject(&block)
72
71
  unless block_given?
73
- require 'enumerator' unless defined?(::Enumerable::Enumerator)
74
- ::Enumerable::Enumerator.new(self, :each_subject)
72
+ RDF::Enumerator.new(self, :each_subject)
75
73
  else
76
74
  client.select(:s, :distinct => true).where([:s, :p, :o]).each { |solution| block.call(solution[:s]) }
77
75
  end
@@ -86,8 +84,7 @@ module SPARQL; class Client
86
84
  # @see RDF::Repository#each_predicate?
87
85
  def each_predicate(&block)
88
86
  unless block_given?
89
- require 'enumerator' unless defined?(::Enumerable::Enumerator)
90
- ::Enumerable::Enumerator.new(self, :each_predicate)
87
+ RDF::Enumerator.new(self, :each_predicate)
91
88
  else
92
89
  client.select(:p, :distinct => true).where([:s, :p, :o]).each { |solution| block.call(solution[:p]) }
93
90
  end
@@ -102,8 +99,7 @@ module SPARQL; class Client
102
99
  # @see RDF::Repository#each_object?
103
100
  def each_object(&block)
104
101
  unless block_given?
105
- require 'enumerator' unless defined?(::Enumerable::Enumerator)
106
- ::Enumerable::Enumerator.new(self, :each_object)
102
+ RDF::Enumerator.new(self, :each_object)
107
103
  else
108
104
  client.select(:o, :distinct => true).where([:s, :p, :o]).each { |solution| block.call(solution[:o]) }
109
105
  end
@@ -158,6 +154,37 @@ module SPARQL; class Client
158
154
  client.ask.whether([:s, :p, :o]).false?
159
155
  end
160
156
 
157
+ ##
158
+ # Queries `self` for RDF statements matching the given `pattern`.
159
+ #
160
+ # @example
161
+ # repository.query([nil, RDF::DOAP.developer, nil])
162
+ # repository.query(:predicate => RDF::DOAP.developer)
163
+ #
164
+ # @param [Query, Statement, Array(Value), Hash] pattern
165
+ # @yield [statement]
166
+ # @yieldparam [Statement]
167
+ # @return [Enumerable<Statement>]
168
+ def query(pattern, &block)
169
+ case pattern
170
+ when RDF::Query::Pattern
171
+ query = client.construct(pattern).where(pattern)
172
+ if block_given?
173
+ query.each_statement(&block)
174
+ else
175
+ query.solutions.to_a.extend(RDF::Enumerable, RDF::Queryable)
176
+ end
177
+ when RDF::Statement
178
+ query(RDF::Query::Pattern.new({
179
+ :subject => pattern.subject || :s,
180
+ :predicate => pattern.predicate || :p,
181
+ :object => pattern.object || :o,
182
+ }), &block)
183
+ else
184
+ super(pattern, &block)
185
+ end
186
+ end
187
+
161
188
  ##
162
189
  # Returns `false` to indicate that this is a read-only repository.
163
190
  #
@@ -2,7 +2,7 @@ module SPARQL; class Client
2
2
  module VERSION
3
3
  MAJOR = 0
4
4
  MINOR = 0
5
- TINY = 3
5
+ TINY = 4
6
6
  EXTRA = nil
7
7
 
8
8
  STRING = [MAJOR, MINOR, TINY].join('.')
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 0
8
- - 3
9
- version: 0.0.3
8
+ - 4
9
+ version: 0.0.4
10
10
  platform: ruby
11
11
  authors:
12
12
  - Arto Bendiken
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-04-17 00:00:00 +02:00
18
+ date: 2010-05-21 00:00:00 +02:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -23,13 +23,13 @@ dependencies:
23
23
  prerelease: false
24
24
  requirement: &id001 !ruby/object:Gem::Requirement
25
25
  requirements:
26
- - - ">="
26
+ - - ~>
27
27
  - !ruby/object:Gem::Version
28
28
  segments:
29
29
  - 0
30
30
  - 1
31
- - 6
32
- version: 0.1.6
31
+ - 10
32
+ version: 0.1.10
33
33
  type: :development
34
34
  version_requirements: *id001
35
35
  - !ruby/object:Gem::Dependency
@@ -56,8 +56,8 @@ dependencies:
56
56
  segments:
57
57
  - 0
58
58
  - 5
59
- - 3
60
- version: 0.5.3
59
+ - 4
60
+ version: 0.5.4
61
61
  type: :development
62
62
  version_requirements: *id003
63
63
  - !ruby/object:Gem::Dependency
@@ -65,13 +65,13 @@ dependencies:
65
65
  prerelease: false
66
66
  requirement: &id004 !ruby/object:Gem::Requirement
67
67
  requirements:
68
- - - ">="
68
+ - - ~>
69
69
  - !ruby/object:Gem::Version
70
70
  segments:
71
71
  - 0
72
72
  - 1
73
- - 7
74
- version: 0.1.7
73
+ - 10
74
+ version: 0.1.10
75
75
  type: :runtime
76
76
  version_requirements: *id004
77
77
  - !ruby/object:Gem::Dependency
@@ -79,13 +79,13 @@ dependencies:
79
79
  prerelease: false
80
80
  requirement: &id005 !ruby/object:Gem::Requirement
81
81
  requirements:
82
- - - ">="
82
+ - - ~>
83
83
  - !ruby/object:Gem::Version
84
84
  segments:
85
85
  - 1
86
- - 2
87
- - 3
88
- version: 1.2.3
86
+ - 4
87
+ - 0
88
+ version: 1.4.0
89
89
  type: :runtime
90
90
  version_requirements: *id005
91
91
  description: SPARQL client for RDF.rb.
@@ -98,6 +98,7 @@ extra_rdoc_files: []
98
98
 
99
99
  files:
100
100
  - AUTHORS
101
+ - CONTRIBUTORS
101
102
  - README
102
103
  - UNLICENSE
103
104
  - VERSION