Commit 8dc62c15999d19d42beb9f481dd24507197c7df9

Authored by Victor Costa
1 parent e26c17d1

virtuoso: use liquid as template engine

plugins/virtuoso/Gemfile
1 gem 'rdf' 1 gem 'rdf'
2 gem 'rdf-virtuoso' 2 gem 'rdf-virtuoso'
3 gem 'oai' 3 gem 'oai'
  4 +gem 'liquid'
plugins/virtuoso/lib/ext/literal.rb 0 → 100644
@@ -0,0 +1,7 @@ @@ -0,0 +1,7 @@
  1 +class RDF::Literal
  2 +
  3 + def to_liquid
  4 + value
  5 + end
  6 +
  7 +end
plugins/virtuoso/lib/ext/solution.rb 0 → 100644
@@ -0,0 +1,7 @@ @@ -0,0 +1,7 @@
  1 +class RDF::Query::Solution
  2 +
  3 + def to_liquid
  4 + HashWithIndifferentAccess.new(to_hash)
  5 + end
  6 +
  7 +end
plugins/virtuoso/lib/virtuoso_plugin/triples_template.rb
@@ -25,10 +25,9 @@ class VirtuosoPlugin::TriplesTemplate < Article @@ -25,10 +25,9 @@ class VirtuosoPlugin::TriplesTemplate < Article
25 end 25 end
26 26
27 def template_content 27 def template_content
28 - result = plugin.virtuoso_client.query(query)  
29 - result.map do |r|  
30 - template.gsub(/%\{.*\}/) {|s| r["#{s.delete('%|{|}')}"]}  
31 - end.join 28 + results = plugin.virtuoso_client.query(query)
  29 + liquid_template = Liquid::Template.parse("{% for row in results %}#{template}{% endfor %}")
  30 + liquid_template.render('results' => results)
32 end 31 end
33 32
34 end 33 end