rdf 2.0.1 → 2.0.2

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: 3b35c022bb44e2984bddf19489cd1f4735c03b75
4
- data.tar.gz: 720f825d01d2c76aca6e27e0b1ad2101beebc362
3
+ metadata.gz: 9264fbe27f459f9604dbcb9c4c51cb337699186f
4
+ data.tar.gz: 0dd6fc0bc4406fe10b947cd2b784ca00d24a01f3
5
5
  SHA512:
6
- metadata.gz: fab5abcd8aa2c90c9ab0a4ddd8fe33c25bd83cb0a5e2451fb64e7e0b00c19354aff75f8aa51fa228ebdf3c8522d3b1e19ff02bad2be809e302532a38d11ebb80
7
- data.tar.gz: e73edad908ae432613d5f4cfd2e712fa933fb0b75f185acf8731a9948de8bd8c9e1679a39faefbb5457a55a5c0ee0d16717ec84363d2ca518cfe0538c8afc331
6
+ metadata.gz: 7bcb3e1123ee603fd659cbaccf429ccceded50e109eed283e56b6bab09b3b776b3727cf5c354df0ce9bf0df3e54e2f8ad2c304399eacc9236f763d08b097c38c
7
+ data.tar.gz: 468bdca03374b09c08a20de648955c2eb3fa6309c7a98e5aaf698230902b58b6989b5813afdb8152f975f4a42cce329b0ef1fddaa5b0d553810aea69682006c3
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.0.1
1
+ 2.0.2
@@ -139,6 +139,13 @@ module RDF
139
139
  # @return [RDF::Graph] the underlying graph storing the statements that constitute this list
140
140
  attr_reader :graph
141
141
 
142
+ ##
143
+ # @see RDF::Value#==
144
+ def ==(other)
145
+ return false if other.is_a?(RDF::Value) && !other.list?
146
+ super
147
+ end
148
+
142
149
  ##
143
150
  # Returns the set intersection of this list and `other`.
144
151
  #
@@ -272,7 +279,7 @@ module RDF
272
279
  # a[3, 0] = "B" #=> [1, 2, "A", "B"]
273
280
  #
274
281
  # @overload []=(index, term)
275
- # Replaces the element at `index` with `term`.
282
+ # Replaces the element at `index` with `term`.
276
283
  # @param [Integer] index
277
284
  # @param [RDF::Term] term
278
285
  # A non-RDF::Term is coerced to a Literal.
@@ -445,7 +452,7 @@ module RDF
445
452
  # @return [Integer]
446
453
  # @see http://ruby-doc.org/core-2.2.2/Array.html#method-i-3C-3D-3E
447
454
  def <=>(other)
448
- to_a <=> other.to_a # TODO: optimize this
455
+ to_a <=> Array(other)
449
456
  end
450
457
 
451
458
  ##
@@ -135,7 +135,7 @@ module RDF
135
135
  #
136
136
  # @return [Boolean]
137
137
  def variable?
138
- !(has_subject? && subject.resource? &&
138
+ !(has_subject? && subject.resource? &&
139
139
  has_predicate? && predicate.resource? &&
140
140
  has_object? && (object.resource? || object.literal?) &&
141
141
  (has_graph? ? graph_name.resource? : true ))
@@ -150,7 +150,7 @@ module RDF
150
150
  ##
151
151
  # @return [Boolean]
152
152
  def valid?
153
- has_subject? && subject.resource? && subject.valid? &&
153
+ has_subject? && subject.resource? && subject.valid? &&
154
154
  has_predicate? && predicate.uri? && predicate.valid? &&
155
155
  has_object? && object.term? && object.valid? &&
156
156
  (has_graph? ? graph_name.resource? && graph_name.valid? : true )
@@ -228,22 +228,61 @@ module RDF
228
228
  alias_method :has_blank_nodes?, :node?
229
229
 
230
230
  ##
231
+ # Checks statement equality as a quad.
232
+ #
231
233
  # @param [Statement] other
232
234
  # @return [Boolean]
235
+ #
236
+ # @see RDF::URI#==
237
+ # @see RDF::Node#==
238
+ # @see RDF::Literal#==
239
+ # @see RDF::Query::Variable#==
233
240
  def eql?(other)
234
241
  other.is_a?(Statement) && self == other && (self.graph_name || false) == (other.graph_name || false)
235
242
  end
236
243
 
237
244
  ##
245
+ # Checks statement equality as a triple.
246
+ #
238
247
  # @param [Object] other
239
248
  # @return [Boolean]
249
+ #
250
+ # @see RDF::URI#==
251
+ # @see RDF::Node#==
252
+ # @see RDF::Literal#==
253
+ # @see RDF::Query::Variable#==
240
254
  def ==(other)
241
- to_a == Array(other)
255
+ to_a == Array(other) &&
256
+ !(other.is_a?(RDF::Value) && other.list?)
242
257
  end
243
258
 
244
259
  ##
260
+ # Checks statement equality with patterns.
261
+ #
262
+ # Uses `#eql?` to compare each of `#subject`, `#predicate`, `#object`, and
263
+ # `#graph_name` to those of `other`. Any statement part which is not
264
+ # present in `self` is ignored.
265
+ #
266
+ # @example
267
+ # statement = RDF::Statement.new(RDF::URI('s'), RDF::URI('p'), RDF::URI('o'))
268
+ # pattern = RDF::Statement.new(RDF::URI('s'), RDF::URI('p'), RDF::Query::Variable.new)
269
+ #
270
+ # # true
271
+ # statement === statement
272
+ # pattern === statement
273
+ # RDF::Statement.new(nil, nil, nil) === statement
274
+ #
275
+ # # false
276
+ # statement === pattern
277
+ # statement === RDF::Statement.new(nil, nil, nil)
278
+ #
245
279
  # @param [Statement] other
246
280
  # @return [Boolean]
281
+ #
282
+ # @see RDF::URI#eql?
283
+ # @see RDF::Node#eql?
284
+ # @see RDF::Literal#eql?
285
+ # @see RDF::Query::Variable#eql?
247
286
  def ===(other)
248
287
  return false if has_object? && !object.eql?(other.object)
249
288
  return false if has_predicate? && !predicate.eql?(other.predicate)
data/lib/rdf/model/uri.rb CHANGED
@@ -377,7 +377,7 @@ module RDF
377
377
  @object = {
378
378
  scheme: normalized_scheme,
379
379
  authority: normalized_authority,
380
- path: normalized_path.sub(/\/+/, '/'),
380
+ path: normalized_path.squeeze('/'),
381
381
  query: normalized_query,
382
382
  fragment: normalized_fragment
383
383
  }
@@ -887,7 +887,7 @@ module RDF
887
887
  # Return normalized version of scheme, if any
888
888
  # @return [String]
889
889
  def normalized_scheme
890
- scheme.strip.downcase if scheme
890
+ normalize_segment(scheme.strip, SCHEME, true) if scheme
891
891
  end
892
892
 
893
893
  ##
@@ -965,7 +965,7 @@ module RDF
965
965
  # @return [String]
966
966
  def normalized_host
967
967
  # Remove trailing '.' characters
968
- normalize_segment(host, IHOST, true).sub(/\.*$/, '') if host
968
+ normalize_segment(host, IHOST, true).chomp('.') if host
969
969
  end
970
970
 
971
971
  ##
@@ -1059,7 +1059,7 @@ module RDF
1059
1059
 
1060
1060
  res = self.class.normalize_path(norm_segs.join("/"))
1061
1061
  # Special rules for specific protocols having empty paths
1062
- res.empty? ? (%w(http https ftp tftp).include?(normalized_scheme) ? '/' : "") : res
1062
+ normalize_segment(res.empty? ? (%w(http https ftp tftp).include?(normalized_scheme) ? '/' : "") : res, IHIER_PART)
1063
1063
  end
1064
1064
 
1065
1065
  ##
@@ -1134,9 +1134,9 @@ module RDF
1134
1134
  # @return [String]
1135
1135
  def normalized_authority
1136
1136
  if authority
1137
- (userinfo ? "#{normalized_userinfo}@" : "") +
1137
+ (userinfo ? normalized_userinfo.to_s + "@" : "") +
1138
1138
  normalized_host.to_s +
1139
- (normalized_port ? ":#{normalized_port}" : "")
1139
+ (normalized_port ? ":" + normalized_port.to_s : "")
1140
1140
  end
1141
1141
  end
1142
1142
 
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: 2.0.1
4
+ version: 2.0.2
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: 2016-04-29 00:00:00.000000000 Z
13
+ date: 2016-07-08 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: link_header