ttl2html 0.2.8 → 0.3.0

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: 7f3895e8f7c7544e6ef6bcb0cf966787d51a49de0db77a6a0a0b72a70a54b9cb
4
- data.tar.gz: 7f33f34c40179683953a920a516712051c7a2e3078c4220cdbf21e7df14dbdbb
3
+ metadata.gz: 5c6cc6b025ce5ec57709788d914a9507dc66160feed31a083e101acb2d128461
4
+ data.tar.gz: 994ea0ec7c5131b21ba7c709c4693c9fe341a9cb3e19f8d53b28f8f2a9d39056
5
5
  SHA512:
6
- metadata.gz: 86c6e71196827df531740ecb603889b99bbc44118ed106e4831472ccde702f162648cdcafd3eb43d19ebb9cf9dd6c3ec379cb68b55d78eca585d17fbe605ebe7
7
- data.tar.gz: a708b14927d1a8332aa48004f7f61f8ba379623556d3348e356f9dd72c0c8641b9e14f7ccf33c29be51f121d8c300da0e7cce780585ed0fd9a15d75de4b66fc6
6
+ metadata.gz: fb77aca35e592354697fddd2b32e65ba8515ed6631bf8edfbf5ddd1ee2442f62f0a872a17a27fb1230c2665b1b5067a13b1e504c31aedfa3c613f87ec0ce1881
7
+ data.tar.gz: b0d58cf7689127f8d1a47e3f4fbc500e228e075baf49c9edb7f6c3e86378c8f861f8336cabbe5f0e8ad87778091fcfb970a86e2e62a2e894e49cf7bad4dd0eb2
data/bin/catttl ADDED
@@ -0,0 +1,46 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "ttl2html"
4
+ include Textbook
5
+
6
+ prefix = {}
7
+ ttl = []
8
+
9
+ ARGV.each do |file|
10
+ filename = find_turtle(file)
11
+ klass = File
12
+ if File.extname(file) == ".gz"
13
+ klass = Zlib::GzipReader
14
+ end
15
+ klass.readlines(filename).each do |line|
16
+ line = line.chomp
17
+ next if line.empty?
18
+ if line =~ /^@prefix\s+(\w[\w\-]*):\s*<(.+)>/
19
+ prefix[$1] ||= []
20
+ prefix[$1] << $2
21
+ else
22
+ ttl << line
23
+ end
24
+ end
25
+ end
26
+ ARGV.each do |file|
27
+ filename = find_turtle(file)
28
+ STDERR.puts filename
29
+ end
30
+
31
+ prefix.each do |k, v|
32
+ STDERR.puts "Duplicate prefixes: #{k}: #{v}" if v.uniq.size > 1
33
+ prefix[k] = v.sort.first
34
+ end
35
+ dups = prefix.values.group_by{|e| e }.select{|k, v| v.size > 1 }.keys
36
+ unless dups.empty?
37
+ dups.each do |uri|
38
+ uris = prefix.keys.select{|e| prefix[e] == uri }
39
+ STDERR.puts "Duplicate prefixes: #{uri} (#{uris.join(",")})"
40
+ end
41
+ end
42
+
43
+ prefix.sort.each do |prefix, uri|
44
+ puts "@prefix #{prefix}: <#{uri}>."
45
+ end
46
+ puts ttl
@@ -1 +1 @@
1
- TTL2HTML::VERSION = "0.2.8"
1
+ TTL2HTML::VERSION = "0.3.0"
data/lib/ttl2html.rb CHANGED
@@ -33,7 +33,12 @@ module TTL2HTML
33
33
  def load_turtle(file)
34
34
  STDERR.puts "loading #{file}..."
35
35
  count = 0
36
- RDF::Turtle::Reader.open(file) do |reader|
36
+ if file.end_with?(".gz")
37
+ io = Zlib::GzipReader.open(file)
38
+ else
39
+ io = File.open(file)
40
+ end
41
+ RDF::Turtle::Reader.new(io) do |reader|
37
42
  @prefix.merge! reader.prefixes
38
43
  reader.statements.each do |statement|
39
44
  @graph.insert(statement)
@@ -59,6 +64,19 @@ module TTL2HTML
59
64
  STDERR.puts "#{count} triples. #{@data.size} subjects."
60
65
  @data
61
66
  end
67
+ def find_turtle(filename, params = {})
68
+ if params[:noexpand] == true
69
+ filename if File.exists? filename
70
+ else
71
+ file = nil
72
+ basename = File.basename(filename, ".ttl")
73
+ dirname = File.dirname(filename)
74
+ files = Dir.glob("#{dirname}/#{basename}-[0-9]*.ttl{,.gz}")
75
+ file = files.sort.last
76
+ file
77
+ end
78
+ end
79
+
62
80
  def format_turtle(subject, depth = 1)
63
81
  turtle = RDF::Turtle::Writer.new
64
82
  result = ""
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ttl2html
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.8
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Masao Takaku
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-07-02 00:00:00.000000000 Z
11
+ date: 2021-10-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -113,9 +113,11 @@ email: tmasao@acm.org
113
113
  executables:
114
114
  - ttl2html
115
115
  - xlsx2shape
116
+ - catttl
116
117
  extensions: []
117
118
  extra_rdoc_files: []
118
119
  files:
120
+ - bin/catttl
119
121
  - bin/ttl2html
120
122
  - bin/xlsx2shape
121
123
  - lib/ttl2html.rb