ld-patch 0.3.1 → 0.3.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/README.md +13 -0
- data/VERSION +1 -1
- data/bin/ldpatch +5 -5
- data/lib/ld/patch/format.rb +23 -9
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 27a3642a91846cb23466184a3d5bfc4397b20df4
|
4
|
+
data.tar.gz: f542b62f93ad91a1899097a47c0ab5e6c4047d1a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 714a26208900d98bb44ea32b08e76624ce3712ecb90eeb2a3a6ad66c0424b780676ed83c3c723eefd0e931919c3cceb5a48c5d9d569b0fc1162e07ecd9477c3b
|
7
|
+
data.tar.gz: 0b330bc3cc7892334f6c84aeea48c01cf203b0ad7d7899f5b849f346fe486b59940c9e4d2cd32d534cf05ac0c05d2c4e346b2c405a2bd332a8e03bf4ca5e77d7
|
data/README.md
CHANGED
@@ -53,6 +53,19 @@ Full documentation available on [Rubydoc.info][LD-Patch doc]
|
|
53
53
|
operator = LD::Patch.parse(patch, base_uri: "http://rubygems.org/gems/ld-patch")
|
54
54
|
operator.execute(queryable) # alternatively queryable.query(operator)
|
55
55
|
|
56
|
+
## Command Line
|
57
|
+
When the `linkeddata` gem is installed, RDF.rb includes a `rdf` executable which acts as a wrapper to perform a number of different
|
58
|
+
operations on RDF files, including LD::Patch, which is used as a stream command and must be followed by serialize to see the results. The commands specific to LD::Patch is
|
59
|
+
|
60
|
+
* `ld-patch`: Patch the current graph using a patch file
|
61
|
+
|
62
|
+
Using this command requires either a `patch-input` where the patch is URI encoded, or `patch-file`, which references a URI or file path to the patch.
|
63
|
+
Example usage:
|
64
|
+
|
65
|
+
rdf patch serialize https://raw.githubusercontent.com/ruby-rdf/ld-patch/develop/etc/doap.ttl \
|
66
|
+
--patch-input Add%20%7B%20%3Chttp://example.org/s2%3E%20%3Chttp://example.org/p2%3E%20%3Chttp://example.org/o2%3E%20%7D%20. \
|
67
|
+
--output-format ttl
|
68
|
+
|
56
69
|
## Implementation Notes
|
57
70
|
The reader uses the [EBNF][] gem to generate first, follow and branch tables, and uses the `Parser` and `Lexer` modules to implement the LD Patch parser.
|
58
71
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.3.
|
1
|
+
0.3.2
|
data/bin/ldpatch
CHANGED
@@ -22,9 +22,9 @@ def run(graph, options = {})
|
|
22
22
|
|
23
23
|
patch = LD::Patch.parse(options[:patch], options)
|
24
24
|
|
25
|
-
puts ("\
|
25
|
+
puts ("\nSXP:\n" + patch.to_sse) if options[:debug] || options[:to_sxp]
|
26
26
|
|
27
|
-
unless options[:
|
27
|
+
unless options[:to_sxp]
|
28
28
|
res = patch.execute(graph, options)
|
29
29
|
puts res.dump(:ttl, base_uri: patch.base_uri, prefixes: patch.prefixes, standard_prefixes: true)
|
30
30
|
end
|
@@ -35,7 +35,7 @@ opts = GetoptLong.new(
|
|
35
35
|
["--execute", "-e", GetoptLong::REQUIRED_ARGUMENT],
|
36
36
|
["--patch", GetoptLong::REQUIRED_ARGUMENT],
|
37
37
|
["--progress", GetoptLong::NO_ARGUMENT],
|
38
|
-
["--to-
|
38
|
+
["--to-sxp", GetoptLong::NO_ARGUMENT],
|
39
39
|
["--validate", GetoptLong::NO_ARGUMENT],
|
40
40
|
["--verbose", GetoptLong::NO_ARGUMENT],
|
41
41
|
["--help", "-?", GetoptLong::NO_ARGUMENT]
|
@@ -50,7 +50,7 @@ opts.each do |opt, arg|
|
|
50
50
|
when '--execute' then options[:patch] = arg
|
51
51
|
when '--patch' then options[:patch] = RDF::Util::File.open_file(arg).read
|
52
52
|
when '--progress' then options[:debug] ||= 2
|
53
|
-
when '--to-
|
53
|
+
when '--to-sxp' then options[:to_sxp] = true
|
54
54
|
when '--validate' then options[:validate] = true
|
55
55
|
when '--verbose' then options[:verbose] = true
|
56
56
|
when "--help"
|
@@ -61,7 +61,7 @@ opts.each do |opt, arg|
|
|
61
61
|
puts " --execute,-e: Use option argument as the patch input"
|
62
62
|
puts " --patch: Location of patch document"
|
63
63
|
puts " --progress Display parse tree"
|
64
|
-
puts " --to-
|
64
|
+
puts " --to-sxp: Generate S-Expression for patch instead of running query"
|
65
65
|
puts " --validate: Validate patch document"
|
66
66
|
puts " --verbose: Display details of processing"
|
67
67
|
puts " --help,-?: This message"
|
data/lib/ld/patch/format.rb
CHANGED
@@ -20,29 +20,43 @@ module LD::Patch
|
|
20
20
|
def self.cli_commands
|
21
21
|
{
|
22
22
|
patch: {
|
23
|
-
description: "Patch the current graph using a
|
24
|
-
help: "patch [--patch 'patch'] [--patch-file file]",
|
23
|
+
description: "Patch the current graph using a patch file",
|
24
|
+
help: "patch [--patch-input 'patch'] [--patch-file file]",
|
25
|
+
control: :button,
|
25
26
|
parse: true,
|
26
27
|
lambda: -> (argv, opts) do
|
27
|
-
opts[:
|
28
|
-
|
29
|
-
|
30
|
-
|
28
|
+
opts[:patch_input] ||= case opts[:patch_file]
|
29
|
+
when IO, StringIO then opts[:patch_file]
|
30
|
+
else RDF::Util::File.open_file(opts[:patch_file]) {|f| f.read}
|
31
|
+
end
|
32
|
+
raise ArgumentError, "Patching requires a patch or reference to patch resource" unless opts[:patch_input]
|
33
|
+
opts[:logger].info "Patch"
|
34
|
+
patch = LD::Patch.parse(opts[:patch_input], base_uri: opts.fetch(:patch_file, "http://rubygems.org/gems/ld-patch"))
|
35
|
+
opts[:messages][:"S-Expression"] = [patch.to_sse] if opts[:to_sxp]
|
31
36
|
RDF::CLI.repository.query(patch)
|
32
37
|
end,
|
33
38
|
options: [
|
34
39
|
RDF::CLI::Option.new(
|
35
|
-
symbol: :
|
40
|
+
symbol: :patch_input,
|
36
41
|
datatype: String,
|
37
|
-
|
42
|
+
control: :none,
|
43
|
+
on: ["--patch-input STRING"],
|
38
44
|
description: "Patch in URI encoded format"
|
39
45
|
) {|v| URI.decode(v)},
|
40
46
|
RDF::CLI::Option.new(
|
41
47
|
symbol: :patch_file,
|
42
48
|
datatype: String,
|
49
|
+
control: :url2,
|
43
50
|
on: ["--patch-file URI"],
|
44
|
-
description: "
|
51
|
+
description: "Patch file"
|
45
52
|
) {|v| RDF::URI(v)},
|
53
|
+
RDF::CLI::Option.new(
|
54
|
+
symbol: :to_sxp,
|
55
|
+
datatype: String,
|
56
|
+
control: :checkbox,
|
57
|
+
on: ["--to-sxp"],
|
58
|
+
description: "Instead of patching repository, display parsed patch as an S-Expression"
|
59
|
+
),
|
46
60
|
]
|
47
61
|
}
|
48
62
|
}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ld-patch
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gregg Kellogg
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-08-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rdf
|
@@ -255,8 +255,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
255
255
|
- !ruby/object:Gem::Version
|
256
256
|
version: '0'
|
257
257
|
requirements: []
|
258
|
-
rubyforge_project:
|
259
|
-
rubygems_version: 2.6.
|
258
|
+
rubyforge_project:
|
259
|
+
rubygems_version: 2.6.12
|
260
260
|
signing_key:
|
261
261
|
specification_version: 4
|
262
262
|
summary: W3C Linked Data Patch Format for RDF.rb.
|