Sha256: c4e134ad9d86072f80f3b556d7a06342298ba6dfab2392d6043b29562b8eeb9b

Contents?: true

Size: 1.58 KB

Versions: 37

Compression:

Stored size: 1.58 KB

Contents

require 'singleton'

class GenTool
  include Singleton

  def generate_steps feature_file_name
    keywords_exp = /^(Given|When|Then|And|But)/

    File.open(feature_file_name).each_line do |line|
      line = line.strip

      if line !~ /^#/ and line =~ keywords_exp
        title = line.gsub(keywords_exp, "").strip

        params = line.gsub(/('<\w+>')|("<\w+>")|(<\w+>)|(".+")|('.+')/).to_a
        new_params = []

        params.each_with_index do |param, index|
          key = param.gsub(/(<|>|'|")/, "").downcase

          if key =~ /\s+/
            key = key.underscore.gsub(/\s+/, "_")
          end

          value = param.gsub(/('|")/, "")

          new_params[index] = [key, value]
          title.gsub!(param, ":#{key}")
        end

        new_params.each do |key, value|
          print "\n"
          print "input[:#{key}] = \"#{value}\""
          print "\n"
        end

        print "\n"
        print "step '#{title}' do "

        if new_params.size > 0
          print "|"

          new_params.each_with_index do |array, index|
            print "#{array.first}"
            print ", " if index < params.size-1
          end

          print "|"
        end

        print "\n\n"
        print "end\n"
      end
    end
  end

  def generate_feature spec_file_name
    keywords_exp = /step\s+('|")(.*)('|")/

    File.open(spec_file_name).each_line do |line|
      line = line.strip

      if line =~ keywords_exp
        if line =~ /^#/
          puts "# " + line.scan(keywords_exp)[0][1]
        else
          puts line.scan(keywords_exp)[0][1]
        end
      end
    end
  end
end

Version data entries

37 entries across 37 versions & 1 rubygems

Version Path
acceptance_test-1.11.7 lib/acceptance_test/gen_tool.rb
acceptance_test-1.11.6 lib/acceptance_test/gen_tool.rb
acceptance_test-1.11.5 lib/acceptance_test/gen_tool.rb
acceptance_test-1.11.4 lib/acceptance_test/gen_tool.rb
acceptance_test-1.11.3 lib/acceptance_test/gen_tool.rb
acceptance_test-1.11.2 lib/acceptance_test/gen_tool.rb
acceptance_test-1.11.1 lib/acceptance_test/gen_tool.rb
acceptance_test-1.11.0 lib/acceptance_test/gen_tool.rb
acceptance_test-1.10.12 lib/acceptance_test/gen_tool.rb
acceptance_test-1.10.11 lib/acceptance_test/gen_tool.rb
acceptance_test-1.10.10 lib/acceptance_test/gen_tool.rb
acceptance_test-1.10.9 lib/acceptance_test/gen_tool.rb
acceptance_test-1.10.8 lib/acceptance_test/gen_tool.rb
acceptance_test-1.10.7 lib/acceptance_test/gen_tool.rb
acceptance_test-1.10.6 lib/acceptance_test/gen_tool.rb
acceptance_test-1.10.5 lib/acceptance_test/gen_tool.rb
acceptance_test-1.10.4 lib/acceptance_test/gen_tool.rb
acceptance_test-1.10.3 lib/acceptance_test/gen_tool.rb
acceptance_test-1.10.2 lib/acceptance_test/gen_tool.rb
acceptance_test-1.10.1 lib/acceptance_test/gen_tool.rb