Sha256: 46dd79382709dfb7b457ccf456f9c6d8e5848d4c3a346c8be41d12f715ea4792

Contents?: true

Size: 1.04 KB

Versions: 24

Compression:

Stored size: 1.04 KB

Contents

module Cucumber
  module JsSupport
    module JsSnippets
      PARAM_PATTERN = /"(.*?)"/
      ESCAPED_PARAM_PATTERN = '"([^\\"]*)"'

      def snippet_text(code_keyword, step_name, multiline_arg_class, snippet_type)
        escaped = Regexp.escape(step_name).gsub('\ ', ' ').gsub('/', '\/')
        escaped = escaped.gsub(PARAM_PATTERN, ESCAPED_PARAM_PATTERN)

        n = 0
        block_args = escaped.scan(ESCAPED_PARAM_PATTERN).map do |a|
          n += 1
          "arg#{n}"
        end
        block_args << multiline_arg_class.default_arg_name unless multiline_arg_class.nil?
        block_arg_string = block_args.empty? ? "" : "#{block_args.join(", ")}"
        multiline_class_comment = ""
        if(multiline_arg_class == Ast::Table)
          multiline_class_comment = "//#{multiline_arg_class.default_arg_name} is a #{multiline_arg_class.to_s}\n"
        end

        "#{code_keyword}(/^#{escaped}$/, function(#{block_arg_string}){\n  #{multiline_class_comment}  //express the regexp above with the code you wish you had\n});"
      end
    end
  end
end

Version data entries

24 entries across 22 versions & 2 rubygems

Version Path
honeybadger-2.4.0 vendor/gems/ruby/2.1.0/gems/cucumber-1.3.16/lib/cucumber/js_support/js_snippets.rb
honeybadger-2.4.0 vendor/gems/ruby/2.2.0/gems/cucumber-1.3.18/lib/cucumber/js_support/js_snippets.rb
honeybadger-2.4.0 vendor/gems/ruby/1.9.1/gems/cucumber-1.3.18/lib/cucumber/js_support/js_snippets.rb
cucumber-1.3.20 lib/cucumber/js_support/js_snippets.rb
cucumber-1.3.19 lib/cucumber/js_support/js_snippets.rb
cucumber-1.3.18 lib/cucumber/js_support/js_snippets.rb
cucumber-1.3.17 lib/cucumber/js_support/js_snippets.rb
cucumber-1.3.16 lib/cucumber/js_support/js_snippets.rb
cucumber-1.3.15 lib/cucumber/js_support/js_snippets.rb
cucumber-1.3.14 lib/cucumber/js_support/js_snippets.rb
cucumber-1.3.13 lib/cucumber/js_support/js_snippets.rb
cucumber-1.3.12 lib/cucumber/js_support/js_snippets.rb
cucumber-1.3.11 lib/cucumber/js_support/js_snippets.rb
cucumber-1.3.10 lib/cucumber/js_support/js_snippets.rb
cucumber-1.3.9 lib/cucumber/js_support/js_snippets.rb
cucumber-1.3.8 lib/cucumber/js_support/js_snippets.rb
cucumber-1.3.7 lib/cucumber/js_support/js_snippets.rb
cucumber-1.3.6 lib/cucumber/js_support/js_snippets.rb
cucumber-1.3.5 lib/cucumber/js_support/js_snippets.rb
cucumber-1.3.4 lib/cucumber/js_support/js_snippets.rb