class ActsInRelation::Roles::Base

Public Class Methods

new(args) click to toggle source
# File lib/acts_in_relation/roles/base.rb, line 9
def initialize(args)
  @class = caller_class.constantize
  @args = recursive_to_s(args)
end

Public Instance Methods

actions() click to toggle source
# File lib/acts_in_relation/roles/base.rb, line 22
def actions
  @actions ||= [@args[:action]].flatten
end
define() click to toggle source
# File lib/acts_in_relation/roles/base.rb, line 26
def define
  raise NotImplementedError
end
source() click to toggle source
# File lib/acts_in_relation/roles/base.rb, line 14
def source
  @source ||= @args[:source] || @args[:self] || @class.to_s.downcase
end
target() click to toggle source
# File lib/acts_in_relation/roles/base.rb, line 18
def target
  @target ||= @args[:target] || @args[:self] || @class.to_s.downcase
end

Private Instance Methods

recursive_to_s(object) click to toggle source
# File lib/acts_in_relation/roles/base.rb, line 32
def recursive_to_s(object)
  case object
  when Hash
    object.each do |k, v|
      object[k] = recursive_to_s(v)
    end
  when Array
    object.map { |o| recursive_to_s(o) }
  else
    object.to_s unless object.nil?
  end
end