class Gherkin::Lexer::I18nLexer

The main entry point to lexing Gherkin source.

Constants

COMMENT_OR_EMPTY_LINE_PATTERN

Attributes

i18n_language[R]

Public Class Methods

new(listener, force_ruby=false) click to toggle source
# File lib/gherkin/lexer/i18n_lexer.rb, line 16
def initialize(listener, force_ruby=false)
  @listener = listener
  @force_ruby = force_ruby
end

Public Instance Methods

scan(source) click to toggle source
# File lib/gherkin/lexer/i18n_lexer.rb, line 21
def scan(source)
  create_delegate(source).scan(source)
end

Private Instance Methods

create_delegate(source) click to toggle source
# File lib/gherkin/lexer/i18n_lexer.rb, line 27
def create_delegate(source)
  @i18n_language = lang(source)
  @i18n_language.lexer(@listener, @force_ruby)
end
lang(source) click to toggle source
# File lib/gherkin/lexer/i18n_lexer.rb, line 32
def lang(source)
  key = 'en'
  source.each_line do |line|
    break unless COMMENT_OR_EMPTY_LINE_PATTERN =~ line
    if LANGUAGE_PATTERN =~ line
      key = $2
      break
    end
  end
  I18n.get(key)
end