rdf 3.0.2 → 3.0.3

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
  SHA256:
3
- metadata.gz: 310f7614fec8b30d87c0325fd5bceaa0e0dd6a5165ddf863a2d0460982f5be67
4
- data.tar.gz: dca8aa6de3cd44cd1bcb09e57f1b4c1cc8a3413cd0ce08c39466b566dcb27fc3
3
+ metadata.gz: cbddc1758793b9251e0f2e6570a5a222bf32aa39fcc2e73d1d454b84af90062a
4
+ data.tar.gz: 4ad7cca943663997855d26d6a741138c0bad7ad3258d8a8fa081e701d5657785
5
5
  SHA512:
6
- metadata.gz: cb9ceb047dac566de6d389194c5ee875b624021cada5a3b29e7bd0c5f2b1ce87820441b9f137e754ee86505877fe63699cf4a5eac5cb93168d17c3d838e732b1
7
- data.tar.gz: 5deb0de70b72a4c00e637e50555c80364e0721f6f968481b7db463131f84f38176686b7a36556d17bd936a34c09ef16ec4429651d229ba70edc3bf9e6ddc7018
6
+ metadata.gz: 587ff46cfde46b088a9b5994a350bffffc189c96e26a6c9c426ae204b731872858c6b80379a36b3b17c69192b47b81f67b005bd728fd858a0db385f44e70e09e
7
+ data.tar.gz: 0a048848ce6db55add239882c35a2e0df981ec9ea0afbd3070f1cde536168382d00177a6d2467e196d69ee14a816367c29133263d39c921b5876af63b4dd1d19
data/VERSION CHANGED
@@ -1 +1 @@
1
- 3.0.2
1
+ 3.0.3
@@ -92,6 +92,10 @@ module RDF
92
92
  # @return [String]
93
93
  attr_reader :description
94
94
 
95
+ # Default value for this option
96
+ # @return [Object]
97
+ attr_reader :default
98
+
95
99
  # Potential values (for select or radio) or Ruby datatype
96
100
  # @return [Class, Array<String>]
97
101
  attr_reader :datatype
@@ -110,6 +114,7 @@ module RDF
110
114
  # @param [Symbol] symbol
111
115
  # @param [Array<String>] on
112
116
  # @param [String] datatype
117
+ # @param [Object] default
113
118
  # @param [String] control
114
119
  # @param [String] description
115
120
  # @param [[:optional, :disabled, :removed, :required]] use
@@ -118,10 +123,10 @@ module RDF
118
123
  # @yieldparam [OptionParser] options (nil) optional OptionParser
119
124
  # @yieldreturn [Object] a possibly modified input value
120
125
  def initialize(symbol: nil, on: nil, datatype: nil, control: nil,
121
- description: nil, use: :optional, **options, &block)
126
+ description: nil, use: :optional, default: nil, **options, &block)
122
127
  raise ArgumentError, "symbol is a required argument" unless symbol
123
128
  raise ArgumentError, "on is a required argument" unless on
124
- @symbol, @on, @datatype, @control, @description, @use, @callback = symbol.to_sym, Array(on), datatype, control, description, use, block
129
+ @symbol, @on, @datatype, @control, @description, @use, @default, @callback = symbol.to_sym, Array(on), datatype, control, description, use, default, block
125
130
  end
126
131
 
127
132
  def call(arg, options = {})
@@ -142,6 +147,7 @@ module RDF
142
147
  {
143
148
  symbol: symbol,
144
149
  datatype: (datatype.is_a?(Class) ? datatype.name : datatype),
150
+ default: default,
145
151
  control: control,
146
152
  description: description,
147
153
  use: use
@@ -170,8 +170,7 @@ module RDF
170
170
  @language = language.to_s.downcase.to_sym if language
171
171
  @datatype = RDF::URI(datatype).freeze if datatype
172
172
  @datatype ||= self.class.const_get(:DATATYPE) if self.class.const_defined?(:DATATYPE)
173
- @datatype ||= @language ? RDF.langString : RDF::XSD.string
174
- raise ArgumentError, "datatype of rdf:langString requires a language" if !@language && @datatype == RDF::langString
173
+ @datatype ||= @language ? RDF.langString : RDF::URI("http://www.w3.org/2001/XMLSchema#string")
175
174
  end
176
175
 
177
176
  ##
@@ -226,8 +225,8 @@ module RDF
226
225
  # * The arguments are plain literals with identical language tags
227
226
  # * The first argument is a plain literal with language tag and the second argument is a simple literal or literal typed as xsd:string
228
227
  has_language? ?
229
- (language == other.language || other.datatype == RDF::XSD.string) :
230
- other.datatype == RDF::XSD.string
228
+ (language == other.language || other.datatype == RDF::URI("http://www.w3.org/2001/XMLSchema#string")) :
229
+ other.datatype == RDF::URI("http://www.w3.org/2001/XMLSchema#string")
231
230
  end
232
231
 
233
232
  ##
@@ -317,7 +316,7 @@ module RDF
317
316
  # @return [Boolean] `true` or `false`
318
317
  # @see http://www.w3.org/TR/rdf-concepts/#dfn-plain-literal
319
318
  def plain?
320
- [RDF.langString, RDF::XSD.string].include?(datatype)
319
+ [RDF.langString, RDF::URI("http://www.w3.org/2001/XMLSchema#string")].include?(datatype)
321
320
  end
322
321
 
323
322
  ##
@@ -327,7 +326,7 @@ module RDF
327
326
  # @return [Boolean] `true` or `false`
328
327
  # @see http://www.w3.org/TR/sparql11-query/#simple_literal
329
328
  def simple?
330
- datatype == RDF::XSD.string
329
+ datatype == RDF::URI("http://www.w3.org/2001/XMLSchema#string")
331
330
  end
332
331
 
333
332
  ##
@@ -361,6 +360,8 @@ module RDF
361
360
  # @return [Boolean] `true` or `false`
362
361
  # @since 0.2.1
363
362
  def valid?
363
+ return false if language? && language.to_s !~ /^[a-zA-Z]+(-[a-zA-Z0-9]+)*$/
364
+ return false if datatype? && datatype.invalid?
364
365
  grammar = self.class.const_get(:GRAMMAR) rescue nil
365
366
  grammar.nil? || !!(value =~ grammar)
366
367
  end
@@ -487,7 +488,7 @@ module RDF
487
488
  def method_missing(name, *args)
488
489
  case name
489
490
  when :to_str
490
- return to_s if @datatype == RDF.langString || @datatype == RDF::XSD.string
491
+ return to_s if @datatype == RDF.langString || @datatype == RDF::URI("http://www.w3.org/2001/XMLSchema#string")
491
492
  end
492
493
  super
493
494
  end
@@ -495,7 +496,7 @@ module RDF
495
496
  def respond_to_missing?(name, include_private = false)
496
497
  case name
497
498
  when :to_str
498
- return true if @datatype == RDF.langString || @datatype == RDF::XSD.string
499
+ return true if @datatype == RDF.langString || @datatype == RDF::URI("http://www.w3.org/2001/XMLSchema#string")
499
500
  end
500
501
  super
501
502
  end
@@ -5,7 +5,7 @@ module RDF; class Literal
5
5
  # @see http://www.w3.org/TR/xmlschema11-2/#boolean
6
6
  # @since 0.2.1
7
7
  class Boolean < Literal
8
- DATATYPE = RDF::XSD.boolean
8
+ DATATYPE = RDF::URI("http://www.w3.org/2001/XMLSchema#boolean")
9
9
  GRAMMAR = /^(true|false|1|0)$/.freeze
10
10
  TRUES = %w(true 1).freeze
11
11
  FALSES = %w(false 0).freeze
@@ -5,7 +5,7 @@ module RDF; class Literal
5
5
  # @see http://www.w3.org/TR/xmlschema11-2/#date
6
6
  # @since 0.2.1
7
7
  class Date < Literal
8
- DATATYPE = RDF::XSD.date
8
+ DATATYPE = RDF::URI("http://www.w3.org/2001/XMLSchema#date")
9
9
  GRAMMAR = %r(\A(-?\d{4}-\d{2}-\d{2})((?:[\+\-]\d{2}:\d{2})|UTC|GMT|Z)?\Z).freeze
10
10
  FORMAT = '%Y-%m-%d'.freeze
11
11
 
@@ -5,7 +5,7 @@ module RDF; class Literal
5
5
  # @see http://www.w3.org/TR/xmlschema11-2/#dateTime#boolean
6
6
  # @since 0.2.1
7
7
  class DateTime < Literal
8
- DATATYPE = RDF::XSD.dateTime
8
+ DATATYPE = RDF::URI("http://www.w3.org/2001/XMLSchema#dateTime")
9
9
  GRAMMAR = %r(\A(-?\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?)((?:[\+\-]\d{2}:\d{2})|UTC|GMT|Z)?\Z).freeze
10
10
  FORMAT = '%Y-%m-%dT%H:%M:%S%:z'.freeze
11
11
 
@@ -57,14 +57,14 @@ module RDF; class Literal
57
57
  # @return [RDF::Literal]
58
58
  def timezone
59
59
  if tz == 'Z'
60
- RDF::Literal("PT0S", datatype: RDF::XSD.dayTimeDuration)
60
+ RDF::Literal("PT0S", datatype: RDF::URI("http://www.w3.org/2001/XMLSchema#dayTimeDuration"))
61
61
  elsif md = tz.to_s.match(/^([+-])?(\d+):(\d+)?$/)
62
62
  plus_minus, hour, min = md[1,3]
63
63
  plus_minus = nil unless plus_minus == "-"
64
64
  hour = hour.to_i
65
65
  min = min.to_i
66
66
  res = "#{plus_minus}PT#{hour}H#{"#{min}M" if min > 0}"
67
- RDF::Literal(res, datatype: RDF::XSD.dayTimeDuration)
67
+ RDF::Literal(res, datatype: RDF::URI("http://www.w3.org/2001/XMLSchema#dayTimeDuration"))
68
68
  end
69
69
  end
70
70
 
@@ -11,7 +11,7 @@ module RDF; class Literal
11
11
  # @see http://www.w3.org/TR/xmlschema11-2/#decimal
12
12
  # @since 0.2.1
13
13
  class Decimal < Numeric
14
- DATATYPE = RDF::XSD.decimal
14
+ DATATYPE = RDF::URI("http://www.w3.org/2001/XMLSchema#decimal")
15
15
  GRAMMAR = /^[\+\-]?\d+(\.\d*)?$/.freeze
16
16
 
17
17
  ##
@@ -11,7 +11,7 @@ module RDF; class Literal
11
11
  # @see http://www.w3.org/TR/xmlschema11-2/#double
12
12
  # @since 0.2.1
13
13
  class Double < Numeric
14
- DATATYPE = RDF::XSD.double
14
+ DATATYPE = RDF::URI("http://www.w3.org/2001/XMLSchema#double")
15
15
  GRAMMAR = /^(?:NaN|\-?INF|[+\-]?(?:\d+(:?\.\d*)?|\.\d+)(?:[eE][\+\-]?\d+)?)$/.freeze
16
16
 
17
17
  ##
@@ -12,7 +12,7 @@ module RDF; class Literal
12
12
  # @see http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#integer
13
13
  # @since 0.2.1
14
14
  class Integer < Decimal
15
- DATATYPE = RDF::XSD.integer
15
+ DATATYPE = RDF::URI("http://www.w3.org/2001/XMLSchema#integer")
16
16
  GRAMMAR = /^[\+\-]?\d+$/.freeze
17
17
 
18
18
  ##
@@ -10,7 +10,7 @@ module RDF; class Literal
10
10
  # @see http://www.w3.org/TR/xmlschema11-2/#time
11
11
  # @since 0.2.1
12
12
  class Time < Literal
13
- DATATYPE = RDF::XSD.time
13
+ DATATYPE = RDF::URI("http://www.w3.org/2001/XMLSchema#time")
14
14
  GRAMMAR = %r(\A(\d{2}:\d{2}:\d{2}(?:\.\d+)?)((?:[\+\-]\d{2}:\d{2})|UTC|GMT|Z)?\Z).freeze
15
15
  FORMAT = '%H:%M:%S%:z'.freeze
16
16
 
@@ -5,7 +5,7 @@ module RDF; class Literal
5
5
  # @see http://www.w3.org/TR/xmlschema11-2/#token
6
6
  # @since 0.2.3
7
7
  class Token < Literal
8
- DATATYPE = RDF::XSD.token
8
+ DATATYPE = RDF::URI("http://www.w3.org/2001/XMLSchema#token")
9
9
  GRAMMAR = /\A[^\x0D\x0A\x09]+\z/i.freeze # FIXME
10
10
 
11
11
  ##
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rdf
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.2
4
+ version: 3.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Arto Bendiken
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2018-03-21 00:00:00.000000000 Z
13
+ date: 2018-09-09 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: link_header
@@ -297,7 +297,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
297
297
  version: '0'
298
298
  requirements: []
299
299
  rubyforge_project:
300
- rubygems_version: 2.7.4
300
+ rubygems_version: 2.7.6
301
301
  signing_key:
302
302
  specification_version: 4
303
303
  summary: A Ruby library for working with Resource Description Framework (RDF) data.