rdf-do 1.99.0.1 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
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.