Sha256: 366af135a78f68425fbfc170ca65cf66ede48918dcbe78fc239191500a060824

Contents?: true

Size: 998 Bytes

Versions: 8

Compression:

Stored size: 998 Bytes

Contents

require 'json'

module Gherkin
  DIALECT_FILE_PATH = File.expand_path("gherkin-languages.json", File.dirname(__FILE__))
  DIALECTS = JSON.parse File.open(DIALECT_FILE_PATH, 'r:UTF-8').read

  class Dialect
    def self.for(name)
      spec = DIALECTS[name]
      return nil unless spec
      new(spec)
    end

    def initialize(spec)
      @spec = spec
    end

    def feature_keywords
      @spec.fetch('feature')
    end

    def scenario_keywords
      @spec.fetch('scenario')
    end

    def scenario_outline_keywords
      @spec.fetch('scenarioOutline')
    end

    def examples_keywords
      @spec.fetch('examples')
    end

    def background_keywords
      @spec.fetch('background')
    end

    def given_keywords
      @spec.fetch('given')
    end

    def when_keywords
      @spec.fetch('when')
    end

    def then_keywords
      @spec.fetch('then')
    end

    def and_keywords
      @spec.fetch('and')
    end

    def but_keywords
      @spec.fetch('but')
    end
  end
end

Version data entries

8 entries across 8 versions & 2 rubygems

Version Path
honeybadger-4.5.3 vendor/bundle/ruby/2.6.0/gems/gherkin-5.1.0/lib/gherkin/dialect.rb
gherkin-5.1.0 lib/gherkin/dialect.rb
gherkin-5.0.0 lib/gherkin/dialect.rb
gherkin-4.1.3 lib/gherkin/dialect.rb
gherkin-4.1.2 lib/gherkin/dialect.rb
gherkin-4.1.1 lib/gherkin/dialect.rb
gherkin-4.1.0 lib/gherkin/dialect.rb
gherkin-4.0.0 lib/gherkin/dialect.rb