jekyll-rdf 3.1.1.pre.develop.701 → 3.1.1.pre.develop.702

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: 37ec15b87ba7bc0fb5aa7a6e32ef22708d6e88ecb098a2b755a0c85108a77e19
4
- data.tar.gz: f0f21d0e340c2b66dd7ae57645edfdc21c187a66267214cebbf95ba63c9a54b0
3
+ metadata.gz: 778b8d0b842c7ec97a201bdde42aab1ca10ef30d9d997ec3f18364a52cdd3e60
4
+ data.tar.gz: 355c3c76d1edf5c5ab6d79b6ee8d36f6f205b49725392e7b607972ad06e67a98
5
5
  SHA512:
6
- metadata.gz: 7510df3def5f91ba7e0c03dbe0376a119ed0f625aa8d07bbec15012a4725ce4ef1b8c1259261e47bee8821123c39f5c6572152fa76f038518900eb88f69221a3
7
- data.tar.gz: 0b38e389cfd959ec21e98e76f8e4a19773349a27058de8db7d9d393575b987f2de1bb290717a2067dab5db9e325acc30e407968839750d80386068e9981a691f
6
+ metadata.gz: 5afc53787251593f1d94d98cd2e2d2c2af716a45fe735447e4323d7c0fa4bc6fa5572091ca6954b81d469bde00ae1f3393fe70885113bd0b0c6f7c9215a248f2
7
+ data.tar.gz: 619e6ce00fcc8e42a6ef1afa83dd578b6d5d1b5c69920fc83d97100757b133b446a003258f5cf8f96249902fae6d1d7a28476548f91656622c1253c8c5201dff
data/lib/jekyll-rdf.rb CHANGED
@@ -43,6 +43,7 @@ require 'jekyll/drops/rdf_statement'
43
43
  require 'jekyll/drops/rdf_literal'
44
44
  require 'jekyll/drops/rdf_resource'
45
45
  require 'jekyll/drops/rdf_resource_class'
46
+ require 'jekyll/drops/rdf_graph'
46
47
  require 'jekyll/exceptions/NoPrefixMapped'
47
48
  require 'jekyll/exceptions/NoPrefixesDefined'
48
49
  require 'jekyll/exceptions/UnMarkedUri'
@@ -0,0 +1,56 @@
1
+ ##
2
+ # MIT License
3
+ #
4
+ # Copyright (c) 2016 Elias Saalmann, Christian Frommert, Simon Jakobi,
5
+ # Arne Jonas Präger, Maxi Bornmann, Georg Hackel, Eric Füg
6
+ #
7
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
8
+ # of this software and associated documentation files (the "Software"), to deal
9
+ # in the Software without restriction, including without limitation the rights
10
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+ # copies of the Software, and to permit persons to whom the Software is
12
+ # furnished to do so, subject to the following conditions:
13
+ #
14
+ # The above copyright notice and this permission notice shall be included in all
15
+ # copies or substantial portions of the Software.
16
+ #
17
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
+ # SOFTWARE.
24
+ #
25
+
26
+ module Jekyll #:nodoc:
27
+ module JekyllRdf #:nodoc:
28
+ module Drops #:nodoc:
29
+ class RdfGraph < Liquid::Drop
30
+ attr_reader :graph
31
+
32
+ def initialize(graph)
33
+ @graph = graph
34
+ end
35
+
36
+ def to_s
37
+ to_nquads
38
+ end
39
+
40
+ def to_nquads
41
+ result = @graph.statements.map{|state|
42
+ state.to_nquads
43
+ }.join("")
44
+ return result
45
+ end
46
+
47
+ def to_ntriples
48
+ result = @graph.statements.map{|state|
49
+ state.to_ntriples
50
+ }.join("")
51
+ return result
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
@@ -38,27 +38,14 @@ module Jekyll
38
38
  # * +query+ - the SPARQL query
39
39
  #
40
40
  def sparql_query(resource = nil, query)
41
- query = query.clone #sometimes liquid wont reinit static strings in for loops
42
- if(rdf_substitude_nil?(resource))
43
- query.gsub!('?resourceUri', "<#{Jekyll::JekyllRdf::Helper::RdfHelper::page.data['rdf'].term}>")
44
- elsif(resource.class <= Array)
45
- resource.each_with_index do |uri, index|
46
- return unless valid_resource?(uri)
47
- if(uri.class <= Jekyll::JekyllRdf::Drops::RdfResource)
48
- query.gsub!("?resourceUri_#{index}", uri.term.to_ntriples)
49
- else
50
- query.gsub!("?resourceUri_#{index}", "#{rdf_resolve_prefix(uri.to_s)}")
51
- end
52
- end
53
- else
54
- return unless valid_resource?(resource)
55
- query.gsub!('?resourceUri', to_string_wrap(resource))
56
- end if query.include? '?resourceUri' #the only purpose of the if statement is to substitute ?resourceUri
57
- unless Jekyll::JekyllRdf::Helper::RdfHelper::prefixes["rdf_prefixes"].nil?
58
- query = query.prepend(" ").prepend(Jekyll::JekyllRdf::Helper::RdfHelper::prefixes["rdf_prefixes"])
59
- end
41
+ query = prepare_query(resource, query)
42
+ return if query.nil?
60
43
  begin
61
- result = Jekyll::JekyllRdf::Helper::RdfHelper::sparql.query(query).map do |solution|
44
+ result = Jekyll::JekyllRdf::Helper::RdfHelper::sparql.query(query)
45
+ if (result.class == RDF::Graph)
46
+ return Jekyll::JekyllRdf::Drops::RdfGraph.new(result)
47
+ end
48
+ result.map! do |solution|
62
49
  hsh = solution.to_h
63
50
  hsh.update(hsh){ |k,v| Jekyll::JekyllRdf::Drops::RdfTerm.build_term_drop(v, Jekyll::JekyllRdf::Helper::RdfHelper::site, true).add_necessities(Jekyll::JekyllRdf::Helper::RdfHelper::site, Jekyll::JekyllRdf::Helper::RdfHelper::page)}
64
51
  hsh.collect{|k,v| [k.to_s, v]}.to_h
@@ -55,6 +55,29 @@ module Jekyll
55
55
  return false
56
56
  end
57
57
  end
58
+
59
+ def prepare_query(resource = nil, query)
60
+ query = query.clone #sometimes liquid wont reinit static strings in for loops
61
+ if(rdf_substitude_nil?(resource))
62
+ query.gsub!('?resourceUri', "<#{Jekyll::JekyllRdf::Helper::RdfHelper::page.data['rdf'].term}>")
63
+ elsif(resource.class <= Array)
64
+ resource.each_with_index do |uri, index|
65
+ return nil unless valid_resource?(uri)
66
+ if(uri.class <= Jekyll::JekyllRdf::Drops::RdfResource)
67
+ query.gsub!("?resourceUri_#{index}", uri.term.to_ntriples)
68
+ else
69
+ query.gsub!("?resourceUri_#{index}", "#{rdf_resolve_prefix(uri.to_s)}")
70
+ end
71
+ end
72
+ else
73
+ return nil unless valid_resource?(resource)
74
+ query.gsub!('?resourceUri', to_string_wrap(resource))
75
+ end if query.include? '?resourceUri' #the only purpose of the if statement is to substitute ?resourceUri
76
+ unless Jekyll::JekyllRdf::Helper::RdfHelper::prefixes["rdf_prefixes"].nil?
77
+ query = query.prepend(" ").prepend(Jekyll::JekyllRdf::Helper::RdfHelper::prefixes["rdf_prefixes"])
78
+ end
79
+ return query
80
+ end
58
81
  end
59
82
 
60
83
  module PrefixSolver
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-rdf
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.1.pre.develop.701
4
+ version: 3.1.1.pre.develop.702
5
5
  platform: ruby
6
6
  authors:
7
7
  - Elias Saalmann
@@ -207,6 +207,7 @@ extensions: []
207
207
  extra_rdoc_files: []
208
208
  files:
209
209
  - lib/jekyll-rdf.rb
210
+ - lib/jekyll/drops/rdf_graph.rb
210
211
  - lib/jekyll/drops/rdf_literal.rb
211
212
  - lib/jekyll/drops/rdf_resource.rb
212
213
  - lib/jekyll/drops/rdf_resource_class.rb