Sha256: 684ea6df4dce95c8944fd2bb1206ea36720bfbddada78e559fe14fb4985f9b2a

Contents?: true

Size: 1.54 KB

Versions: 4

Compression:

Stored size: 1.54 KB

Contents

require_relative 'automation/automation_generator'
require_relative 'automation/automation_examples_generator'
require_relative 'common_generator'
require_relative 'cucumber/cucumber_generator'
require_relative 'cucumber/cucumber_examples_generator'
require_relative 'helper_generator'
require_relative 'rspec/rspec_generator'
require_relative 'rspec/rspec_examples_generator'

module InvokeGenerators
  def generate_framework(structure = {})
    generators = %w[Automation Common Helpers]
    add_generator(generators, structure[:framework].capitalize)
    generators = add_examples(generators) if structure[:examples]
    generators.each do |generator|
      invoke_generator({
                         automation: structure[:automation],
                         framework: structure[:framework],
                         generator: generator,
                         name: structure[:name],
                         visual: structure[:visual]
                       })
    end
  end

  def add_generator(generators, *gens)
    gens.each { |generator| generators.push generator }
  end

  def add_examples(generators)
    if generators.include?('Cucumber')
      generators.push('CucumberExamples')
    else
      generators.push('RspecExamples')
    end

    generators.push('AutomationExamples')
  end

  def invoke_generator(structure = {})
    Object.const_get("#{structure[:generator]}Generator")
          .new([structure[:automation],
                structure[:framework],
                structure[:name],
                structure[:visual]]).invoke_all
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
ruby_raider-0.6.0 lib/generators/invoke_generators.rb
ruby_raider-0.5.9 lib/generators/invoke_generators.rb
ruby_raider-0.5.8 lib/generators/invoke_generators.rb
ruby_raider-0.5.7 lib/generators/invoke_generators.rb