class SmartEnum::Associations::Association

Attributes

as_option[R]
association_name[R]
class_name_option[R]
foreign_key_option[R]
owner_class[R]

Public Class Methods

new(owner_class, association_name, class_name: nil, as: nil, foreign_key: nil) click to toggle source
# File lib/smart_enum/associations.rb, line 101
def initialize(owner_class, association_name, class_name: nil, as: nil, foreign_key: nil)
  @owner_class = owner_class
  @association_name = association_name.to_sym
  @class_name_option = class_name
  @as_option = as
  @foreign_key_option = foreign_key
end

Public Instance Methods

association_class() click to toggle source
# File lib/smart_enum/associations.rb, line 121
def association_class
  @association_class ||= SmartEnum::Utilities.constantize(class_name).tap{|klass|
    ::SmartEnum::Associations.__assert_enum(klass)
  }
end
class_name() click to toggle source
# File lib/smart_enum/associations.rb, line 109
def class_name
  @class_name ||= (class_name_option || SmartEnum::Utilities.classify(association_name)).to_s
end
foreign_key() click to toggle source
# File lib/smart_enum/associations.rb, line 113
def foreign_key
  @foreign_key ||= (foreign_key_option || SmartEnum::Utilities.foreign_key(association_name)).to_sym
end
generated_method_name() click to toggle source
# File lib/smart_enum/associations.rb, line 117
def generated_method_name
  @generated_method_name ||= (as_option || association_name).to_sym
end