rdf-xsd 1.1.3 → 1.1.4

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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/VERSION +1 -1
  3. data/lib/rdf/xsd/binary.rb +30 -2
  4. metadata +39 -39
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8c014eaaff792361c1d6fa05e26933472485d7aa
4
- data.tar.gz: f63f51ec09699752ad13ad04af7e92faa072acb2
3
+ metadata.gz: 267785fb62062f1830fb116794535556e6382013
4
+ data.tar.gz: fd11099e344fad29270e428a44ace59d6944003a
5
5
  SHA512:
6
- metadata.gz: 73c34000bb89d17d584115d821a8d33b3d8bae4c3e01a4db59d259b16d8f10fa88c21c8dbb0259af01b43fe351af334c932d85a5f54eabdd1b8dde945819a9d1
7
- data.tar.gz: ec76f7f67c5d8b68a8552da55745f1c9446e7a6c6e42cd49eeea4309085c10a27b59e35b296bfd974f1820542814c97a185d79c3fd770aae88eef78e6e8ee052
6
+ metadata.gz: 16c17ee64f55a696533012fd93bf0c4a77ddfb36e4b3abb09e654e838720b3b13d5862f987caca9197fd0385ec0cf65855d79469cad1d9926c5e0155549999b1
7
+ data.tar.gz: e380b359a3b440cf0a5ebddae0b77e3b1b52c07d311c5bdc4004759d595855f183a8e5a34de2b0c4197dd3a2e46ffb52e140336f77ac6790f2cc58e0cd65da32
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.1.3
1
+ 1.1.4
@@ -16,14 +16,40 @@ module RDF; class Literal
16
16
  DATATYPE = XSD.hexBinary
17
17
  GRAMMAR = %r(\A[0-9a-fA-F]+\Z)
18
18
 
19
+ ##
20
+ # @param [String] value The encoded form of the literal
21
+ # @option options [String] :object (nil) decoded value
22
+ def initialize(value, options = {})
23
+ super
24
+ @object = options.fetch(:object, hex_to_bin(value.to_s))
25
+ @string ||= bin_to_hex(@object)
26
+ end
27
+
19
28
  ##
20
29
  # Converts this literal into its canonical lexical representation.
21
30
  #
22
31
  # @return [RDF::Literal] `self`
23
32
  def canonicalize!
24
- @string = @object.downcase
33
+ @string = bin_to_hex(@object)
25
34
  self
26
35
  end
36
+
37
+ ##
38
+ # Returns the encoded value as a string.
39
+ #
40
+ # @return [String]
41
+ def to_s
42
+ @string.to_s
43
+ end
44
+
45
+ private
46
+ def bin_to_hex(value)
47
+ value.unpack('H*').first.upcase
48
+ end
49
+
50
+ def hex_to_bin(value)
51
+ value.scan(/../).map { |x| x.hex }.pack('c*').force_encoding("BINARY")
52
+ end
27
53
  end
28
54
 
29
55
  ##
@@ -50,7 +76,7 @@ module RDF; class Literal
50
76
  # Converts this literal into its canonical lexical representation.
51
77
  #
52
78
  # @return [RDF::Literal] `self`
53
- # @see http://www.w3.org/TR/xmlschema11-2/#dateTime
79
+ # @see http://www.w3.org/TR/xmlschema-2/#dateTime
54
80
  def canonicalize!
55
81
  @string = ::Base64.encode64(@object)
56
82
  self
@@ -63,6 +89,8 @@ module RDF; class Literal
63
89
  # @return [Boolean]
64
90
  def valid?
65
91
  Base64.strict_decode64(value.gsub(/\s+/m, ''))
92
+ rescue ArgumentError
93
+ false
66
94
  end
67
95
  end
68
96
  end; end #RDF::Literal
metadata CHANGED
@@ -1,118 +1,118 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rdf-xsd
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.3
4
+ version: 1.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gregg
8
8
  - Kellogg
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-02-25 00:00:00.000000000 Z
12
+ date: 2015-07-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: rdf
16
15
  requirement: !ruby/object:Gem::Requirement
17
16
  requirements:
18
- - - "~>"
17
+ - - ~>
19
18
  - !ruby/object:Gem::Version
20
19
  version: '1.1'
21
- - - ">="
20
+ - - '>='
22
21
  - !ruby/object:Gem::Version
23
22
  version: 1.1.9
24
- type: :runtime
23
+ name: rdf
25
24
  prerelease: false
25
+ type: :runtime
26
26
  version_requirements: !ruby/object:Gem::Requirement
27
27
  requirements:
28
- - - "~>"
28
+ - - ~>
29
29
  - !ruby/object:Gem::Version
30
30
  version: '1.1'
31
- - - ">="
31
+ - - '>='
32
32
  - !ruby/object:Gem::Version
33
33
  version: 1.1.9
34
34
  - !ruby/object:Gem::Dependency
35
- name: activesupport
36
35
  requirement: !ruby/object:Gem::Requirement
37
36
  requirements:
38
- - - "~>"
37
+ - - ~>
39
38
  - !ruby/object:Gem::Version
40
39
  version: '4.1'
41
- type: :development
40
+ name: activesupport
42
41
  prerelease: false
42
+ type: :development
43
43
  version_requirements: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ~>
46
46
  - !ruby/object:Gem::Version
47
47
  version: '4.1'
48
48
  - !ruby/object:Gem::Dependency
49
- name: i18n
50
49
  requirement: !ruby/object:Gem::Requirement
51
50
  requirements:
52
- - - "~>"
51
+ - - ~>
53
52
  - !ruby/object:Gem::Version
54
53
  version: '0.6'
55
- type: :development
54
+ name: i18n
56
55
  prerelease: false
56
+ type: :development
57
57
  version_requirements: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ~>
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0.6'
62
62
  - !ruby/object:Gem::Dependency
63
- name: rspec
64
63
  requirement: !ruby/object:Gem::Requirement
65
64
  requirements:
66
- - - "~>"
65
+ - - ~>
67
66
  - !ruby/object:Gem::Version
68
67
  version: '3.0'
69
- type: :development
68
+ name: rspec
70
69
  prerelease: false
70
+ type: :development
71
71
  version_requirements: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - "~>"
73
+ - - ~>
74
74
  - !ruby/object:Gem::Version
75
75
  version: '3.0'
76
76
  - !ruby/object:Gem::Dependency
77
- name: rspec-its
78
77
  requirement: !ruby/object:Gem::Requirement
79
78
  requirements:
80
- - - "~>"
79
+ - - ~>
81
80
  - !ruby/object:Gem::Version
82
81
  version: '1.0'
83
- type: :development
82
+ name: rspec-its
84
83
  prerelease: false
84
+ type: :development
85
85
  version_requirements: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - "~>"
87
+ - - ~>
88
88
  - !ruby/object:Gem::Version
89
89
  version: '1.0'
90
90
  - !ruby/object:Gem::Dependency
91
- name: rdf-spec
92
91
  requirement: !ruby/object:Gem::Requirement
93
92
  requirements:
94
- - - "~>"
93
+ - - ~>
95
94
  - !ruby/object:Gem::Version
96
95
  version: '1.1'
97
- type: :development
96
+ name: rdf-spec
98
97
  prerelease: false
98
+ type: :development
99
99
  version_requirements: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - "~>"
101
+ - - ~>
102
102
  - !ruby/object:Gem::Version
103
103
  version: '1.1'
104
104
  - !ruby/object:Gem::Dependency
105
- name: yard
106
105
  requirement: !ruby/object:Gem::Requirement
107
106
  requirements:
108
- - - "~>"
107
+ - - ~>
109
108
  - !ruby/object:Gem::Version
110
109
  version: '0.8'
111
- type: :development
110
+ name: yard
112
111
  prerelease: false
112
+ type: :development
113
113
  version_requirements: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - "~>"
115
+ - - ~>
116
116
  - !ruby/object:Gem::Version
117
117
  version: '0.8'
118
118
  description: Adds RDF::Literal subclasses for extended XSD datatypes.
@@ -139,26 +139,26 @@ homepage: http://ruby-rdf.github.com/rdf-xsd
139
139
  licenses:
140
140
  - Public Domain
141
141
  metadata: {}
142
- post_install_message: "\n For best results, use nokogiri and equivalent-xml gems
143
- as well.\n These are not hard requirements to preserve pure-ruby dependencies.\n
144
- \ "
142
+ post_install_message: "\n For best results, use nokogiri and equivalent-xml gems\
143
+ \ as well.\n These are not hard requirements to preserve pure-ruby dependencies.\n\
144
+ \ "
145
145
  rdoc_options: []
146
146
  require_paths:
147
147
  - lib
148
148
  required_ruby_version: !ruby/object:Gem::Requirement
149
149
  requirements:
150
- - - ">="
150
+ - - '>='
151
151
  - !ruby/object:Gem::Version
152
152
  version: 1.9.2
153
153
  required_rubygems_version: !ruby/object:Gem::Requirement
154
154
  requirements:
155
- - - ">="
155
+ - - '>='
156
156
  - !ruby/object:Gem::Version
157
157
  version: '0'
158
158
  requirements: []
159
159
  rubyforge_project: rdf-xsd
160
160
  rubygems_version: 2.4.5
161
- signing_key:
161
+ signing_key:
162
162
  specification_version: 4
163
163
  summary: Extended XSD Datatypes for RDF.rb.
164
164
  test_files: []