rdf-do 1.99.0.1 → 2.0.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 573de1e4146e20046b5dd31c6673ea8f8b912573
4
- data.tar.gz: ab36389f634218b16294fd8447c5b5500f90b8a4
3
+ metadata.gz: 8dadfca05d2490a554932159932c6f4e490fec32
4
+ data.tar.gz: ebd1901324d2a11d96b786ae815c368a16b92e3e
5
5
  SHA512:
6
- metadata.gz: b8b57dfd0e5279e0cbc6d407671ed0fdbd5ddee38505dad9c7fc7a1c0ab84bc4ec707d8de4ea50637649734d33d31dccc78558ab18f7d4a41e3d720cb0894fe8
7
- data.tar.gz: 0d75242e8b460229bfc6c779849391fa8e37dec584a6bc202703f62d08c55d6776c89bb2a57b83e7a5e47d4ce7ed8b30b7fd619f3a13a62738c2dba640651fe3
6
+ metadata.gz: 6b862f4178cc8dba2e4bf702ebfde6a00fcef90c754b01e2149db3c16868e8246ba5591de3026cd1f55d1b6866df8806bbc9e8ebb5aea6fb6d328b18d26b86e9
7
+ data.tar.gz: 958c80738b91d3bf0dbe722a27e6da468744b7af511c9fedf69fe6abdb37d431e1985a5f35ebe5a0cd369849cfb45910a20b2552a9a83c180e2643c7df3aba9c
data/README CHANGED
@@ -16,7 +16,7 @@ and it passes all its tests on Heroku as well.
16
16
 
17
17
  Example:
18
18
 
19
- repository = RDF::DataObjects::Repository.new "sqlite3:test.db"
19
+ repository = RDF::DataObjects::Repository.new uri: "sqlite3:test.db"
20
20
  repository.insert(statement)
21
21
  repository.count #=> 1
22
22
  repository.delete(statement)
@@ -33,15 +33,15 @@ The greatly preferred installation method is via RubyGems:
33
33
 
34
34
  $ sudo gem install rdf-do
35
35
 
36
- Requires Ruby >= 1.9.2
36
+ Requires Ruby >= 2.0
37
37
 
38
38
  ## Connecting
39
39
  require 'rdf'
40
40
  require 'rdf/do'
41
41
  require 'do_postgres' # gem install do_postgres
42
42
  require 'do_sqlite3' # gem install do_sqlite3
43
- repo = RDF::DataObjects::Repository.new "postgres://localhost/database"
44
- repo = RDF::DataObjects::Repository.new "sqlite3:test.db"
43
+ repo = RDF::DataObjects::Repository.new uri: "postgres://localhost/database"
44
+ repo = RDF::DataObjects::Repository.new uri: "sqlite3:test.db"
45
45
 
46
46
 
47
47
  ## Using
@@ -59,9 +59,9 @@ Example:
59
59
  require 'do_sqlite3'
60
60
  require 'rdf/do'
61
61
 
62
- repo = RDF::DataObjects::Repository.new('sqlite3:test.db')
63
- # repo = RDF::DataObjects::Repository.new 'postgres://postgres@server/database'
64
- # heroku_repo = RDF::DataObjects::Repository.new(ENV['DATABASE_URL'])
62
+ repo = RDF::DataObjects::Repository.new uri: 'sqlite3:test.db'
63
+ # repo = RDF::DataObjects::Repository.new uri: 'postgres://postgres@server/database'
64
+ # heroku_repo = RDF::DataObjects::Repository.new uri: ENV['DATABASE_URL']
65
65
  repo.load('http://datagraph.org/jhacker/foaf.nt')
66
66
 
67
67
  # How many statements did we have?
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.99.0.1
1
+ 2.0.0
@@ -23,37 +23,36 @@ module RDF
23
23
  #
24
24
  class Repository < RDF::Repository
25
25
 
26
- ## Create a new RDF::DataObjects::Repository
26
+ ##
27
+ # Initializes this repository instance.
27
28
  #
28
- # The `options` parameter can be anything that
29
- # DataObjects::Connection.new accepts. The correct
30
- # RDF::Repository::DataObjects adapter will be loaded based on the URI
31
- # scheme of the created connection.
32
- #
33
29
  # @example
34
30
  # RDF::DataObjects::Repository.new # => new Repository based on sqlite3://:memory:
35
- # RDF::DataObjects::Repository.new 'postgres://localhost/database'
31
+ # RDF::DataObjects::Repository.new uri: 'postgres://localhost/database'
36
32
  # => New repository based on postgres adapter
37
- # @param [Any] options
33
+ #
34
+ # @param [Hash{Symbol => Object}] options
35
+ # @option options [URI, #to_s] :uri (nil)
36
+ # @option options [String, #to_s] :title (nil)
37
+ # @option options [String, #to_s] :adaptor (nil)
38
+ # The default adapter will be loaded based on the URI
39
+ # scheme of the created connection.
40
+ # @option options [String] :db Synonym for :uri
38
41
  # @return [RDF::DataObjects::Repository]
39
- def initialize(options = {})
40
- begin
41
- case options
42
- when String
43
- @db = ::DataObjects::Connection.new(options)
44
- when Hash
45
- @db = ::DataObjects::Connection.new(options[:db])
46
- adapter = options[:adapter]
47
- when nil
48
- @db = ::DataObjects::Connection.new('sqlite3://:memory:')
49
- end
50
- adapter = @db.instance_variable_get("@uri").scheme
51
- require 'rdf/do/adapters/' + adapter.to_s
52
- rescue Exception => e
53
- raise LoadError, "Could not load a DataObjects adapter for #{options}. You may need to add a 'require do_adapter', or you may be trying to use an unsupported adapter (Currently supporting postgres, sqlite3). The error message was: #{e.message}"
54
- end
42
+ def initialize(options = {}, &block)
43
+ warn "[DEPRECATION] RDF::DataObjects::Repository#initialize expects a uri argument. Called from #{Gem.location_of_caller.join(':')}" unless options.is_a?(Hash)
44
+ options = {uri: options.to_s} unless options.is_a?(Hash)
45
+ db = options[:uri] || options[:db] || 'sqlite3://:memory:'
46
+ @db = ::DataObjects::Connection.new(db)
47
+
48
+ adapter = options[:adapter] || @db.instance_variable_get("@uri").scheme
49
+ require 'rdf/do/adapters/' + adapter.to_s
50
+
55
51
  @adapter = RDF::DataObjects::Adapters::const_get(adapter.to_s.capitalize)
56
52
  @adapter.migrate? self
53
+ super(options, &block)
54
+ rescue Exception => e
55
+ raise LoadError, "Could not load a DataObjects adapter for #{options}. You may need to add a 'require do_adapter', or you may be trying to use an unsupported adapter (Currently supporting postgres, sqlite3). The error message was: #{e.message}"
57
56
  end
58
57
 
59
58
  # @see RDF::Mutable#insert_statement
@@ -109,7 +108,8 @@ module RDF
109
108
  # @param [RDF::Statement] statement
110
109
  # @return [void]
111
110
  def delete_statement(statement)
112
- delete_statements [statement]
111
+ query = @adapter.delete_sql
112
+ exec(query, serialize(statement.subject), serialize(statement.predicate), serialize(statement.object), serialize(statement.graph_name))
113
113
  end
114
114
 
115
115
  ##
@@ -132,25 +132,13 @@ module RDF
132
132
  exec(query,*(args.flatten))
133
133
  else
134
134
  query = @adapter.insert_sql
135
- statements.each do |s|
135
+ each = statements.respond_to?(:each_statement) ? :each_statement : :each
136
+ statements.__send__(each) do |s|
136
137
  exec(query, serialize(s.subject),serialize(s.predicate), serialize(s.object), serialize(s.graph_name))
137
138
  end
138
139
  end
139
140
  end
140
141
 
141
- ##
142
- # Remove multiple statements from this repository
143
- #
144
- # @see RDF::Mutable#delete_statements
145
- # @param [Array<RDF::Statement>] statements
146
- # @return [void]
147
- def delete_statements(statements)
148
- query = @adapter.delete_sql
149
- statements.each do |s|
150
- exec(query, serialize(s.subject), serialize(s.predicate), serialize(s.object), serialize(s.graph_name))
151
- end
152
- end
153
-
154
142
  ##
155
143
  # Serialize an RDF::Value into N-triples format.
156
144
  # Nil values will be encoded as 'nil' to avoid problems with SQL
@@ -286,12 +274,10 @@ module RDF
286
274
  def each_graph(&block)
287
275
  return enum_for(:each_graph) unless block_given?
288
276
 
289
- # Default graph
290
- yield RDF::Graph.new(nil, data: self)
291
- reader = result(@adapter.each_context_sql)
277
+ reader = result(@adapter.each_graph_sql)
292
278
  while reader.next!
293
279
  graph_name = unserialize(reader.values[0])
294
- yield RDF::Graph.new(graph_name, data: self)
280
+ yield RDF::Graph.new(graph_name: graph_name, data: self)
295
281
  end
296
282
  end
297
283
 
@@ -320,7 +306,8 @@ module RDF
320
306
  # @param [RDF::Query::Pattern] pattern
321
307
  # @see RDF::Queryable#query_pattern
322
308
  # @see RDF::Query::Pattern
323
- def query_pattern(pattern, &block)
309
+ def query_pattern(pattern, options = {}, &block)
310
+ return enum_for(:query_pattern, pattern, options) unless block_given?
324
311
  @nodes = {} # reset cache. FIXME this should probably be in Node.intern
325
312
  reader = @adapter.query(self,pattern.to_hash)
326
313
  while reader.next!
@@ -35,7 +35,7 @@ module RDF::DataObjects
35
35
  'select distinct object from quads'
36
36
  end
37
37
 
38
- def each_context_sql
38
+ def each_graph_sql
39
39
  'select distinct context from quads'
40
40
  end
41
41
 
@@ -1,16 +1,13 @@
1
1
  module RDF::DataObjects
2
2
  module VERSION
3
- MAJOR = 0
4
- MINOR = 3
5
- TINY = 3
6
- EXTRA = nil
3
+ VERSION_FILE = File.join(File.expand_path(File.dirname(__FILE__)), "..", "..", "..", "VERSION")
4
+ MAJOR, MINOR, TINY, EXTRA = File.read(VERSION_FILE).chop.split(".")
7
5
 
8
- STRING = [MAJOR, MINOR, TINY].join('.')
9
- STRING << ".#{EXTRA}" if EXTRA
6
+ STRING = [MAJOR, MINOR, TINY, EXTRA].compact.join('.')
10
7
 
11
8
  ##
12
9
  # @return [String]
13
- def self.to_s() STRING end
10
+ def self.to_s() STRING end
14
11
 
15
12
  ##
16
13
  # @return [String]
@@ -18,6 +15,6 @@ module RDF::DataObjects
18
15
 
19
16
  ##
20
17
  # @return [Array(Integer, Integer, Integer)]
21
- def self.to_a() [MAJOR, MINOR, TINY] end
18
+ def self.to_a() STRING.split(".") end
22
19
  end
23
20
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rdf-do
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.99.0.1
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Lavender
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-10-30 00:00:00.000000000 Z
11
+ date: 2016-04-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rdf
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.99'
19
+ version: '2.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.99'
26
+ version: '2.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: data_objects
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -72,14 +72,14 @@ dependencies:
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '1.99'
75
+ version: '2.0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '1.99'
82
+ version: '2.0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: rspec
85
85
  requirement: !ruby/object:Gem::Requirement
@@ -149,7 +149,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
149
149
  requirements:
150
150
  - - ">="
151
151
  - !ruby/object:Gem::Version
152
- version: 1.9.2
152
+ version: '2.0'
153
153
  required_rubygems_version: !ruby/object:Gem::Requirement
154
154
  requirements:
155
155
  - - ">="
@@ -157,7 +157,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
157
157
  version: '0'
158
158
  requirements: []
159
159
  rubyforge_project: rdf
160
- rubygems_version: 2.4.5.1
160
+ rubygems_version: 2.4.8
161
161
  signing_key:
162
162
  specification_version: 4
163
163
  summary: RDF.rb extension providing a DataObjects storage adapter.