class Regressor::Mongoid::ModelGenerator

Public Instance Methods

create_regression_files() click to toggle source
# File lib/generators/regressor/mongoid/model_generator.rb, line 8
def create_regression_files
  load_application
  generate_mongoid_specs
end

Private Instance Methods

generate_mongoid_specs() click to toggle source
# File lib/generators/regressor/mongoid/model_generator.rb, line 15
def generate_mongoid_specs
  load_mongoid_models.each do |model|
    save_generate(model) do
      @model = ::Regressor::Model::MongoidModel.new(model)
      create_file "#{Regressor.configuration.regression_path}/mongoid/#{model.name.tableize.singularize}_spec.rb",
                  ERB.new(File.new(File.expand_path('../../../templates/model/mongoid/model_template.erb', File.dirname(__FILE__))).read).result(binding)
    end
  end
end
load_application() click to toggle source
# File lib/generators/regressor/mongoid/model_generator.rb, line 25
def load_application
  Rails.application.try(:eager_load!)
end
load_mongoid_models() click to toggle source
# File lib/generators/regressor/mongoid/model_generator.rb, line 29
def load_mongoid_models
  models = Object.constants.collect { |sym| Object.const_get(sym) }.
      select { |constant| constant.class == Class && constant.include?(::Mongoid::Document) }
  models << models.map(&:subclasses)
  models.flatten.uniq.reject { |x| Regressor.configuration.excluded_models.include? x }
end
save_generate(model) { || ... } click to toggle source
# File lib/generators/regressor/mongoid/model_generator.rb, line 36
def save_generate(model)
  begin
    yield
  rescue => e
    puts "Cannot create model regression for #{model}. Reason #{e.message}"
  end
end