Commit 8dc62c15999d19d42beb9f481dd24507197c7df9

Authored by Victor Costa
1 parent e26c17d1

virtuoso: use liquid as template engine

plugins/virtuoso/Gemfile
1 1 gem 'rdf'
2 2 gem 'rdf-virtuoso'
3 3 gem 'oai'
  4 +gem 'liquid'
... ...
plugins/virtuoso/lib/ext/literal.rb 0 → 100644
... ... @@ -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 @@
  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 25 end
26 26  
27 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 31 end
33 32  
34 33 end
... ...