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, iso_code='en') click to toggle source
# File lib/gherkin/lexer/i18n_lexer.rb, line 16
def initialize(listener, force_ruby=false, iso_code='en')
  @listener = listener
  @force_ruby = force_ruby
  @iso_code = iso_code
end

Public Instance Methods

scan(source) click to toggle source
# File lib/gherkin/lexer/i18n_lexer.rb, line 22
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 28
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 33
def lang(source)
  key = @iso_code
  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