class Concern::ModelGenerator

Public Instance Methods

copy_rspec_helper() click to toggle source
# File lib/generators/concern/model/model_generator.rb, line 10
def copy_rspec_helper
  copy_file("mock_table_helper.rb", "spec/support/mock_table_helper.rb") if invoke?
end
create_concerns() click to toggle source
# File lib/generators/concern/model/model_generator.rb, line 4
def create_concerns
  setting_path = "models/concerns"
  template "concern.erb", File.join("app", setting_path, class_path, "#{file_name}.rb")
  template "model_spec.erb", File.join("spec", setting_path, class_path, "#{file_name}_spec.rb")
end
inject_code() click to toggle source
# File lib/generators/concern/model/model_generator.rb, line 14
  def inject_code
    rspec_helper = Rails.root.join(*%w[spec rails_helper.rb])
    inject_into_file rspec_helper, before: /^ActiveRecord::Migration\.maintain_test_schema!/ do <<-'CODE'
Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f }

    CODE
    end if injectable?(rspec_helper)
  end

Private Instance Methods

injectable?(file_path) click to toggle source
# File lib/generators/concern/model/model_generator.rb, line 28
def injectable?(file_path)
  if invoke?
    !(File.read(file_path) =~ /^Dir.+spec\/support\/.+\.rb.+require f/)
  end
end
invoke?() click to toggle source
# File lib/generators/concern/model/model_generator.rb, line 24
def invoke?
  self.behavior == :invoke
end