Sha256: 545bc69d5917768b46350fee753982b30c8b609fa24aaabf0c5e36e4a54f0c8f

Contents?: true

Size: 937 Bytes

Versions: 8

Compression:

Stored size: 937 Bytes

Contents

require File.join(File.dirname(__FILE__), 'named_arg')

module Cucumber
  class FeatureGenerator < ::Rails::Generators::NamedBase
    source_root File.expand_path("../templates", __FILE__)

    argument :fields, :optional => true, :type => :array, :banner => "[field:type, field:type]"

    attr_reader :named_args
  
    def parse_fields
      @named_args = @fields.nil? ? [] : @fields.map { |arg| NamedArg.new(arg) }
    end    

    def generate
      empty_directory 'features/step_definitions'
      template 'feature.erb', "features/manage_#{plural_name}.feature"
      template 'steps.erb', "features/step_definitions/#{singular_name}_steps.rb"
      gsub_file 'features/support/paths.rb', /'\/'/mi do |match|
        "#{match}\n    when /the new #{singular_name} page/\n      new_#{singular_name}_path\n"
      end
    end
  
    def self.banner
      "#{$0} cucumber:feature ModelName [field:type, field:type]"
    end
  end
end

Version data entries

8 entries across 8 versions & 2 rubygems

Version Path
casecumber-rails-1.0.2.1 lib/generators/cucumber/feature/feature_generator.rb
cucumber-rails-1.0.2 lib/generators/cucumber/feature/feature_generator.rb
cucumber-rails-1.0.1 lib/generators/cucumber/feature/feature_generator.rb
cucumber-rails-1.0.0 lib/generators/cucumber/feature/feature_generator.rb
cucumber-rails-0.5.2 lib/generators/cucumber/feature/feature_generator.rb
cucumber-rails-0.5.1 lib/generators/cucumber/feature/feature_generator.rb
cucumber-rails-0.5.0 lib/generators/cucumber/feature/feature_generator.rb
cucumber-rails-0.5.0.beta1 lib/generators/cucumber/feature/feature_generator.rb