ttl2html 2.0.2 → 2.0.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 71b5a2abdcc42e13003a2ceca9c3c29ed0ff866c472a058354a469868a244269
4
- data.tar.gz: de4d3bd146d80800f7f4358a0f843479e5f8583436d4af550ddef4643af60c06
3
+ metadata.gz: 3014009aab356311f3f36ff39087b63af87dc81a97d72ad34a74c4a685fd810a
4
+ data.tar.gz: 9f55838aee5811144d539ac036567803dbd34005335e6ab1762aef8c152c772b
5
5
  SHA512:
6
- metadata.gz: 54d9bfb81e8fce12a3b0158e888a67bd6b718f7ab1efa35d09fc18ba8d7c596c226a08017894823d1baf6f637f3080e7211f44c85f4ff5a37546fde3b25b5838
7
- data.tar.gz: fc40d4fc10a284b152802eef7069d786ea307d4a6713ffff1fd30dee7d46c1605f8b328e5d598f3913b0345d8e20f038cae623497453f2e5e0b6e0adedb4aeb5
6
+ metadata.gz: 2d6756b3c78a0b13516475c11884e4c5f86e2945046101504e4810dbf83210d6d3c679eae74a8ac841d1e44cec3908e5c05364d9b5b606a1058d40af356b949f
7
+ data.tar.gz: 7b5b6c0d6c131e2a883e0781af9b11d999e1f35918e0b012a83ad926bf52621a1fd62be76620922800ebe27d0155fc547ddb5a49ff3eb1fc4f18804fd3925421
@@ -157,8 +157,8 @@ module TTL2HTML
157
157
  titles.compact.join(" - ")
158
158
  end
159
159
  def shorten_title(title, length = 140)
160
- if title.length > length
161
- title[0..length] + "..."
160
+ if title.to_s.length > length
161
+ title.to_s[0..length] + "..."
162
162
  else
163
163
  title
164
164
  end
@@ -187,14 +187,15 @@ module TTL2HTML
187
187
  default_title
188
188
  end
189
189
  def get_language_literal(object)
190
- if object.respond_to? :has_key?
191
- if object.has_key?(I18n.locale)
192
- object[I18n.locale]
190
+ if object.is_a? Array
191
+ object_lang = object.select do |e|
192
+ e.language? and e.language == I18n.locale
193
+ end
194
+ if not object_lang.empty?
195
+ object_lang.first
193
196
  else
194
- object.values.first
197
+ object.first
195
198
  end
196
- elsif object.is_a? Array
197
- object.first
198
199
  else
199
200
  object
200
201
  end
@@ -1 +1 @@
1
- TTL2HTML::VERSION = "2.0.2"
1
+ TTL2HTML::VERSION = "2.0.3"
data/lib/ttl2html.rb CHANGED
@@ -53,17 +53,14 @@ module TTL2HTML
53
53
  o = statement.object
54
54
  count += 1
55
55
  @data[s.to_s] ||= {}
56
- if o.respond_to?(:has_language?) and o.has_language?
57
- @data[s.to_s][v.to_s] ||= {}
58
- @data[s.to_s][v.to_s][o.language] = o.to_s
59
- else
60
- @data[s.to_s][v.to_s] ||= []
61
- @data[s.to_s][v.to_s] << o.to_s
62
- end
56
+ @data[s.to_s][v.to_s] ||= []
63
57
  if o.is_a? RDF::URI or o.is_a? RDF::Node
58
+ @data[s.to_s][v.to_s] << o.to_s
64
59
  @data_inverse[o.to_s] ||= {}
65
60
  @data_inverse[o.to_s][v.to_s] ||= []
66
61
  @data_inverse[o.to_s][v.to_s] << s.to_s
62
+ else
63
+ @data[s.to_s][v.to_s] << o
67
64
  end
68
65
  end
69
66
  @prefix.merge! reader.prefixes
@@ -240,10 +237,12 @@ module TTL2HTML
240
237
  else
241
238
  label = template.get_title(@data[subject.to_s])
242
239
  end
240
+ html = template.expand_shape(@data, subject.to_s, @prefix)
241
+ next if html.nil?
243
242
  param[:shapes][subject] = {
244
243
  label: label,
245
244
  comment: comment,
246
- html: template.expand_shape(@data, subject.to_s, @prefix),
245
+ html: html,
247
246
  target_class: target_class,
248
247
  order: orders,
249
248
  }
@@ -349,6 +348,37 @@ module TTL2HTML
349
348
  orders
350
349
  end
351
350
 
351
+ def extract_version_metadata(data)
352
+ description = data["http://purl.org/dc/terms/description"]
353
+ link = nil
354
+ if not description
355
+ qrev = data["http://www.w3.org/ns/prov#qualifiedRevision"]&.first
356
+ if @data[qrev]
357
+ description = @data[qrev]["http://www.w3.org/2000/01/rdf-schema#comment"]
358
+ link = @data[qrev]["http://www.w3.org/2000/01/rdf-schema#seeAlso"]&.first
359
+ end
360
+ end
361
+ subset = []
362
+ if data["http://rdfs.org/ns/void#subset"]
363
+ data["http://rdfs.org/ns/void#subset"].each do |s|
364
+ abort "#{s} not found" if not @data[s]
365
+ subset << extract_version_metadata(@data[s])
366
+ end
367
+ end
368
+ date = data["http://purl.org/pav/createdOn"]&.first
369
+ date = data["http://purl.org/dc/terms/issued"]&.first if date.nil?
370
+ return {
371
+ version: data["http://purl.org/pav/version"]&.first,
372
+ triples: data["http://rdfs.org/ns/void#triples"]&.first,
373
+ datadump: data["http://rdfs.org/ns/void#dataDump"]&.first,
374
+ bytesize: data["http://www.w3.org/ns/dcat#byteSize"]&.first,
375
+ date: date,
376
+ description: description,
377
+ subset: subset,
378
+ link: link,
379
+ license: extract_license(data),
380
+ }
381
+ end
352
382
  def extract_versions
353
383
  versions = []
354
384
  ["http://purl.org/pav/hasVersion", "http://purl.org/pav/hasCurrentVersion", "http://purl.org/dc/terms/hasVersion"].each do |prop|
@@ -364,37 +394,24 @@ module TTL2HTML
364
394
  next if not version
365
395
  next if not version["http://www.w3.org/1999/02/22-rdf-syntax-ns#type"]
366
396
  next if not version["http://www.w3.org/1999/02/22-rdf-syntax-ns#type"].include? "http://rdfs.org/ns/void#Dataset"
367
- description = version["http://purl.org/dc/terms/description"]
368
- link = nil
369
- if not description
370
- qrev = version["http://www.w3.org/ns/prov#qualifiedRevision"]&.first
371
- if @data[qrev]
372
- description = @data[qrev]["http://www.w3.org/2000/01/rdf-schema#comment"]
373
- link = @data[qrev]["http://www.w3.org/2000/01/rdf-schema#seeAlso"]&.first
374
- end
375
- end
376
- subset = []
377
- if version["http://rdfs.org/ns/void#subset"]
378
- version["http://rdfs.org/ns/void#subset"].each do |s|
379
- subset << @data[s]["http://rdfs.org/ns/void#dataDump"].first
380
- end
381
- end
382
- date = version["http://purl.org/pav/createdOn"]&.first
383
- date = version["http://purl.org/dc/terms/issued"]&.first if date.nil?
384
- versions << {
385
- uri: uri,
386
- version: version["http://purl.org/pav/version"]&.first,
387
- triples: version["http://rdfs.org/ns/void#triples"]&.first,
388
- datadump: version["http://rdfs.org/ns/void#dataDump"]&.first,
389
- bytesize: version["http://www.w3.org/ns/dcat#byteSize"]&.first,
390
- date: date,
391
- description: description,
392
- subset: subset,
393
- link: link,
394
- }
397
+ versions << extract_version_metadata(version)
395
398
  end
396
399
  end
397
- versions.sort_by{|v| [ v[:date], v[:uri] ] }
400
+ versions.sort_by{|v| [ v[:date], v[:version] ] }
401
+ end
402
+ def extract_license(data)
403
+ license = {}
404
+ if data["http://purl.org/dc/terms/license"]
405
+ license_data = @data[data["http://purl.org/dc/terms/license"].first]
406
+ if license_data
407
+ license[:url] = license_data["http://www.w3.org/1999/02/22-rdf-syntax-ns#value"]&.first
408
+ license[:icon] = license_data["http://xmlns.com/foaf/0.1/thumbnail"]&.first
409
+ license[:label] = license_data["http://www.w3.org/2000/01/rdf-schema#label"]
410
+ elsif data["http://purl.org/dc/terms/license"].first =~ URI::regexp
411
+ license[:url] = license[:label] = data["http://purl.org/dc/terms/license"].first
412
+ end
413
+ end
414
+ license
398
415
  end
399
416
  def extract_toplevel
400
417
  result = {}
@@ -406,17 +423,7 @@ module TTL2HTML
406
423
  end
407
424
  data = @data[toplevel.to_s]
408
425
  if toplevel
409
- license = {}
410
- if data["http://purl.org/dc/terms/license"]
411
- license_data = @data[data["http://purl.org/dc/terms/license"].first]
412
- if license_data
413
- license[:url] = license_data["http://www.w3.org/1999/02/22-rdf-syntax-ns#value"]&.first
414
- license[:icon] = license_data["http://xmlns.com/foaf/0.1/thumbnail"]&.first
415
- license[:label] = license_data["http://www.w3.org/2000/01/rdf-schema#label"]
416
- elsif data["http://purl.org/dc/terms/license"].first =~ URI::regexp
417
- license[:url] = license[:label] = data["http://purl.org/dc/terms/license"].first
418
- end
419
- end
426
+ license = extract_license(data)
420
427
  if data["http://purl.org/dc/terms/publisher"]
421
428
  publisher_data = @data[data["http://purl.org/dc/terms/publisher"].first]
422
429
  email = publisher_data["http://xmlns.com/foaf/0.1/mbox"]&.first
data/locales/en.yml CHANGED
@@ -21,6 +21,8 @@ en:
21
21
  latest-news: "Latest news"
22
22
  past-versions: "Past versions"
23
23
  license-text: "This dataset is freely usable as <a href=\"%{url}\">%{label}</a>"
24
+ dataset:
25
+ license-text: "This dataset is freely usable as <a href=\"%{url}\">%{label}</a>"
24
26
  layout:
25
27
  rdf-data: RDF data
26
28
  shape-table:
data/locales/ja.yml CHANGED
@@ -21,6 +21,8 @@ ja:
21
21
  latest-news: 最新のお知らせ
22
22
  past-versions: 過去の更新履歴
23
23
  license-text: "このデータセットは<a href=\"%{url}\">%{label}</a>として自由に利用できます。"
24
+ dataset:
25
+ license-text: "<a href=\"%{url}\">%{label}</a>として自由に利用できます"
24
26
  layout:
25
27
  rdf-data: RDFデータ
26
28
  shape-table:
@@ -0,0 +1,35 @@
1
+ <%- if param[:datadump] -%>
2
+ <li><a href="<%=h param[:datadump] %>"><%=h File.basename(param[:datadump]) %></a>
3
+ <%-
4
+ fileinfo = []
5
+ if param[:triples]
6
+ fileinfo << t("about.version-triples", triples: number_with_delimiter(param[:triples].to_i))
7
+ end
8
+ if param[:bytesize]
9
+ fileinfo << number_to_human_size(param[:bytesize])
10
+ end
11
+ -%>
12
+ <%- if fileinfo.size > 0 -%>
13
+ (<%=h fileinfo.join(", ") %>)
14
+ <%- end -%>
15
+ <%- if not param[:license].empty? -%>
16
+ <span class="license">
17
+ <%- if param[:license][:icon] -%>
18
+ <a href="<%=h param[:license][:url] %>"><img src="<%=h param[:license][:icon] %>"></a>
19
+ <%- end -%>
20
+ <%= t("dataset.license-text", label: get_language_literal(param[:license][:label]), url: param[:license][:url]) %>
21
+ </span>
22
+ <%- end -%>
23
+ <%- if param[:subset].size > 0 -%>
24
+ <ul>
25
+ <%- param[:subset].each do |subset| -%>
26
+ <%= to_html_raw("dataset.html.erb", subset) %>
27
+ <%- end -%>
28
+ </ul>
29
+ <%- end -%>
30
+ </li>
31
+ <%- elsif param[:subset].size > 0 -%>
32
+ <%- param[:subset].each do |subset| -%>
33
+ <%= to_html_raw("dataset.html.erb", subset) %>
34
+ <%- end -%>
35
+ <%- end -%>
@@ -20,7 +20,7 @@
20
20
  <%- if param[:versions].size > 1 -%>
21
21
  <p><a href="about#versions">&raquo; <%=h t("index.past-versions") %></a></p>
22
22
  <%- end -%>
23
- <%- if param[:toplevel] and param[:toplevel][:license] -%>
23
+ <%- if param[:toplevel] and not param[:toplevel][:license].empty? -%>
24
24
  <p>
25
25
  <%- if param[:toplevel][:license][:icon] -%>
26
26
  <a href="<%=h param[:toplevel][:license][:url] %>"><img src="<%=h param[:toplevel][:license][:icon] %>"></a>
@@ -5,11 +5,6 @@
5
5
  [ order, k ]
6
6
  }.each do |k, v| -%>
7
7
  <dt class="col-sm-3"><%=h format_property(k, param[:labels]) %></dt>
8
- <%- if v.respond_to? :has_key? -%>
9
- <%- v.each_with_index do |v2, idx| -%>
10
- <dd class="col-sm-9<%= ' offset-sm-3' if idx > 0 %>" lang="<%=h v2[0] %>"><%= format_object v2[1], param[:data], param[:type] %></dd>
11
- <%- end -%>
12
- <%- elsif v.size > 1 -%>
13
8
  <%- v.sort_by{|e|
14
9
  if e =~ /\A_:/ and param[:data_global][e]
15
10
  param[:data_global][e].to_s
@@ -17,10 +12,11 @@
17
12
  e
18
13
  end
19
14
  }.each_with_index do |v2, idx| -%>
15
+ <%- if v2.respond_to? :language and v2.language? -%>
16
+ <dd class="col-sm-9<%= ' offset-sm-3' if idx > 0 %>" lang="<%=h v2.language %>"><%= format_object v2, param[:data], param[:type] %></dd>
17
+ <%- else -%>
20
18
  <dd class="col-sm-9<%= ' offset-sm-3' if idx > 0 %>"><%= format_object v2, param[:data], param[:type] %></dd>
19
+ <%- end -%>
21
20
  <%- end -%>
22
- <%- else -%>
23
- <dd class="col-sm-9"><%= format_object v.first, param[:data], param[:type] %></dd>
24
- <%- end -%>
25
21
  <%- end -%>
26
22
  </dl>
@@ -5,28 +5,6 @@
5
5
  <%= t("about.version-link", link: param[:data][:link]) %>
6
6
  <%- end -%>
7
7
  </dd>
8
- <%- if param[:data][:datadump] -%>
9
- <dd><ul>
10
- <li><a href="<%=h param[:data][:datadump] %>"><%=h File.basename(param[:data][:datadump]) %></a>
11
- <%-
12
- fileinfo = []
13
- if param[:data][:triples]
14
- fileinfo << t("about.version-triples", triples: number_with_delimiter(param[:data][:triples].to_i))
15
- end
16
- if param[:data][:bytesize]
17
- fileinfo << number_to_human_size(param[:data][:bytesize])
18
- end
19
- -%>
20
- <%- if fileinfo.size > 0 -%>
21
- (<%=h fileinfo.join(", ") %>)
22
- <%- end -%>
23
- <%- if param[:data][:subset].size > 0 -%>
24
- <ul>
25
- <%- param[:data][:subset].each do |subset| -%>
26
- <li><a href="<%=h subset %>"><%=h File.basename(subset) %></a></li>
27
- <%- end -%>
28
- </ul>
29
- </li>
30
- <%- end -%>
31
- </ul></dd>
32
- <%- end -%>
8
+ <%- if param[:data][:dataDump] or param[:data][:subset] -%>
9
+ <dd><ul><%= to_html_raw("dataset.html.erb", param[:data]) %></ul></dd>
10
+ <%- end -%>
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: 2.0.2
4
+ version: 2.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Masao Takaku
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-08-31 00:00:00.000000000 Z
11
+ date: 2022-10-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -156,6 +156,7 @@ files:
156
156
  - locales/en.yml
157
157
  - locales/ja.yml
158
158
  - templates/about.html.erb
159
+ - templates/dataset.html.erb
159
160
  - templates/default.html.erb
160
161
  - templates/index-list.html.erb
161
162
  - templates/index.html.erb