class SocialMedia::Service::Base

Attributes

connection_params[R]
not_provided_behavior[R]

Public Class Methods

name() click to toggle source
# File lib/social_media/service/base.rb, line 4
def self.name
  raise NotImplementedError.new "#{self.to_s}::name not implemented"
end
new(connection_params) click to toggle source
# File lib/social_media/service/base.rb, line 11
def initialize connection_params
  @connection_params = connection_params
  @not_provided_behavior = connection_params.delete(:not_provided_behavior) || :raise_error
end

Public Instance Methods

cast_error(error) click to toggle source
# File lib/social_media/service/base.rb, line 16
def cast_error error
  return Error
end
handle_error() { || ... } click to toggle source
# File lib/social_media/service/base.rb, line 27
def handle_error &block
  begin
    yield
  rescue Exception => error
    wrapped_error = SocialMedia::convert_exception_class(error, cast_error(error) || Error)
    raise wrapped_error
  end
end
raise_not_provided_error() click to toggle source
# File lib/social_media/service/base.rb, line 20
def raise_not_provided_error
  return if not_provided_behavior == :silent

  method_name = caller.first.scan(/\:in \`(.*)\'$/).join
  raise SocialMedia::Error::NotProvided.new "#{self.class.to_s}##{method_name}"
end