class Troles::Adapters::ActiveRecord::Config

Attributes

models[R]

Public Class Methods

new(subject_class, options = {}) click to toggle source
Calls superclass method Troles::Common::Config::new
# File lib/troles/adapters/active_record/config.rb, line 6
def initialize subject_class, options = {}
  super       
  puts "models classes: #{subject_class}, #{object_model}, #{join_model}"
  @models = ::Schemaker::Models.new(subject_class, object_model, join_model)
end

Public Instance Methods

configure_field() click to toggle source

AR sets this up ont its own using DB Table info

# File lib/troles/adapters/active_record/config.rb, line 25
def configure_field
end
configure_relation() click to toggle source
# File lib/troles/adapters/active_record/config.rb, line 12
def configure_relation
  case strategy
  when :join_ref_many
    configure_join_model
  when :ref_many
    return configure_join_model if join_model?        
    subject.quick_join
  when :embed_many
    raise "Embed many configuration not yet implemented for ActiveRecord" 
  end
end

Protected Instance Methods

configure_join_model() click to toggle source
# File lib/troles/adapters/active_record/config.rb, line 63
def configure_join_model           
  if Troles::Common::Config.log_on?
    puts "configuring join model..." 
    puts "Subject class: #{subject_class}"
    puts "Role class: #{object_model}"
    puts "Join class: #{join_model}"
  end
        
  [:object, :subject, :join].each do |type|
    clazz = "Schemaker::#{type.to_s.camelize}Model".constantize
    clazz.new(model).configure
  end      
end
join_key() click to toggle source
# File lib/troles/adapters/active_record/config.rb, line 59
def join_key
  make_key join_model
end
join_model() click to toggle source
# File lib/troles/adapters/active_record/config.rb, line 38
def join_model
  @join_model_found ||= begin
    find_first_class(@join_model, join_model_best_guess)
  end
rescue ClassExt::ClassNotFoundError
  nil
end
join_model=(model_class) click to toggle source
# File lib/troles/adapters/active_record/config.rb, line 54
def join_model= model_class
  @join_model = model_class and return if model_class.any_kind_of?(Class, String, Symbol)
  raise "The join model must be a Class, was: #{model_class}"
end
join_model?() click to toggle source
# File lib/troles/adapters/active_record/config.rb, line 46
def join_model?
  join_model
end
join_model_best_guess() click to toggle source
# File lib/troles/adapters/active_record/config.rb, line 50
def join_model_best_guess
  "#{subject_class.to_s.pluralize}#{object_model.to_s.pluralize}"
end
main_field() click to toggle source
# File lib/troles/adapters/active_record/config.rb, line 34
def main_field
  role_field
end
subject() click to toggle source
# File lib/troles/adapters/active_record/config.rb, line 30
def subject
  @subject ||= models.subject_model
end