module ShouldaMatchmakers::Model::ActiveRecord::FactorySmModelHelper

Public Instance Methods

factory_attributes() click to toggle source
# File lib/model/active_record/factory_sm_model_helper.rb, line 7
def factory_attributes
  attributes_for_factory = get_validation_attributes(@app_class_name)
  attributes_for_factory = attributes_for_factory | get_required_attributes(@app_class_name)
  attributes_for_factory = attributes_for_factory - get_attributes_with_defaults(@app_class_name)
  attributes_for_factory = attributes_for_factory.flatten.compact.uniq.sort
  factory_attributes_string = ""
  attributes_for_factory.each do |attribute|
    factory_attributes_string.concat("    # " + attribute.to_s + "\n")
  end
  factory_attributes_string
end

Private Instance Methods

get_absence_attributes(app_class_name) click to toggle source
# File lib/model/active_record/factory_sm_model_helper.rb, line 47
def get_absence_attributes(app_class_name)
  absence_attributes = []
  extract_validators(app_class_name, ::ActiveModel::Validations::AbsenceValidator).flatten.map do |validator|
    absence_attributes.concat(validator.attributes)
  end
  absence_attributes
end
get_acceptance_attributes(app_class_name) click to toggle source
# File lib/model/active_record/factory_sm_model_helper.rb, line 55
def get_acceptance_attributes(app_class_name)
  acceptance_attributes = []
  extract_validators(app_class_name, ::ActiveModel::Validations::AcceptanceValidator).flatten.map do |validator|
    acceptance_attributes.concat(validator.attributes)
  end
  acceptance_attributes
end
get_attributes_with_defaults(app_class_name) click to toggle source
# File lib/model/active_record/factory_sm_model_helper.rb, line 35
def get_attributes_with_defaults(app_class_name)
  app_class_name.constantize.columns.select{ |column| !column.default.nil? }.map(&:name).map(&:to_sym)
  # The following line of code doesn't work for the class 'SuperAdminUser', but only that class.
  # app_class_name.constantize.column_defaults.select{ |attribute, default| !default.nil? }.keys.map(&:to_sym)
end
get_confirmation_attributes(app_class_name) click to toggle source
# File lib/model/active_record/factory_sm_model_helper.rb, line 63
def get_confirmation_attributes(app_class_name)
  confirmation_attributes = []
  extract_validators(app_class_name, ::ActiveModel::Validations::ConfirmationValidator).flatten.map do |validator|
    confirmation_attributes.concat(validator.attributes)
  end
  confirmation_attributes
end
get_exclusion_attributes(app_class_name) click to toggle source
# File lib/model/active_record/factory_sm_model_helper.rb, line 71
def get_exclusion_attributes(app_class_name)
  exclusion_attributes = []
  extract_validators(app_class_name, ::ActiveModel::Validations::ExclusionValidator).flatten.map do |validator|
    exclusion_attributes.concat(validator.attributes)
  end
  exclusion_attributes
end
get_inclusion_attributes(app_class_name) click to toggle source
# File lib/model/active_record/factory_sm_model_helper.rb, line 79
def get_inclusion_attributes(app_class_name)
  inclusion_attributes = []
  extract_validators(app_class_name, ::ActiveModel::Validations::InclusionValidator).flatten.map do |validator|
    inclusion_attributes.concat(validator.attributes)
  end
  inclusion_attributes
end
get_length_attributes(app_class_name) click to toggle source
# File lib/model/active_record/factory_sm_model_helper.rb, line 87
def get_length_attributes(app_class_name)
  length_attributes = []
  extract_validators(app_class_name, ::ActiveModel::Validations::LengthValidator).flatten.map do |validator|
    length_attributes.concat(validator.attributes)
  end
  length_attributes
end
get_numericality_attributes(app_class_name) click to toggle source
# File lib/model/active_record/factory_sm_model_helper.rb, line 95
def get_numericality_attributes(app_class_name)
  numericality_attributes = []
  extract_validators(app_class_name, ::ActiveModel::Validations::NumericalityValidator).flatten.map do |validator|
    numericality_attributes.concat(validator.attributes)
  end
  numericality_attributes
end
get_presence_attributes(app_class_name) click to toggle source
# File lib/model/active_record/factory_sm_model_helper.rb, line 103
def get_presence_attributes(app_class_name)
  presence_attributes = []
  extract_validators(app_class_name, ::ActiveRecord::Validations::PresenceValidator).flatten.map do |validator|
    presence_attributes.concat(validator.attributes)
  end
  presence_attributes
end
get_required_attributes(app_class_name) click to toggle source
# File lib/model/active_record/factory_sm_model_helper.rb, line 41
def get_required_attributes(app_class_name)
  required_attributes = []
  required_attributes.concat(app_class_name.constantize.columns.select{ |column| !column.null }.map(&:name))
  required_attributes.map(&:to_sym) - [:id, :encrypted_password, :created_at, :updated_at]
end
get_uniqueness_attributes(app_class_name) click to toggle source
# File lib/model/active_record/factory_sm_model_helper.rb, line 111
def get_uniqueness_attributes(app_class_name)
  uniqueness_attributes = []
  extract_validators(app_class_name, ::ActiveRecord::Validations::UniquenessValidator).flatten.map do |validator|
    uniqueness_attributes.concat(validator.attributes)
  end
  uniqueness_attributes
end
get_validation_attributes(app_class_name) click to toggle source
# File lib/model/active_record/factory_sm_model_helper.rb, line 22
def get_validation_attributes(app_class_name)
  validation_attributes = []
  validation_attributes = validation_attributes | get_absence_attributes(app_class_name)
  validation_attributes = validation_attributes | get_acceptance_attributes(app_class_name)
  validation_attributes = validation_attributes | get_confirmation_attributes(app_class_name)
  validation_attributes = validation_attributes | get_exclusion_attributes(app_class_name)
  validation_attributes = validation_attributes | get_inclusion_attributes(app_class_name)
  validation_attributes = validation_attributes | get_length_attributes(app_class_name)
  validation_attributes = validation_attributes | get_numericality_attributes(app_class_name)
  validation_attributes = validation_attributes | get_presence_attributes(app_class_name)
  validation_attributes | get_uniqueness_attributes(app_class_name)
end