Sha256: 99ef600ab3f7e2e25800ee9e2c43c3ef2fe4f026cae13c44761a9187c2769ed9
Contents?: true
Size: 1.31 KB
Versions: 9
Compression:
Stored size: 1.31 KB
Contents
# frozen_string_literal: true module Gurke module DSL def step(pattern, method_name = nil, opts = {}, &block) if method_name.is_a?(Hash) && opts.empty? opts = method_name method_name = nil end if method_name && block_given? raise ArgumentError.new <<~ERR.strip You can either specify a method name or given a block, not both. ERR end _define_step(pattern, method_name, opts, &block) end def _define_step(pattern, method_name, opts, &block) step = StepDefinition.new(pattern, opts) define_method("match: #{step.method_name}") do |name, s = nil| step.match(name, s) end if block_given? define_method(step.method_name.to_s, &block) elsif method_name alias_method step.method_name.to_s, method_name end end # rubocop:disable MethodName def Given(pattern, method_name = nil, opts = {}, &block) step pattern, method_name, opts.merge(type: :given), &block end def When(pattern, method_name = nil, opts = {}, &block) step pattern, method_name, opts.merge(type: :when), &block end def Then(pattern, method_name = nil, opts = {}, &block) step pattern, method_name, opts.merge(type: :then), &block end # rubocop:enable MethodName end end
Version data entries
9 entries across 9 versions & 1 rubygems