Noosfero/noosfero

View on GitHub
plugins/open_graph/lib/open_graph_plugin/publisher.rb

Summary

Maintainability
A
25 mins
Test Coverage
class OpenGraphPlugin::Publisher
  def self.default
    @default ||= self.new
  end

  def initialize(attributes = {})
    attributes.each do |attr, value|
      self.send "#{attr}=", value
    end
  end

  def publish_stories(object_data, actor, stories)
    stories.each do |story|
      begin
        self.publish_story object_data, actor, story
      rescue => e
        raise unless Rails.env.production?

        ExceptionNotifier.notify_exception e
      end
    end
  end

  def publish_story(object_data, actor, story)
    OpenGraphPlugin.context = OpenGraphPlugin::Activity.context
    a = OpenGraphPlugin::Activity.new object_data: object_data, actor: actor, story: story
    a.dispatch_publications
    a.save
  end

  protected
end