Sha256: 024a13820536dd190e8c633768b855fb38355f3e8f9c7ed9d83c1f97591e765b
Contents?: true
Size: 1.6 KB
Versions: 5
Compression:
Stored size: 1.6 KB
Contents
# This generator bootstraps a Rails project for use with Cucumber class FeatureGenerator < Rails::Generator::NamedBase attr_reader :language def initialize(runtime_args, runtime_options = {}) super @features_path = "features" end def manifest if options[:language] @language = options[:language] set_language(@language) end record do |m| m.directory File.join(@features_path, "step_definitions") m.template "feature.erb", File.join(@features_path, "manage_#{plural_name}.feature") m.template "steps.erb", File.join(@features_path, "step_definitions", "#{singular_name}_steps.rb") m.gsub_file 'features/support/paths.rb', /root_path/mi do |match| "#{match}\n when /the new #{singular_name} page/\n new_#{singular_name}_path\n" end end end class NamedArg attr_reader :name def initialize(s) @name, @type = *s.split(':') end def value(n) if @type == 'boolean' (n % 2) == 0 else "#{@name} #{n}" end end end def named_args args.map{|arg| NamedArg.new(arg)} end protected def banner "Usage: #{$0} feature ModelName [field:type, field:type]" end def add_options!(opt) opt.separator "" opt.separator "Options:" opt.on("-l", "--language=lang", String, "Use a [language] subdirectoy in /features.") { |v| options[:language] = v } end # Load up the transations for the passed language, and modify the features_path accordingly def set_language(language) @features_path = File.join(@features_path, language) end end
Version data entries
5 entries across 5 versions & 1 rubygems