Class: Federails::CopyFactoriesGenerator
- Inherits:
-
Rails::Generators::Base
- Object
- Rails::Generators::Base
- Federails::CopyFactoriesGenerator
- Defined in:
- lib/generators/federails/copy_factories/copy_factories_generator.rb
Constant Summary collapse
- SOURCE_DIRECTORY =
File.('../../../../spec/factories/federails', __dir__)
- FACTORY_DEFINITION_REGEX =
/(FactoryBot.define do\n\s+factory) :(\w+),/
Instance Method Summary collapse
- #copy_factories ⇒ Object
-
#initialize ⇒ CopyFactoriesGenerator
constructor
A new instance of CopyFactoriesGenerator.
Constructor Details
#initialize ⇒ CopyFactoriesGenerator
Returns a new instance of CopyFactoriesGenerator.
8 9 10 11 12 |
# File 'lib/generators/federails/copy_factories/copy_factories_generator.rb', line 8 def initialize super @files = [] @factories = [] end |
Instance Method Details
#copy_factories ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/generators/federails/copy_factories/copy_factories_generator.rb', line 14 def copy_factories dest = Rails.root.join('spec', 'factories') Dir.entries(SOURCE_DIRECTORY).each do |node| source_path = File.join(SOURCE_DIRECTORY, node) next unless File.file?(source_path) && node.match?(/\.rb\Z/) file_path = File.join(dest, "federails_#{node}") copy_file node, file_path @files << file_path @factories << File.read(file_path).match(FACTORY_DEFINITION_REGEX)&.[](2) end substitute_values! end |