class Arcane::Finder

Attributes

object[R]

Public Class Methods

new(object) click to toggle source
# File lib/arcane/finder.rb, line 7
def initialize(object)
  @object = object
end
object_name(object) click to toggle source
# File lib/arcane/finder.rb, line 19
def self.object_name(object)
  klass = if object.respond_to?(:model_name)
    object.model_name
  elsif object.class.respond_to?(:model_name)
    object.class.model_name
  elsif object.is_a?(Class)
    object
  else
    object.class
  end
  klass.to_s
end

Public Instance Methods

refinery() click to toggle source
# File lib/arcane/finder.rb, line 11
def refinery
  klass = find
  klass = klass.constantize if klass.is_a?(String)
  klass
rescue NameError
  Arcane::Refinery
end

Private Instance Methods

find() click to toggle source
# File lib/arcane/finder.rb, line 34
def find
  if object.respond_to?(:arcane_class)
    object.refinery_class
  elsif object.class.respond_to?(:arcane_class)
    object.class.refinery_class
  else
    klass = self.class.object_name(object)
    "#{klass}Refinery"
  end
end