Skip to content

Commit 78b2de6

Browse files
committed
Finish 2.0.1
2 parents 50f2a64 + 28128f7 commit 78b2de6

13 files changed

Lines changed: 172 additions & 157 deletions

File tree

.travis.yml

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,11 @@ rvm:
77
- 2.0
88
- 2.1
99
- 2.2.4
10-
- 2.3.0
10+
- 2.3.1
1111
- jruby-9.0.4.0
1212
- rbx-2
1313
cache: bundler
1414
sudo: false
15-
matrix:
16-
allow_failures:
17-
- rvm: rbx-2
1815
addons:
1916
code_climate:
20-
repo_token: 5806cc8a21c03f4e2f9d3b9d98d5d9fe084b66243b1dbb27b467dbc795acdcac
17+
repo_token: 5806cc8a21c03f4e2f9d3b9d98d5d9fe084b66243b1dbb27b467dbc795acdcac

Gemfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ group :debug do
1818
gem "wirble"
1919
gem "redcarpet", platforms: :ruby
2020
gem "byebug", platforms: :mri
21+
gem 'rubinius-debugger', platform: :rbx
2122
gem 'guard-rspec'
2223
end
2324

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2.0.0
1+
2.0.1

bin/rdf

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,5 @@ end
2626

2727
abort options.banner if ARGV.empty? && !options.options[:evaluate]
2828

29-
RDF::CLI.exec(ARGV, options.options)
29+
# Add option_parser to parsed options to enable help
30+
RDF::CLI.exec(ARGV, options.options.merge(option_parser: options))

lib/rdf/cli.rb

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
require 'linkeddata'
99
rescue LoadError
1010
# Silently load without linkeddata, but try some others
11-
%w(reasoner rdfa rdfxml turtle json/ld ld/patch).each do |ser|
11+
%w(reasoner rdfa rdfxml turtle vocab json/ld ld/patch).each do |ser|
1212
begin
1313
require ser.include?('/') ? ser : "rdf/#{ser}"
1414
rescue LoadError
@@ -345,16 +345,16 @@ def self.exec(args, options = {})
345345
cmds, args = args.partition {|e| commands.include?(e.to_s)}
346346

347347
if cmds.empty?
348-
usage(options)
348+
usage(options.fetch(:option_parser, self.options))
349349
abort "No command given"
350350
end
351351

352352
if cmds.first == 'help'
353353
on_cmd = cmds[1]
354354
if on_cmd && COMMANDS.fetch(on_cmd.to_sym, {})[:help]
355-
usage(self.options, banner: "Usage: #{self.basename.split('/').last} #{COMMANDS[on_cmd.to_sym][:help]}")
355+
usage(options.fetch(:option_parser, self.options), banner: "Usage: #{self.basename.split('/').last} #{COMMANDS[on_cmd.to_sym][:help]}")
356356
else
357-
usage(self.options)
357+
usage(options.fetch(:option_parser, self.options))
358358
end
359359
return
360360
end

lib/rdf/model/list.rb

Lines changed: 24 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
# coding: utf-8
12
module RDF
23
##
34
# An RDF list.
@@ -344,12 +345,7 @@ def []=(*args)
344345
# @see http://ruby-doc.org/core-2.2.2/Array.html#method-i-unshift
345346
#
346347
def unshift(value)
347-
value = case value
348-
when nil then RDF.nil
349-
when RDF::Term then value
350-
when Array then RDF::List.new(subject: nil, graph: graph, values: value)
351-
else value
352-
end
348+
value = normalize_value(value)
353349

354350
new_subject, old_subject = RDF::Node.new, subject
355351

@@ -407,12 +403,7 @@ def clear
407403
# @return [RDF::List]
408404
# @see http://ruby-doc.org/core-2.2.2/Array.html#method-i-3C-3C
409405
def <<(value)
410-
value = case value
411-
when nil then RDF.nil
412-
when RDF::Value then value
413-
when Array then RDF::List.new(subject: nil, graph: graph, values: value)
414-
else value
415-
end
406+
value = normalize_value(value)
416407

417408
if empty?
418409
@subject = new_subject = RDF::Node.new
@@ -547,12 +538,11 @@ def slice_with_range(range)
547538
# RDF::List[1, 2, 3].fetch(4, nil) #=> nil
548539
# RDF::List[1, 2, 3].fetch(4) { |n| n*n } #=> 16
549540
#
550-
# @return [RDF::Term]
541+
# @return [RDF::Term, nil]
551542
# @see http://ruby-doc.org/core-1.9/classes/Array.html#M000420
552543
def fetch(index, default = UNSET)
553-
each.with_index do |v, i|
554-
return v if i == index
555-
end
544+
val = at(index)
545+
return val unless val.nil?
556546

557547
case
558548
when block_given? then yield index
@@ -568,12 +558,10 @@ def fetch(index, default = UNSET)
568558
# RDF::List[1, 2, 3].at(0) #=> 1
569559
# RDF::List[1, 2, 3].at(4) #=> nil
570560
#
571-
# @return [RDF::Term]
561+
# @return [RDF::Term, nil]
572562
# @see http://ruby-doc.org/core-2.2.2/Array.html#method-i-at
573563
def at(index)
574-
each.with_index do |v, i|
575-
return v if i == index
576-
end
564+
each.with_index { |v, i| return v if i == index }
577565
return nil
578566
end
579567

@@ -943,5 +931,21 @@ def inspect
943931
sprintf("#<%s:%#0x(%s)>", self.class.name, __id__, join(', '))
944932
end
945933
end
934+
935+
private
936+
937+
##
938+
# Normalizes `Array` to `RDF::List` and `nil` to `RDF.nil`.
939+
#
940+
# @param value [Object]
941+
# @return [RDF::Value, Object] normalized value
942+
def normalize_value(value)
943+
case value
944+
when nil then RDF.nil
945+
when RDF::Value then value
946+
when Array then RDF::List.new(subject: nil, graph: graph, values: value)
947+
else value
948+
end
949+
end
946950
end
947951
end

lib/rdf/model/literal/double.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ module RDF; class Literal
1212
# @since 0.2.1
1313
class Double < Numeric
1414
DATATYPE = RDF::XSD.double
15-
GRAMMAR = /^NaN|(?:[\+\-]?(?:INF|(?:\d+(\.\d*)?([eE][\+\-]?\d+)?)))$/.freeze
15+
GRAMMAR = /^(?:NaN|(?:[\+\-]?(?:INF|(?:\d+(\.\d*)?([eE][\+\-]?\d+)?))))$/.freeze
1616

1717
##
1818
# @param [Float, #to_f] value

lib/rdf/model/uri.rb

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1235,7 +1235,7 @@ def query_values=(value)
12351235

12361236
value = value.to_hash if value.respond_to?(:to_hash)
12371237
self.query = case value
1238-
when Array
1238+
when Array, Hash
12391239
value.map do |(k,v)|
12401240
k = normalize_segment(k.to_s, UNRESERVED)
12411241
if v.nil?
@@ -1250,21 +1250,6 @@ def query_values=(value)
12501250
end.join("&")
12511251
end
12521252
end
1253-
when Hash
1254-
value.map do |k, v|
1255-
k = normalize_segment(k.to_s, UNRESERVED)
1256-
if v.nil?
1257-
k
1258-
else
1259-
Array(v).map do |vv|
1260-
if vv === TrueClass
1261-
k
1262-
else
1263-
"#{k}=#{normalize_segment(vv.to_s, UNRESERVED)}"
1264-
end
1265-
end.join("&")
1266-
end
1267-
end
12681253
else
12691254
raise TypeError,
12701255
"Can't convert #{value.class} into Hash."

lib/rdf/transaction.rb

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -113,26 +113,6 @@ def self.begin(repository, mutable: false, **options, &block)
113113
# @since 2.0.0
114114
attr_reader :changes
115115

116-
##
117-
# RDF statements to delete when executed.
118-
#
119-
# @deprecated
120-
# @return [RDF::Enumerable]
121-
def deletes
122-
warn "[DEPRECATION] Transaction#deletes now uses keyword arguments. Called from #{Gem.location_of_caller.join(':')}"
123-
self.changes.deletes
124-
end
125-
126-
##
127-
# RDF statements to insert when executed.
128-
#
129-
# @deprecated
130-
# @return [RDF::Enumerable]
131-
def inserts
132-
warn "[DEPRECATION] Transaction#inserts now uses keyword arguments. Called from #{Gem.location_of_caller.join(':')}"
133-
self.changes.inserts
134-
end
135-
136116
##
137117
# Any additional options for this transaction.
138118
#

lib/rdf/vocab/rdfv.rb

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -13,37 +13,37 @@ def name; "RDF"; end
1313
term :Alt,
1414
comment: %(The class of containers of alternatives.).freeze,
1515
label: "Alt".freeze,
16-
"rdfs:isDefinedBy" => %(rdf:).freeze,
16+
:"rdfs:isDefinedBy" => %(rdf:).freeze,
1717
subClassOf: "rdfs:Container".freeze,
1818
type: "rdfs:Class".freeze
1919
term :Bag,
2020
comment: %(The class of unordered containers.).freeze,
2121
label: "Bag".freeze,
22-
"rdfs:isDefinedBy" => %(rdf:).freeze,
22+
:"rdfs:isDefinedBy" => %(rdf:).freeze,
2323
subClassOf: "rdfs:Container".freeze,
2424
type: "rdfs:Class".freeze
2525
term :List,
2626
comment: %(The class of RDF Lists.).freeze,
2727
label: "List".freeze,
28-
"rdfs:isDefinedBy" => %(rdf:).freeze,
28+
:"rdfs:isDefinedBy" => %(rdf:).freeze,
2929
subClassOf: "rdfs:Resource".freeze,
3030
type: "rdfs:Class".freeze
3131
term :Property,
3232
comment: %(The class of RDF properties.).freeze,
3333
label: "Property".freeze,
34-
"rdfs:isDefinedBy" => %(rdf:).freeze,
34+
:"rdfs:isDefinedBy" => %(rdf:).freeze,
3535
subClassOf: "rdfs:Resource".freeze,
3636
type: "rdfs:Class".freeze
3737
term :Seq,
3838
comment: %(The class of ordered containers.).freeze,
3939
label: "Seq".freeze,
40-
"rdfs:isDefinedBy" => %(rdf:).freeze,
40+
:"rdfs:isDefinedBy" => %(rdf:).freeze,
4141
subClassOf: "rdfs:Container".freeze,
4242
type: "rdfs:Class".freeze
4343
term :Statement,
4444
comment: %(The class of RDF statements.).freeze,
4545
label: "Statement".freeze,
46-
"rdfs:isDefinedBy" => %(rdf:).freeze,
46+
:"rdfs:isDefinedBy" => %(rdf:).freeze,
4747
subClassOf: "rdfs:Resource".freeze,
4848
type: "rdfs:Class".freeze
4949

@@ -53,84 +53,84 @@ def name; "RDF"; end
5353
domain: "rdf:List".freeze,
5454
label: "first".freeze,
5555
range: "rdfs:Resource".freeze,
56-
"rdfs:isDefinedBy" => %(rdf:).freeze,
56+
:"rdfs:isDefinedBy" => %(rdf:).freeze,
5757
type: "rdf:Property".freeze
5858
property :object,
5959
comment: %(The object of the subject RDF statement.).freeze,
6060
domain: "rdf:Statement".freeze,
6161
label: "object".freeze,
6262
range: "rdfs:Resource".freeze,
63-
"rdfs:isDefinedBy" => %(rdf:).freeze,
63+
:"rdfs:isDefinedBy" => %(rdf:).freeze,
6464
type: "rdf:Property".freeze
6565
property :predicate,
6666
comment: %(The predicate of the subject RDF statement.).freeze,
6767
domain: "rdf:Statement".freeze,
6868
label: "predicate".freeze,
6969
range: "rdfs:Resource".freeze,
70-
"rdfs:isDefinedBy" => %(rdf:).freeze,
70+
:"rdfs:isDefinedBy" => %(rdf:).freeze,
7171
type: "rdf:Property".freeze
7272
property :rest,
7373
comment: %(The rest of the subject RDF list after the first item.).freeze,
7474
domain: "rdf:List".freeze,
7575
label: "rest".freeze,
7676
range: "rdf:List".freeze,
77-
"rdfs:isDefinedBy" => %(rdf:).freeze,
77+
:"rdfs:isDefinedBy" => %(rdf:).freeze,
7878
type: "rdf:Property".freeze
7979
property :subject,
8080
comment: %(The subject of the subject RDF statement.).freeze,
8181
domain: "rdf:Statement".freeze,
8282
label: "subject".freeze,
8383
range: "rdfs:Resource".freeze,
84-
"rdfs:isDefinedBy" => %(rdf:).freeze,
84+
:"rdfs:isDefinedBy" => %(rdf:).freeze,
8585
type: "rdf:Property".freeze
8686
property :type,
8787
comment: %(The subject is an instance of a class.).freeze,
8888
domain: "rdfs:Resource".freeze,
8989
label: "type".freeze,
9090
range: "rdfs:Class".freeze,
91-
"rdfs:isDefinedBy" => %(rdf:).freeze,
91+
:"rdfs:isDefinedBy" => %(rdf:).freeze,
9292
type: "rdf:Property".freeze
9393
property :value,
9494
comment: %(Idiomatic property used for structured values.).freeze,
9595
domain: "rdfs:Resource".freeze,
9696
label: "value".freeze,
9797
range: "rdfs:Resource".freeze,
98-
"rdfs:isDefinedBy" => %(rdf:).freeze,
98+
:"rdfs:isDefinedBy" => %(rdf:).freeze,
9999
type: "rdf:Property".freeze
100100

101101
# Datatype definitions
102102
term :HTML,
103103
comment: %(The datatype of RDF literals storing fragments of HTML content).freeze,
104104
label: "HTML".freeze,
105-
"rdfs:isDefinedBy" => %(rdf:).freeze,
106-
"rdfs:seeAlso" => %(http://www.w3.org/TR/rdf11-concepts/#section-html).freeze,
105+
:"rdfs:isDefinedBy" => %(rdf:).freeze,
106+
:"rdfs:seeAlso" => %(http://www.w3.org/TR/rdf11-concepts/#section-html).freeze,
107107
subClassOf: "rdfs:Literal".freeze,
108108
type: "rdfs:Datatype".freeze
109109
term :PlainLiteral,
110110
comment: %(The class of plain \(i.e. untyped\) literal values, as used in RIF and OWL 2).freeze,
111111
label: "PlainLiteral".freeze,
112-
"rdfs:isDefinedBy" => %(rdf:).freeze,
113-
"rdfs:seeAlso" => %(http://www.w3.org/TR/rdf-plain-literal/).freeze,
112+
:"rdfs:isDefinedBy" => %(rdf:).freeze,
113+
:"rdfs:seeAlso" => %(http://www.w3.org/TR/rdf-plain-literal/).freeze,
114114
subClassOf: "rdfs:Literal".freeze,
115115
type: "rdfs:Datatype".freeze
116116
term :XMLLiteral,
117117
comment: %(The datatype of XML literal values.).freeze,
118118
label: "XMLLiteral".freeze,
119-
"rdfs:isDefinedBy" => %(rdf:).freeze,
119+
:"rdfs:isDefinedBy" => %(rdf:).freeze,
120120
subClassOf: "rdfs:Literal".freeze,
121121
type: "rdfs:Datatype".freeze
122122
term :langString,
123123
comment: %(The datatype of language-tagged string values).freeze,
124124
label: "langString".freeze,
125-
"rdfs:isDefinedBy" => %(rdf:).freeze,
126-
"rdfs:seeAlso" => %(http://www.w3.org/TR/rdf11-concepts/#section-Graph-Literal).freeze,
125+
:"rdfs:isDefinedBy" => %(rdf:).freeze,
126+
:"rdfs:seeAlso" => %(http://www.w3.org/TR/rdf11-concepts/#section-Graph-Literal).freeze,
127127
subClassOf: "rdfs:Literal".freeze,
128128
type: "rdfs:Datatype".freeze
129129

130130
# Extra definitions
131131
term :"",
132-
"dc11:description" => %(This is the RDF Schema for the RDF vocabulary terms in the RDF Namespace, defined in RDF 1.1 Concepts.).freeze,
133-
"dc11:title" => %(The RDF Concepts Vocabulary \(RDF\)).freeze,
132+
:"dc11:description" => %(This is the RDF Schema for the RDF vocabulary terms in the RDF Namespace, defined in RDF 1.1 Concepts.).freeze,
133+
:"dc11:title" => %(The RDF Concepts Vocabulary \(RDF\)).freeze,
134134
type: "owl:Ontology".freeze
135135
term :Description,
136136
comment: %(RDF/XML node element).freeze,
@@ -150,7 +150,7 @@ def name; "RDF"; end
150150
term :nil,
151151
comment: %(The empty list, with no items in it. If the rest of a list is nil then the list has no more items in it.).freeze,
152152
label: "nil".freeze,
153-
"rdfs:isDefinedBy" => %(rdf:).freeze,
153+
:"rdfs:isDefinedBy" => %(rdf:).freeze,
154154
type: "rdf:List".freeze
155155
term :nodeID,
156156
comment: %(RDF/XML Blank Node identifier).freeze,

0 commit comments

Comments
 (0)