module Announcer::Publishers

Public Instance Methods

_load_for_instance(instance, publishers) click to toggle source
# File lib/announcer/publishers.rb, line 22
def _load_for_instance(instance, publishers)
  publishers.map { |publisher| _load_with_args(publisher, instance) }
end
_load_from_proc(publisher_proc) click to toggle source
# File lib/announcer/publishers.rb, line 50
def _load_from_proc(publisher_proc)
  ProcPublisher.new(&publisher_proc)
end
_load_from_string(publisher_name) click to toggle source
# File lib/announcer/publishers.rb, line 44
def _load_from_string(publisher_name)
  const_get((publisher_name.split('_').map(&:capitalize) + ['Publisher']).join)
rescue NameError
  raise Errors::InvalidPublisherNameError, publisher_name
end
_load_with_args(publisher, *args) click to toggle source
# File lib/announcer/publishers.rb, line 26
def _load_with_args(publisher, *args)
  case publisher
  when Array
    _load_with_args(publisher[0], *(args + publisher[1..-1]))
  else
    load(publisher).new(*args)
  end
end
load(publisher) click to toggle source
# File lib/announcer/publishers.rb, line 35
def load(publisher)
  case publisher
  when String, Symbol then _load_from_string(publisher.to_s)
  when Proc           then _load_from_proc(publisher)
  when Publisher      then publisher
  else raise Errors::InvalidPublisherError, publisher.inspect
  end
end
load_for_instance(instance) click to toggle source
# File lib/announcer/publishers.rb, line 17
def load_for_instance(instance)
  config = instance.config
  config.publish_to? ? _load_for_instance(instance, config.publish_to) : []
end