sxp 1.1.0 → 1.2.2
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.
- checksums.yaml +4 -4
- data/AUTHORS +1 -1
- data/README.md +196 -33
- data/UNLICENSE +1 -1
- data/VERSION +1 -1
- data/bin/sxp2json +2 -2
- data/bin/sxp2rdf +2 -2
- data/bin/sxp2xml +2 -2
- data/bin/sxp2yaml +2 -2
- data/lib/sxp/extensions.rb +320 -4
- data/lib/sxp/generator.rb +31 -8
- data/lib/sxp/pair.rb +2 -2
- data/lib/sxp/reader/basic.rb +4 -4
- data/lib/sxp/reader/common_lisp.rb +8 -5
- data/lib/sxp/reader/scheme.rb +5 -5
- data/lib/sxp/reader/sparql.rb +8 -12
- data/lib/sxp.rb +0 -15
- metadata +52 -20
- data/lib/sxp/writer.rb +0 -216
metadata
CHANGED
@@ -1,58 +1,86 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sxp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Arto Bendiken
|
8
8
|
- Gregg Kellogg
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2022-03-14 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
|
-
name:
|
15
|
+
name: rdf
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - "~>"
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: '3.2'
|
21
|
+
type: :runtime
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - "~>"
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: '3.2'
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: matrix
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - ">="
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '0'
|
35
|
+
type: :runtime
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - ">="
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '0'
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: amazing_print
|
16
44
|
requirement: !ruby/object:Gem::Requirement
|
17
45
|
requirements:
|
18
46
|
- - "~>"
|
19
47
|
- !ruby/object:Gem::Version
|
20
|
-
version: '
|
48
|
+
version: '1.4'
|
21
49
|
type: :development
|
22
50
|
prerelease: false
|
23
51
|
version_requirements: !ruby/object:Gem::Requirement
|
24
52
|
requirements:
|
25
53
|
- - "~>"
|
26
54
|
- !ruby/object:Gem::Version
|
27
|
-
version: '
|
55
|
+
version: '1.4'
|
28
56
|
- !ruby/object:Gem::Dependency
|
29
|
-
name:
|
57
|
+
name: rspec
|
30
58
|
requirement: !ruby/object:Gem::Requirement
|
31
59
|
requirements:
|
32
60
|
- - "~>"
|
33
61
|
- !ruby/object:Gem::Version
|
34
|
-
version:
|
62
|
+
version: '3.10'
|
35
63
|
type: :development
|
36
64
|
prerelease: false
|
37
65
|
version_requirements: !ruby/object:Gem::Requirement
|
38
66
|
requirements:
|
39
67
|
- - "~>"
|
40
68
|
- !ruby/object:Gem::Version
|
41
|
-
version:
|
69
|
+
version: '3.10'
|
42
70
|
- !ruby/object:Gem::Dependency
|
43
|
-
name:
|
71
|
+
name: yard
|
44
72
|
requirement: !ruby/object:Gem::Requirement
|
45
73
|
requirements:
|
46
74
|
- - "~>"
|
47
75
|
- !ruby/object:Gem::Version
|
48
|
-
version: '
|
49
|
-
type: :
|
76
|
+
version: '0.9'
|
77
|
+
type: :development
|
50
78
|
prerelease: false
|
51
79
|
version_requirements: !ruby/object:Gem::Requirement
|
52
80
|
requirements:
|
53
81
|
- - "~>"
|
54
82
|
- !ruby/object:Gem::Version
|
55
|
-
version: '
|
83
|
+
version: '0.9'
|
56
84
|
description: Universal S-expression parser with specific support for Common Lisp,
|
57
85
|
Scheme, and RDF/SPARQL
|
58
86
|
email:
|
@@ -87,12 +115,16 @@ files:
|
|
87
115
|
- lib/sxp/reader/scheme.rb
|
88
116
|
- lib/sxp/reader/sparql.rb
|
89
117
|
- lib/sxp/version.rb
|
90
|
-
|
91
|
-
homepage: http://sxp.rubyforge.org/
|
118
|
+
homepage: https://github.com/dryruby/sxp/
|
92
119
|
licenses:
|
93
120
|
- Unlicense
|
94
|
-
metadata:
|
95
|
-
|
121
|
+
metadata:
|
122
|
+
documentation_uri: https://dryruby.github.io/sxp
|
123
|
+
bug_tracker_uri: https://github.com/dryruby/sxp/issues
|
124
|
+
homepage_uri: https://github.com/dryruby/sxp
|
125
|
+
mailing_list_uri: https://lists.w3.org/Archives/Public/public-rdf-ruby/
|
126
|
+
source_code_uri: https://github.com/dryruby/sxp
|
127
|
+
post_install_message:
|
96
128
|
rdoc_options: []
|
97
129
|
require_paths:
|
98
130
|
- lib
|
@@ -100,15 +132,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
100
132
|
requirements:
|
101
133
|
- - ">="
|
102
134
|
- !ruby/object:Gem::Version
|
103
|
-
version: '2.
|
135
|
+
version: '2.6'
|
104
136
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
105
137
|
requirements:
|
106
138
|
- - ">="
|
107
139
|
- !ruby/object:Gem::Version
|
108
140
|
version: '0'
|
109
141
|
requirements: []
|
110
|
-
rubygems_version: 3.
|
111
|
-
signing_key:
|
142
|
+
rubygems_version: 3.3.3
|
143
|
+
signing_key:
|
112
144
|
specification_version: 4
|
113
145
|
summary: A pure-Ruby implementation of a universal S-expression parser.
|
114
146
|
test_files: []
|
data/lib/sxp/writer.rb
DELETED
@@ -1,216 +0,0 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
|
-
require 'bigdecimal'
|
3
|
-
require 'time'
|
4
|
-
|
5
|
-
##
|
6
|
-
# Extensions for Ruby's `Object` class.
|
7
|
-
class Object
|
8
|
-
##
|
9
|
-
# Returns the SXP representation of this object.
|
10
|
-
#
|
11
|
-
# @return [String]
|
12
|
-
def to_sxp
|
13
|
-
to_s.to_json
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
##
|
18
|
-
# Extensions for Ruby's `NilClass` class.
|
19
|
-
class NilClass
|
20
|
-
##
|
21
|
-
# Returns the SXP representation of this object.
|
22
|
-
#
|
23
|
-
# @return [String]
|
24
|
-
def to_sxp
|
25
|
-
'#n'
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
##
|
30
|
-
# Extensions for Ruby's `FalseClass` class.
|
31
|
-
class FalseClass
|
32
|
-
##
|
33
|
-
# Returns the SXP representation of this object.
|
34
|
-
#
|
35
|
-
# @return [String]
|
36
|
-
def to_sxp
|
37
|
-
'#f'
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
##
|
42
|
-
# Extensions for Ruby's `TrueClass` class.
|
43
|
-
class TrueClass
|
44
|
-
##
|
45
|
-
# Returns the SXP representation of this object.
|
46
|
-
#
|
47
|
-
# @return [String]
|
48
|
-
def to_sxp
|
49
|
-
'#t'
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
##
|
54
|
-
# Extensions for Ruby's `String` class.
|
55
|
-
class String
|
56
|
-
##
|
57
|
-
# Returns the SXP representation of this object.
|
58
|
-
#
|
59
|
-
# @return [String]
|
60
|
-
def to_sxp
|
61
|
-
inspect
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
|
-
##
|
66
|
-
# Extensions for Ruby's `Symbol` class.
|
67
|
-
class Symbol
|
68
|
-
##
|
69
|
-
# Returns the SXP representation of this object.
|
70
|
-
#
|
71
|
-
# @return [String]
|
72
|
-
def to_sxp
|
73
|
-
to_s
|
74
|
-
end
|
75
|
-
end
|
76
|
-
|
77
|
-
##
|
78
|
-
# Extensions for Ruby's `Integer` class.
|
79
|
-
class Integer
|
80
|
-
##
|
81
|
-
# Returns the SXP representation of this object.
|
82
|
-
#
|
83
|
-
# @return [String]
|
84
|
-
def to_sxp
|
85
|
-
to_s
|
86
|
-
end
|
87
|
-
end
|
88
|
-
|
89
|
-
##
|
90
|
-
# Extensions for Ruby's `BigDecimal` class.
|
91
|
-
class BigDecimal
|
92
|
-
##
|
93
|
-
# Returns the SXP representation of this object.
|
94
|
-
#
|
95
|
-
# @return [String]
|
96
|
-
def to_sxp
|
97
|
-
to_f.to_s
|
98
|
-
end
|
99
|
-
end
|
100
|
-
|
101
|
-
##
|
102
|
-
# Extensions for Ruby's `Float` class.
|
103
|
-
class Float
|
104
|
-
##
|
105
|
-
# Returns the SXP representation of this object.
|
106
|
-
#
|
107
|
-
# @return [String]
|
108
|
-
def to_sxp
|
109
|
-
case
|
110
|
-
when nan? then 'nan.0'
|
111
|
-
when infinite? then (infinite? > 0 ? '+inf.0' : '-inf.0')
|
112
|
-
else to_s
|
113
|
-
end
|
114
|
-
end
|
115
|
-
end
|
116
|
-
|
117
|
-
##
|
118
|
-
# Extensions for Ruby's `Array` class.
|
119
|
-
class Array
|
120
|
-
##
|
121
|
-
# Returns the SXP representation of this object.
|
122
|
-
#
|
123
|
-
# @return [String]
|
124
|
-
def to_sxp
|
125
|
-
'(' << map { |x| x.to_sxp }.join(' ') << ')'
|
126
|
-
end
|
127
|
-
end
|
128
|
-
|
129
|
-
##
|
130
|
-
# Extensions for Ruby's `Time` class.
|
131
|
-
class Time
|
132
|
-
##
|
133
|
-
# Returns the SXP representation of this object.
|
134
|
-
#
|
135
|
-
# @return [String]
|
136
|
-
def to_sxp
|
137
|
-
'#@' << (respond_to?(:xmlschema) ? xmlschema : to_i).to_s
|
138
|
-
end
|
139
|
-
end
|
140
|
-
|
141
|
-
##
|
142
|
-
# Extensions for Ruby's `Regexp` class.
|
143
|
-
class Regexp
|
144
|
-
##
|
145
|
-
# Returns the SXP representation of this object.
|
146
|
-
#
|
147
|
-
# @return [String]
|
148
|
-
def to_sxp
|
149
|
-
'#' << inspect
|
150
|
-
end
|
151
|
-
end
|
152
|
-
|
153
|
-
begin
|
154
|
-
require 'rdf' # For SPARQL
|
155
|
-
|
156
|
-
class RDF::URI
|
157
|
-
##
|
158
|
-
# Returns the SXP representation of this object.
|
159
|
-
#
|
160
|
-
# @return [String]
|
161
|
-
def to_sxp; lexical || "<#{self}>"; end
|
162
|
-
end
|
163
|
-
|
164
|
-
class RDF::Node
|
165
|
-
##
|
166
|
-
# Returns the SXP representation of this object.
|
167
|
-
#
|
168
|
-
# @return [String]
|
169
|
-
def to_sxp; to_s; end
|
170
|
-
end
|
171
|
-
|
172
|
-
class RDF::Literal
|
173
|
-
##
|
174
|
-
# Returns the SXP representation of a Literal.
|
175
|
-
#
|
176
|
-
# @return [String]
|
177
|
-
def to_sxp
|
178
|
-
case datatype
|
179
|
-
when RDF::XSD.boolean, RDF::XSD.integer, RDF::XSD.double, RDF::XSD.decimal, RDF::XSD.time
|
180
|
-
# Retain stated lexical form if possible
|
181
|
-
valid? ? to_s : object.to_sxp
|
182
|
-
else
|
183
|
-
text = value.dump
|
184
|
-
text << "@#{language}" if self.has_language?
|
185
|
-
text << "^^#{datatype.to_sxp}" if self.has_datatype?
|
186
|
-
text
|
187
|
-
end
|
188
|
-
end
|
189
|
-
end
|
190
|
-
|
191
|
-
class RDF::Query
|
192
|
-
# Transform Query into an Array form of an SXP
|
193
|
-
#
|
194
|
-
# If Query is named, it's treated as a GroupGraphPattern, otherwise, a BGP
|
195
|
-
#
|
196
|
-
# @return [Array]
|
197
|
-
def to_sxp
|
198
|
-
res = [:bgp] + patterns
|
199
|
-
(named? ? [:graph, graph_name, res] : res).to_sxp
|
200
|
-
end
|
201
|
-
end
|
202
|
-
|
203
|
-
class RDF::Query::Pattern
|
204
|
-
# Transform Query Pattern into an SXP
|
205
|
-
# @return [String]
|
206
|
-
def to_sxp
|
207
|
-
[:triple, subject, predicate, object].to_sxp
|
208
|
-
end
|
209
|
-
end
|
210
|
-
|
211
|
-
class RDF::Query::Variable
|
212
|
-
def to_sxp; to_s; end
|
213
|
-
end
|
214
|
-
rescue LoadError => e
|
215
|
-
# Ignore if RDF not loaded
|
216
|
-
end
|