rdf-turtle 0.1.0 → 0.1.1

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.
@@ -96,7 +96,7 @@ module RDF::Turtle
96
96
  next unless phase == :finish
97
97
  prefix = current[:prefix]
98
98
  iri = current[:resource]
99
- callback.call(:trace, "prefixID", "Defined prefix #{prefix.inspect} mapping to #{iri.inspect}")
99
+ callback.call(:trace, "prefixID", lambda {"Defined prefix #{prefix.inspect} mapping to #{iri.inspect}"})
100
100
  reader.prefix(prefix, iri)
101
101
  end
102
102
 
@@ -104,19 +104,17 @@ module RDF::Turtle
104
104
  production(:base) do |reader, phase, input, current, callback|
105
105
  next unless phase == :finish
106
106
  iri = current[:resource]
107
- callback.call(:trace, "base", "Defined base as #{iri}")
107
+ callback.call(:trace, "base", lambda {"Defined base as #{iri}"})
108
108
  reader.options[:base_uri] = iri
109
109
  end
110
110
 
111
111
  # [9] verb ::= predicate | "a"
112
112
  production(:verb) do |reader, phase, input, current, callback|
113
- next unless phase == :finish
114
113
  input[:predicate] = current[:resource] if phase == :finish
115
114
  end
116
115
 
117
116
  # [10] subject ::= IRIref | blank
118
117
  production(:subject) do |reader, phase, input, current, callback|
119
- next unless phase == :finish
120
118
  input[:subject] = current[:resource] if phase == :finish
121
119
  end
122
120
 
@@ -127,7 +125,7 @@ module RDF::Turtle
127
125
  # Part of an rdf:List collection
128
126
  input[:object_list] << current[:resource]
129
127
  else
130
- callback.call(:trace, "object", "current: #{current.inspect}")
128
+ callback.call(:trace, "object", lambda {"current: #{current.inspect}"})
131
129
  callback.call(:statement, "object", input[:subject], input[:predicate], current[:resource])
132
130
  end
133
131
  end
@@ -176,6 +174,10 @@ module RDF::Turtle
176
174
  ##
177
175
  # Initializes a new reader instance.
178
176
  #
177
+ # Note, the spec does not define a default mapping for the empty prefix,
178
+ # but it is so commonly used in examples that we define it to be the
179
+ # empty string anyway, except when validating.
180
+ #
179
181
  # @param [String, #to_s] input
180
182
  # @param [Hash{Symbol => Object}] options
181
183
  # @option options [Hash] :prefixes (Hash.new)
@@ -199,6 +201,7 @@ module RDF::Turtle
199
201
  def initialize(input = nil, options = {}, &block)
200
202
  super do
201
203
  @options = {:anon_base => "b0", :validate => false}.merge(options)
204
+ @options = {:prefixes => {nil => ""}}.merge(@options) unless @options[:validate]
202
205
 
203
206
  debug("base IRI") {base_uri.inspect}
204
207
 
@@ -228,16 +231,21 @@ module RDF::Turtle
228
231
  def each_statement(&block)
229
232
  @callback = block
230
233
 
231
- parse(@input, START.to_sym, @options.merge(:branch => BRANCH, :follow => FOLLOW)) do |context, *data|
234
+ parse(@input, START.to_sym, @options.merge(:branch => BRANCH,
235
+ :first => FIRST,
236
+ :follow => FOLLOW)
237
+ ) do |context, *data|
238
+ loc = data.shift
232
239
  case context
233
240
  when :statement
234
- add_triple(*data)
241
+ add_statement(loc, RDF::Statement.from(data))
235
242
  when :trace
236
- debug(*data)
243
+ debug(loc, *data)
237
244
  end
238
245
  end
239
246
  rescue RDF::LL1::Parser::Error => e
240
- error("each_statement", e.message, :backtrace => e.backtrace)
247
+ debug("Parsing completed with errors:\n\t#{e.message}")
248
+ raise RDF::ReaderError, e.message if validate?
241
249
  end
242
250
 
243
251
  ##
@@ -262,8 +270,7 @@ module RDF::Turtle
262
270
  # @param [URI, Node, Literal] object:: the object of the statement
263
271
  # @return [Statement]:: Added statement
264
272
  # @raise [RDF::ReaderError]:: Checks parameter types and raises if they are incorrect if parsing mode is _validate_.
265
- def add_triple(node, subject, predicate, object)
266
- statement = RDF::Statement.new(subject, predicate, object)
273
+ def add_statement(node, statement)
267
274
  if statement.valid?
268
275
  debug(node) {"generate statement: #{statement}"}
269
276
  @callback.call(statement)
@@ -334,28 +341,21 @@ module RDF::Turtle
334
341
  @bnode_cache[value.to_s] ||= RDF::Node.new(value)
335
342
  end
336
343
 
337
- # @param [String] str Error string
338
- # @param [Hash] options
339
- # @option options [URI, #to_s] :production
340
- # @option options [Token] :token
341
- def error(node, message, options = {})
342
- if !validate? && !options[:fatal]
343
- debug(node, message, options)
344
- else
345
- raise RDF::ReaderError, message, options[:backtrace]
346
- end
347
- end
348
-
349
344
  ##
350
345
  # Progress output when debugging
351
346
  # @param [String] node relative location in input
352
347
  # @param [String] message ("")
353
348
  # @yieldreturn [String] added to message
354
- def debug(node, message = "", options = {})
349
+ def debug(*args)
355
350
  return unless @options[:debug] || RDF::Turtle.debug?
351
+ options = args.last.is_a?(Hash) ? args.pop : {}
356
352
  depth = options[:depth] || self.depth
357
- message += yield if block_given?
358
- str = "[#{@lineno}]#{' ' * depth}#{node}: #{message}"
353
+ message = args.pop
354
+ message = message.call if message.is_a?(Proc)
355
+ args << message if message
356
+ args << yield if block_given?
357
+ message = "#{args.join(': ')}"
358
+ str = "[#{@lineno}]#{' ' * depth}#{message}"
359
359
  @options[:debug] << str if @options[:debug].is_a?(Array)
360
360
  $stderr.puts(str) if RDF::Turtle.debug?
361
361
  end
@@ -14,6 +14,7 @@ module RDF::Turtle
14
14
  [\\uF900-\\uFDCF]|[\\uFDF0-\\uFFFD]|[\\u{10000}-\\u{EFFFF}]
15
15
  EOS
16
16
  U_CHARS2 = Regexp.compile("\\u00B7|[\\u0300-\\u036F]|[\\u203F-\\u2040]")
17
+ IRI_RANGE = Regexp.compile("[[^<>\"{}|^`\\\\]&&[^\\x00-\\x20]]") # [^<>\"{}|^`\\] - [#x00-#x20]
17
18
  else
18
19
  ##
19
20
  # UTF-8 regular expressions for Ruby 1.8.x.
@@ -49,33 +50,42 @@ module RDF::Turtle
49
50
  \\xCC[\\x80-\\xBF]|\\xCD[\\x80-\\xAF]| (?# [\\u0300-\\u036F]|)
50
51
  \\xE2\\x80\\xBF|\\xE2\\x81\\x80 (?# [\\u203F-\\u2040])
51
52
  EOS
53
+ IRI_RANGE = Regexp.compile(<<-EOS.gsub(/\s+/, ''))
54
+ \\x21| (?# ")
55
+ [\\x23-\\x3b]|\\x3d| (?# < & >)
56
+ [\\x3f-\\x5b]|\\x5d|\\x5f| (?# \ ^ `)
57
+ [\\x61-\\x7a]| (?# { } |)
58
+ [\\x7e-\\xff]
59
+ EOS
52
60
  end
53
61
  UCHAR = RDF::LL1::Lexer::UCHAR
54
62
 
55
63
  WS = / |\t|\r|\n / # [93s]
64
+ PERCENT = /%[0-9A-Fa-f]{2}/ # [162s]
65
+ PN_LOCAL_ESC = /\\[_~\.\-\!$\&'\(\)\*\+,;=:\/\?\#@%]/ # [163s] # [163s]
66
+ PLX = /#{PERCENT}|#{PN_LOCAL_ESC}/ # [160s]
56
67
  PN_CHARS_BASE = /[A-Z]|[a-z]|#{U_CHARS1}|#{UCHAR}/ # [95s]
57
68
  PN_CHARS_U = /_|#{PN_CHARS_BASE}/ # [96s]
58
69
  PN_CHARS = /-|[0-9]|#{PN_CHARS_U}|#{U_CHARS2}/ # [98s]
59
70
  PN_CHARS_BODY = /(?:(?:\.|#{PN_CHARS})*#{PN_CHARS})?/
60
- PN_LOCAL = /(?:[0-9]|#{PN_CHARS_U})#{PN_CHARS_BODY}/ # [100s]
71
+ PN_LOCAL_BODY = /(?:(?:\.|#{PN_CHARS}|#{PLX})*(?:#{PN_CHARS}|#{PLX}))?/
72
+ PN_LOCAL = /(?:[0-9]|#{PN_CHARS_U}|#{PLX})#{PN_LOCAL_BODY}/ # [100s]
61
73
 
62
74
  EXPONENT = /[eE][+-]?[0-9]+/ # [86s]
63
75
 
64
76
  ANON = /\[#{WS}*\]/ # [94s]
65
77
  BLANK_NODE_LABEL = /_:#{PN_LOCAL}/ # [73s]
66
- DECIMAL = /(?:[0-9]+\.[0-9]*|\.[0-9]+)/ # [78s]
67
- DECIMAL_NEGATIVE = /\-(?:[0-9]+\.[0-9]*|\.[0-9]+)/ # [83s]
68
- DECIMAL_POSITIVE = /\+(?:[0-9]+\.[0-9]*|\.[0-9]+)/ # [81s]
69
- DOUBLE = /(?:[0-9]+\.[0-9]*|\.[0-9]+|[0-9]+)#{EXPONENT}/ # [79s]
70
- DOUBLE_NEGATIVE = /\-(?:[0-9]+\.[0-9]*|\.[0-9]+|[0-9]+)#{EXPONENT}/ # [79s]
71
- DOUBLE_POSITIVE = /\+(?:[0-9]+\.[0-9]*|\.[0-9]+|[0-9]+)#{EXPONENT}/ # [79s]
78
+ DECIMAL = /(?:[0-9]+\.[0-9]+|\.[0-9]+)/ # [78s]
79
+ DECIMAL_NEGATIVE = /\-(?:[0-9]+\.[0-9]+|\.[0-9]+)/ # [83s]
80
+ DECIMAL_POSITIVE = /\+(?:[0-9]+\.[0-9]+|\.[0-9]+)/ # [81s]
81
+ DOUBLE = /(?:[0-9]+\.[0-9]+|\.[0-9]+|[0-9]+)#{EXPONENT}/ # [79s]
82
+ DOUBLE_NEGATIVE = /\-(?:[0-9]+\.[0-9]+|\.[0-9]+|[0-9]+)#{EXPONENT}/ # [79s]
83
+ DOUBLE_POSITIVE = /\+(?:[0-9]+\.[0-9]+|\.[0-9]+|[0-9]+)#{EXPONENT}/ # [79s]
72
84
  ECHAR = /\\[tbnrf\\"']/ # [91s]
73
85
  INTEGER = /[0-9]+/ # [77s]
74
86
  INTEGER_NEGATIVE = /\-[0-9]+/ # [83s]
75
87
  INTEGER_POSITIVE = /\+[0-9]+/ # [80s]
76
- # Spec confusion: the EBNF definition of IRI_REF seems malformed, and has no
77
- # provision for \^, as discussed elsewhere in the spec.
78
- IRI_REF = /<(?:[^<>"{}|^`\\\x00-\x20]|#{U_CHARS1})*>/ # [70s]
88
+ IRI_REF = /<(?:#{IRI_RANGE}|#{UCHAR})*>/ # [70s]
79
89
  LANGTAG = /@[a-zA-Z]+(?:-[a-zA-Z0-9]+)*/ # [76s]
80
90
  PN_PREFIX = /#{PN_CHARS_BASE}#{PN_CHARS_BODY}/ # [99s]
81
91
  PNAME_NS = /#{PN_PREFIX}?:/ # [71s]
@@ -105,7 +105,7 @@ module RDF::Turtle
105
105
  end
106
106
 
107
107
  ##
108
- # Addes a statement to be serialized
108
+ # Adds a statement to be serialized
109
109
  # @param [RDF::Statement] statement
110
110
  # @return [void]
111
111
  def write_statement(statement)
@@ -113,7 +113,7 @@ module RDF::Turtle
113
113
  end
114
114
 
115
115
  ##
116
- # Addes a triple to be serialized
116
+ # Adds a triple to be serialized
117
117
  # @param [RDF::Resource] subject
118
118
  # @param [RDF::URI] predicate
119
119
  # @param [RDF::Value] object
@@ -135,7 +135,7 @@ module RDF::Turtle
135
135
 
136
136
  self.reset
137
137
 
138
- debug {"\nserialize: graph: #{@graph.size}"}
138
+ debug("\nserialize") {"graph: #{@graph.size}"}
139
139
 
140
140
  preprocess
141
141
  start_document
@@ -166,14 +166,16 @@ module RDF::Turtle
166
166
  when u = @uri_to_prefix.keys.detect {|u| uri.index(u.to_s) == 0}
167
167
  # Use a defined prefix
168
168
  prefix = @uri_to_prefix[u]
169
- prefix(prefix, u) unless u.to_s.empty? # Define for output
170
- debug {"get_pname: add prefix #{prefix.inspect} => #{u}"}
171
- uri.sub(u.to_s, "#{prefix}:")
169
+ unless u.to_s.empty?
170
+ prefix(prefix, u) unless u.to_s.empty?
171
+ debug("get_pname") {"add prefix #{prefix.inspect} => #{u}"}
172
+ uri.sub(u.to_s, "#{prefix}:")
173
+ end
172
174
  when @options[:standard_prefixes] && vocab = RDF::Vocabulary.each.to_a.detect {|v| uri.index(v.to_uri.to_s) == 0}
173
175
  prefix = vocab.__name__.to_s.split('::').last.downcase
174
176
  @uri_to_prefix[vocab.to_uri.to_s] = prefix
175
177
  prefix(prefix, vocab.to_uri) # Define for output
176
- debug {"get_pname: add standard prefix #{prefix.inspect} => #{vocab.to_uri}"}
178
+ debug("get_pname") {"add standard prefix #{prefix.inspect} => #{vocab.to_uri}"}
177
179
  uri.sub(vocab.to_uri.to_s, "#{prefix}:")
178
180
  else
179
181
  nil
@@ -208,7 +210,7 @@ module RDF::Turtle
208
210
  prop_list << prop.to_s
209
211
  end
210
212
 
211
- debug {"sort_properties: #{prop_list.join(', ')}"}
213
+ debug("sort_properties") {prop_list.join(', ')}
212
214
  prop_list
213
215
  end
214
216
 
@@ -246,7 +248,7 @@ module RDF::Turtle
246
248
  # @return [String]
247
249
  def format_uri(uri, options = {})
248
250
  md = relativize(uri)
249
- debug {"relativize(#{uri.inspect}) => #{md.inspect}"} if md != uri.to_s
251
+ debug("relativize") {"#{uri.inspect} => #{md.inspect}"} if md != uri.to_s
250
252
  md != uri.to_s ? "<#{md}>" : (get_pname(uri) || "<#{uri}>")
251
253
  end
252
254
 
@@ -263,11 +265,9 @@ module RDF::Turtle
263
265
  protected
264
266
  # Output @base and @prefix definitions
265
267
  def start_document
266
- @started = true
267
-
268
268
  @output.write("#{indent}@base <#{base_uri}> .\n") unless base_uri.to_s.empty?
269
269
 
270
- debug {"start_document: #{prefixes.inspect}"}
270
+ debug("start_document") {prefixes.inspect}
271
271
  prefixes.keys.sort_by(&:to_s).each do |prefix|
272
272
  @output.write("#{indent}@prefix #{prefix}: <#{prefixes[prefix]}> .\n")
273
273
  end
@@ -307,7 +307,7 @@ module RDF::Turtle
307
307
  # Add distinguished classes
308
308
  top_classes.each do |class_uri|
309
309
  graph.query(:predicate => RDF.type, :object => class_uri).map {|st| st.subject}.sort.uniq.each do |subject|
310
- debug {"order_subjects: #{subject.inspect}"}
310
+ debug("order_subjects") {subject.inspect}
311
311
  subjects << subject
312
312
  seen[subject] = true
313
313
  end
@@ -339,7 +339,7 @@ module RDF::Turtle
339
339
  # prefixes.
340
340
  # @param [Statement] statement
341
341
  def preprocess_statement(statement)
342
- #debug {"preprocess: #{statement.inspect}"}
342
+ #debug("preprocess") {statement.inspect}
343
343
  references = ref_count(statement.object) + 1
344
344
  @references[statement.object] = references
345
345
  @subjects[statement.subject] = true
@@ -370,12 +370,9 @@ module RDF::Turtle
370
370
  def reset
371
371
  @depth = 0
372
372
  @lists = {}
373
- @namespaces = {}
374
373
  @references = {}
375
374
  @serialized = {}
376
375
  @subjects = {}
377
- @shortNames = {}
378
- @started = false
379
376
  end
380
377
 
381
378
  ##
@@ -392,28 +389,36 @@ module RDF::Turtle
392
389
  end
393
390
  end
394
391
 
395
- private
392
+ protected
396
393
 
397
394
  ##
398
395
  # Add debug event to debug array, if specified
399
396
  # @param [String] message ("")
400
397
  # @yieldreturn [String] added to message
401
- def debug(message = "", options = {})
398
+ def debug(*args)
402
399
  return unless @options[:debug] || RDF::Turtle.debug?
403
- message += yield if block_given?
400
+ options = args.last.is_a?(Hash) ? args.pop : {}
401
+ depth = options[:depth] || @depth
402
+ message = args.pop
403
+ message = message.call if message.is_a?(Proc)
404
+ args << message if message
405
+ args << yield if block_given?
406
+ message = "#{args.join(': ')}"
404
407
  @options[:debug] << message if @options[:debug].is_a?(Array)
405
408
  $stderr.puts(message) if RDF::Turtle.debug?
406
409
  end
407
410
 
411
+ private
412
+
408
413
  # Checks if l is a valid RDF list, i.e. no nodes have other properties.
409
- def is_valid_list(l)
410
- #debug {"is_valid_list: #{l.inspect}"}
414
+ def is_valid_list?(l)
415
+ #debug("is_valid_list?") {l.inspect}
411
416
  return RDF::List.new(l, @graph).valid?
412
417
  end
413
418
 
414
419
  def do_list(l)
415
420
  list = RDF::List.new(l, @graph)
416
- debug {"do_list: #{list.inspect}"}
421
+ debug("do_list") {list.inspect}
417
422
  position = :subject
418
423
  list.each_statement do |st|
419
424
  next unless st.predicate == RDF.first
@@ -425,8 +430,8 @@ module RDF::Turtle
425
430
  end
426
431
 
427
432
  def p_list(node, position)
428
- return false if !is_valid_list(node)
429
- #debug {"p_list: #{node.inspect}, #{position}"}
433
+ return false if !is_valid_list?(node)
434
+ #debug("p_list") {"#{node.inspect}, #{position}"}
430
435
 
431
436
  @output.write(position == :subject ? "(" : " (")
432
437
  @depth += 2
@@ -444,7 +449,7 @@ module RDF::Turtle
444
449
  def p_squared(node, position)
445
450
  return false unless p_squared?(node, position)
446
451
 
447
- #debug {"p_squared: #{node.inspect}, #{position}"}
452
+ #debug("p_squared") {"#{node.inspect}, #{position}"}
448
453
  subject_done(node)
449
454
  @output.write(position == :subject ? '[' : ' [')
450
455
  @depth += 2
@@ -456,16 +461,16 @@ module RDF::Turtle
456
461
  end
457
462
 
458
463
  def p_default(node, position)
459
- #debug {"p_default: #{node.inspect}, #{position}"}
464
+ #debug("p_default") {"#{node.inspect}, #{position}"}
460
465
  l = (position == :subject ? "" : " ") + format_value(node)
461
466
  @output.write(l)
462
467
  end
463
468
 
464
469
  def path(node, position)
465
- debug do
466
- "path: #{node.inspect}, " +
470
+ debug("path") do
471
+ "#{node.inspect}, " +
467
472
  "pos: #{position}, " +
468
- "[]: #{is_valid_list(node)}, " +
473
+ "[]: #{is_valid_list?(node)}, " +
469
474
  "p2?: #{p_squared?(node, position)}, " +
470
475
  "rc: #{ref_count(node)}"
471
476
  end
@@ -473,7 +478,7 @@ module RDF::Turtle
473
478
  end
474
479
 
475
480
  def verb(node)
476
- debug {"verb: #{node.inspect}"}
481
+ debug("verb") {node.inspect}
477
482
  if node == RDF.type
478
483
  @output.write(" a")
479
484
  else
@@ -482,7 +487,7 @@ module RDF::Turtle
482
487
  end
483
488
 
484
489
  def object_list(objects)
485
- debug {"object_list: #{objects.inspect}"}
490
+ debug("object_list") {objects.inspect}
486
491
  return if objects.empty?
487
492
 
488
493
  objects.each_with_index do |obj, i|
@@ -499,7 +504,7 @@ module RDF::Turtle
499
504
  end
500
505
 
501
506
  prop_list = sort_properties(properties) - [RDF.first.to_s, RDF.rest.to_s]
502
- debug {"predicate_list: #{prop_list.inspect}"}
507
+ debug("predicate_list") {prop_list.inspect}
503
508
  return if prop_list.empty?
504
509
 
505
510
  prop_list.each_with_index do |prop, i|
@@ -515,13 +520,13 @@ module RDF::Turtle
515
520
  end
516
521
 
517
522
  def s_squared?(subject)
518
- ref_count(subject) == 0 && subject.is_a?(RDF::Node) && !is_valid_list(subject)
523
+ ref_count(subject) == 0 && subject.is_a?(RDF::Node) && !is_valid_list?(subject)
519
524
  end
520
525
 
521
526
  def s_squared(subject)
522
527
  return false unless s_squared?(subject)
523
528
 
524
- debug {"s_squared: #{subject.inspect}"}
529
+ debug("s_squared") {subject.inspect}
525
530
  @output.write("\n#{indent} [")
526
531
  @depth += 1
527
532
  predicate_list(subject)
@@ -539,7 +544,7 @@ module RDF::Turtle
539
544
  end
540
545
 
541
546
  def statement(subject)
542
- debug {"statement: #{subject.inspect}, s2?: #{s_squared?(subject)}"}
547
+ debug("statement") {"#{subject.inspect}, s2?: #{s_squared?(subject)}"}
543
548
  subject_done(subject)
544
549
  s_squared(subject) || s_default(subject)
545
550
  @output.puts
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rdf-turtle
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-09-27 00:00:00.000000000 Z
12
+ date: 2011-12-22 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rdf
16
- requirement: &2161375780 !ruby/object:Gem::Requirement
16
+ requirement: &2166587480 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,21 +21,32 @@ dependencies:
21
21
  version: 0.3.4
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2161375780
24
+ version_requirements: *2166587480
25
25
  - !ruby/object:Gem::Dependency
26
- name: yard
27
- requirement: &2161375180 !ruby/object:Gem::Requirement
26
+ name: open-uri-cached
27
+ requirement: &2166586740 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
31
31
  - !ruby/object:Gem::Version
32
- version: 0.6.0
32
+ version: 0.0.4
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *2161375180
35
+ version_requirements: *2166586740
36
+ - !ruby/object:Gem::Dependency
37
+ name: spira
38
+ requirement: &2166586000 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: 0.0.12
44
+ type: :development
45
+ prerelease: false
46
+ version_requirements: *2166586000
36
47
  - !ruby/object:Gem::Dependency
37
48
  name: rspec
38
- requirement: &2161374480 !ruby/object:Gem::Requirement
49
+ requirement: &2166585320 !ruby/object:Gem::Requirement
39
50
  none: false
40
51
  requirements:
41
52
  - - ! '>='
@@ -43,10 +54,21 @@ dependencies:
43
54
  version: 2.5.0
44
55
  type: :development
45
56
  prerelease: false
46
- version_requirements: *2161374480
57
+ version_requirements: *2166585320
58
+ - !ruby/object:Gem::Dependency
59
+ name: rdf-isomorphic
60
+ requirement: &2166584640 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: 0.3.4
66
+ type: :development
67
+ prerelease: false
68
+ version_requirements: *2166584640
47
69
  - !ruby/object:Gem::Dependency
48
70
  name: rdf-n3
49
- requirement: &2161373540 !ruby/object:Gem::Requirement
71
+ requirement: &2166577480 !ruby/object:Gem::Requirement
50
72
  none: false
51
73
  requirements:
52
74
  - - ! '>='
@@ -54,10 +76,10 @@ dependencies:
54
76
  version: 0.3.5
55
77
  type: :development
56
78
  prerelease: false
57
- version_requirements: *2161373540
79
+ version_requirements: *2166577480
58
80
  - !ruby/object:Gem::Dependency
59
81
  name: rdf-spec
60
- requirement: &2161372320 !ruby/object:Gem::Requirement
82
+ requirement: &2166576800 !ruby/object:Gem::Requirement
61
83
  none: false
62
84
  requirements:
63
85
  - - ! '>='
@@ -65,18 +87,18 @@ dependencies:
65
87
  version: 0.3.4
66
88
  type: :development
67
89
  prerelease: false
68
- version_requirements: *2161372320
90
+ version_requirements: *2166576800
69
91
  - !ruby/object:Gem::Dependency
70
- name: rdf-isomorphic
71
- requirement: &2161347600 !ruby/object:Gem::Requirement
92
+ name: yard
93
+ requirement: &2166576000 !ruby/object:Gem::Requirement
72
94
  none: false
73
95
  requirements:
74
96
  - - ! '>='
75
97
  - !ruby/object:Gem::Version
76
- version: 0.3.4
98
+ version: 0.6.0
77
99
  type: :development
78
100
  prerelease: false
79
- version_requirements: *2161347600
101
+ version_requirements: *2166576000
80
102
  description: RDF::Turtle is an Turtle reader/writer for the RDF.rb library suite.
81
103
  email: public-rdf-ruby@w3.org
82
104
  executables: []
@@ -93,7 +115,6 @@ files:
93
115
  - lib/rdf/ll1/scanner.rb
94
116
  - lib/rdf/turtle/format.rb
95
117
  - lib/rdf/turtle/meta.rb
96
- - lib/rdf/turtle/patches.rb
97
118
  - lib/rdf/turtle/reader.rb
98
119
  - lib/rdf/turtle/terminals.rb
99
120
  - lib/rdf/turtle/version.rb
@@ -125,3 +146,4 @@ signing_key:
125
146
  specification_version: 3
126
147
  summary: Turtle reader/writer for Ruby.
127
148
  test_files: []
149
+ has_rdoc: false