class Opium::Model::Relatable::Metadata

Attributes

inverse_relation_name[RW]
inverse_relation_type[RW]
owning_class_name[RW]
relation_name[RW]
relation_type[RW]
target_class_name[RW]

Public Class Methods

new( klass, relation_type, relation_name, options = {} ) click to toggle source
# File lib/opium/model/relatable/metadata.rb, line 7
def initialize( klass, relation_type, relation_name, options = {} )
  self.owning_class_name = klass.model_name
  self.relation_type = relation_type
  self.relation_name = relation_name
  self.target_class_name = (options[:class_name] || relation_name).to_s.classify
  self.inverse_relation_name = (options[:inverse_of] || determine_inverse_relation_name).to_s
end

Private Instance Methods

determine_inverse_relation_name() click to toggle source
# File lib/opium/model/relatable/metadata.rb, line 19
def determine_inverse_relation_name
  method =
    case relation_type
    when :belongs_to
      :plural
    else
      :singular
    end
  owning_class_name.send( method )
end