Commit 76aa0ada687d279d643468030f86d303ec34af76
1 parent
f8020b09
Exists in
theme-brasil-digital-from-staging
and in
9 other branches
virtuoso: added a content that display triples results
Showing
6 changed files
with
84 additions
and
6 deletions
Show diff stats
plugins/virtuoso/lib/virtuoso_plugin.rb
| ... | ... | @@ -8,4 +8,16 @@ class VirtuosoPlugin < Noosfero::Plugin |
| 8 | 8 | _('Virtuoso integration') |
| 9 | 9 | end |
| 10 | 10 | |
| 11 | + def content_types | |
| 12 | + [VirtuosoPlugin::TriplesTemplate] | |
| 13 | + end | |
| 14 | + | |
| 15 | + def settings | |
| 16 | + @settings ||= Noosfero::Plugin::Settings.new(context.environment, VirtuosoPlugin) | |
| 17 | + end | |
| 18 | + | |
| 19 | + def virtuoso_client | |
| 20 | + @virtuoso_client ||= RDF::Virtuoso::Repository.new("#{settings.virtuoso_uri}/sparql", :update_uri => "#{settings.virtuoso_uri}/sparql-auth", :username => settings.virtuoso_username, :password => settings.virtuoso_password, :auth_method => 'digest', :timeout => 30) | |
| 21 | + end | |
| 22 | + | |
| 11 | 23 | end | ... | ... |
plugins/virtuoso/lib/virtuoso_plugin/dspace_harvest.rb
| ... | ... | @@ -7,18 +7,18 @@ class VirtuosoPlugin::DspaceHarvest |
| 7 | 7 | @environment = environment |
| 8 | 8 | end |
| 9 | 9 | |
| 10 | - def settings | |
| 11 | - @settings ||= Noosfero::Plugin::Settings.new(@environment, VirtuosoPlugin) | |
| 10 | + attr_reader :environment | |
| 11 | + | |
| 12 | + def plugin | |
| 13 | + @plugin ||= VirtuosoPlugin.new(self) | |
| 12 | 14 | end |
| 13 | 15 | |
| 16 | + delegate :settings, :to => :plugin | |
| 17 | + | |
| 14 | 18 | def dspace_client |
| 15 | 19 | @dspace_client ||= OAI::Client.new("#{settings.dspace_uri}/oai/request") |
| 16 | 20 | end |
| 17 | 21 | |
| 18 | - def virtuoso_client | |
| 19 | - @virtuoso_client ||= RDF::Virtuoso::Repository.new("#{settings.virtuoso_uri}/sparql", :update_uri => "#{settings.virtuoso_uri}/sparql-auth", :username => settings.virtuoso_username, :password => settings.virtuoso_password, :auth_method => 'digest', :timeout => 30) | |
| 20 | - end | |
| 21 | - | |
| 22 | 22 | def triplify(record) |
| 23 | 23 | metadata = VirtuosoPlugin::DublinCoreMetadata.new(record.metadata) |
| 24 | 24 | puts "triplify #{record.header.identifier}" | ... | ... |
plugins/virtuoso/lib/virtuoso_plugin/triples_template.rb
0 → 100644
| ... | ... | @@ -0,0 +1,33 @@ |
| 1 | +class VirtuosoPlugin::TriplesTemplate < Article | |
| 2 | + | |
| 3 | + def self.short_description | |
| 4 | + _('Triples template') | |
| 5 | + end | |
| 6 | + | |
| 7 | + def self.description | |
| 8 | + _('Triples template') | |
| 9 | + end | |
| 10 | + | |
| 11 | + settings_items :query, :type => :string | |
| 12 | + settings_items :template, :type => :string | |
| 13 | + | |
| 14 | + attr_accessible :query, :template | |
| 15 | + | |
| 16 | + def to_html(options = {}) | |
| 17 | + article = self | |
| 18 | + proc do | |
| 19 | + render :file => 'content_viewer/triples_template', :locals => {:article => article} | |
| 20 | + end | |
| 21 | + end | |
| 22 | + | |
| 23 | + def plugin | |
| 24 | + @plugin ||= VirtuosoPlugin.new(self) | |
| 25 | + end | |
| 26 | + | |
| 27 | + def template_content | |
| 28 | + plugin.virtuoso_client.query(query).map do |r| | |
| 29 | + template % r | |
| 30 | + end.join | |
| 31 | + end | |
| 32 | + | |
| 33 | +end | ... | ... |
| ... | ... | @@ -0,0 +1,16 @@ |
| 1 | +require File.dirname(__FILE__) + '/../test_helper' | |
| 2 | + | |
| 3 | +class VirtuosoPluginTest < ActiveSupport::TestCase | |
| 4 | + | |
| 5 | + def setup | |
| 6 | + @environment = Environment.default | |
| 7 | + @plugin = VirtuosoPlugin.new | |
| 8 | + end | |
| 9 | + | |
| 10 | + attr_reader :plugin | |
| 11 | + | |
| 12 | + should 'define a new content' do | |
| 13 | + assert_equal [VirtuosoPlugin::TriplesTemplate], plugin.content_types | |
| 14 | + end | |
| 15 | + | |
| 16 | +end | ... | ... |
plugins/virtuoso/views/cms/virtuoso_plugin/_triples_template.html.erb
0 → 100644
| ... | ... | @@ -0,0 +1,10 @@ |
| 1 | +<%= required_fields_message %> | |
| 2 | + | |
| 3 | +<%= render :file => 'shared/tiny_mce' %> | |
| 4 | + | |
| 5 | +<%= required labelled_form_field(_('Title'), text_field(:article, 'name', :size => '64', :maxlength => 150)) %> | |
| 6 | +<%= labelled_form_field(_('SPARQL Query'), text_area(:article, :query, :style => 'width: 98%; height: 120px;')) %> | |
| 7 | +<%= labelled_form_field(_('Template'), text_area(:article, :template, :style => 'width: 98%; height: 200px;', :class => 'mceEditor')) %> | |
| 8 | + | |
| 9 | +<%= render :partial => 'general_fields' %> | |
| 10 | +<%= render :partial => 'shared/lead_and_body', :locals => {:tiny_mce => true} %> | ... | ... |
plugins/virtuoso/views/content_viewer/triples_template.html.erb
0 → 100644