From 8dc62c15999d19d42beb9f481dd24507197c7df9 Mon Sep 17 00:00:00 2001 From: Victor Costa Date: Tue, 11 Nov 2014 14:03:47 -0300 Subject: [PATCH] virtuoso: use liquid as template engine --- plugins/virtuoso/Gemfile | 1 + plugins/virtuoso/lib/ext/literal.rb | 7 +++++++ plugins/virtuoso/lib/ext/solution.rb | 7 +++++++ plugins/virtuoso/lib/virtuoso_plugin/triples_template.rb | 7 +++---- 4 files changed, 18 insertions(+), 4 deletions(-) create mode 100644 plugins/virtuoso/lib/ext/literal.rb create mode 100644 plugins/virtuoso/lib/ext/solution.rb diff --git a/plugins/virtuoso/Gemfile b/plugins/virtuoso/Gemfile index 6c259c5..818f3fd 100644 --- a/plugins/virtuoso/Gemfile +++ b/plugins/virtuoso/Gemfile @@ -1,3 +1,4 @@ gem 'rdf' gem 'rdf-virtuoso' gem 'oai' +gem 'liquid' diff --git a/plugins/virtuoso/lib/ext/literal.rb b/plugins/virtuoso/lib/ext/literal.rb new file mode 100644 index 0000000..9ab34b0 --- /dev/null +++ b/plugins/virtuoso/lib/ext/literal.rb @@ -0,0 +1,7 @@ +class RDF::Literal + + def to_liquid + value + end + +end diff --git a/plugins/virtuoso/lib/ext/solution.rb b/plugins/virtuoso/lib/ext/solution.rb new file mode 100644 index 0000000..bf08fb8 --- /dev/null +++ b/plugins/virtuoso/lib/ext/solution.rb @@ -0,0 +1,7 @@ +class RDF::Query::Solution + + def to_liquid + HashWithIndifferentAccess.new(to_hash) + end + +end diff --git a/plugins/virtuoso/lib/virtuoso_plugin/triples_template.rb b/plugins/virtuoso/lib/virtuoso_plugin/triples_template.rb index 5c4bd76..5613768 100644 --- a/plugins/virtuoso/lib/virtuoso_plugin/triples_template.rb +++ b/plugins/virtuoso/lib/virtuoso_plugin/triples_template.rb @@ -25,10 +25,9 @@ class VirtuosoPlugin::TriplesTemplate < Article end def template_content - result = plugin.virtuoso_client.query(query) - result.map do |r| - template.gsub(/%\{.*\}/) {|s| r["#{s.delete('%|{|}')}"]} - end.join + results = plugin.virtuoso_client.query(query) + liquid_template = Liquid::Template.parse("{% for row in results %}#{template}{% endfor %}") + liquid_template.render('results' => results) end end -- libgit2 0.21.2