class Swgr2rb::FeatureFileGenerator

FeatureFileGenerator generates an example feature file that uses scaffold's base steps to make a request to one of the endpoints described by generated endpoint object models.

Public Class Methods

new(params) click to toggle source
# File lib/scaffold_generator/feature_file_generator.rb, line 10
def initialize(params)
  @params = params
  @filename = generate_filename
end

Public Instance Methods

generate_feature_file() click to toggle source
# File lib/scaffold_generator/feature_file_generator.rb, line 15
def generate_feature_file
  File.open(@filename, 'w') do |file|
    file.write(generate_lines.join("\n\n"))
  end
end

Private Instance Methods

example_endpoint() click to toggle source
# File lib/scaffold_generator/feature_file_generator.rb, line 53
def example_endpoint
  all_endpoints = Dir.glob(File.join(@params[:target_dir],
                                     @params[:component],
                                     '*.rb'))
  @example_endpoint ||= all_endpoints.min
                                     .split('/').last.sub('.rb', '')
                                     .split('_').map(&:capitalize).join(' ')
end
generate_feature_name() click to toggle source
# File lib/scaffold_generator/feature_file_generator.rb, line 41
def generate_feature_name
  ScaffoldGeneratorConstants::FF_NAME
end
generate_filename() click to toggle source
# File lib/scaffold_generator/feature_file_generator.rb, line 23
def generate_filename
  File.join(ScaffoldGeneratorConstants::HARNESS_DIR,
            ScaffoldGeneratorConstants::FEATURES_DIR,
            @params[:component],
            ScaffoldGeneratorConstants::FEATURE_FILE_NAME)
end
generate_lines() click to toggle source
# File lib/scaffold_generator/feature_file_generator.rb, line 30
def generate_lines
  [generate_tags,
   generate_feature_name,
   generate_scenario_name,
   generate_steps].flatten.compact
end
generate_scenario_name() click to toggle source
# File lib/scaffold_generator/feature_file_generator.rb, line 45
def generate_scenario_name
  ScaffoldGeneratorConstants::FF_SCENARIO.call(example_endpoint)
end
generate_steps() click to toggle source
# File lib/scaffold_generator/feature_file_generator.rb, line 49
def generate_steps
  ScaffoldGeneratorConstants::FF_STEPS.call(example_endpoint)
end
generate_tags() click to toggle source
# File lib/scaffold_generator/feature_file_generator.rb, line 37
def generate_tags
  ScaffoldGeneratorConstants::FF_TAGS.call(@params[:component])
end