class MR::Factory::RecordFactory::Config
Public Instance Methods
ar_association_for(record, name)
click to toggle source
# File lib/mr/factory/record_factory.rb, line 79 def ar_association_for(record, name) if (reflection = record.class.reflect_on_association(name)) record.association(reflection.name) end end
build_associated_record(association_name, record_class)
click to toggle source
# File lib/mr/factory/record_factory.rb, line 75 def build_associated_record(association_name, record_class) self.factory_for(association_name, record_class).record end
Private Instance Methods
apply_default_args(record)
click to toggle source
Calls superclass method
# File lib/mr/factory/record_factory.rb, line 87 def apply_default_args(record) column_defaults.each do |column_name, column_type| record.send("#{column_name}=", MR::Factory.send(column_type)) end super(record) end
association_column_names(record_class)
click to toggle source
# File lib/mr/factory/record_factory.rb, line 118 def association_column_names(record_class) names = [] record_class.reflect_on_all_associations(:belongs_to).each do |reflection| names << reflection.foreign_type if reflection.options[:polymorphic] names << reflection.foreign_key end names end
build_factory_for_record_class(record_class)
click to toggle source
# File lib/mr/factory/record_factory.rb, line 94 def build_factory_for_record_class(record_class) MR::Factory::RecordFactory.new(record_class) end
column_defaults()
click to toggle source
# File lib/mr/factory/record_factory.rb, line 98 def column_defaults @column_defaults ||= begin association_column_names = association_column_names(self.record_class) self.record_class.columns.inject({}) do |args, column| column_type = column.type || column.sql_type if should_default_column?(column, association_column_names, column_type) args[column.name.to_s] = column_type end args end end end
should_default_column?(column, association_column_names, column_type)
click to toggle source
# File lib/mr/factory/record_factory.rb, line 111 def should_default_column?(column, association_column_names, column_type) !column.primary && !association_column_names.include?(column.name) && !column_type.nil? && MR::Factory.respond_to?(column_type) end