class Regressor::FactoryGenerator

Public Instance Methods

create_regression_files() click to toggle source
# File lib/generators/regressor/factory_generator.rb, line 7
def create_regression_files
  load_application
  generate_factories
end

Private Instance Methods

generate_factories() click to toggle source
# File lib/generators/regressor/factory_generator.rb, line 14
def generate_factories
  load_ar_models.each do |model|
    save_generate(model) do
      @model = ::Regressor::Model::FactoryModel.new(model)
      create_file "#{Regressor.configuration.regression_factory_path}/#{model.underscore.singularize}_factory.rb",
                  ERB.new(File.new(File.expand_path('../../templates/factory/factory_template.erb', File.dirname(__FILE__))).read).result(binding)
    end
  end
end
load_application() click to toggle source
# File lib/generators/regressor/factory_generator.rb, line 24
def load_application
  Rails.application.try(:eager_load!)
end
load_ar_models() click to toggle source
# File lib/generators/regressor/factory_generator.rb, line 28
def load_ar_models
  if defined?(::ActiveRecord::Base)
    ActiveRecord::Base.descendants.map(&:name).reject { |x| Regressor.configuration.excluded_models.include? x }
  else
    []
  end
end
save_generate(model) { || ... } click to toggle source
# File lib/generators/regressor/factory_generator.rb, line 36
def save_generate(model)
  begin
    yield
  rescue => e
    puts "Cannot create factory for #{model}. Reason #{e.message}"
  end
end