Sha256: 5eb154490d0eaad93d56146804890527821df00e305accffda96c6b494309048

Contents?: true

Size: 1.01 KB

Versions: 12

Compression:

Stored size: 1.01 KB

Contents

module Gherkin
  module Lexer
    I18nLexerNotFound = Class.new(LoadError)
    LexingError = Class.new(StandardError)

    class << self
      def [](i18n_lang)
        begin
          # Uncomment the line below (during development) to force use of Ruby lexer
          # return rb[i18n_lang]

          if defined?(JRUBY_VERSION)
            java[i18n_lang]
          else
            begin
              c[i18n_lang]
            rescue NameError, LoadError => e
              warn("WARNING: #{e.message}. Reverting to Ruby lexer")
              rb[i18n_lang]
            end
          end
        rescue LoadError => e
          raise I18nLexerNotFound, "No lexer was found for #{i18n_lang} (#{e.message}). Supported languages are listed in gherkin/i18n.yml."
        end
      end

      def c
        require 'gherkin/c_lexer'
        CLexer
      end

      def java
        require 'gherkin/java_lexer'
        JavaLexer
      end

      def rb
        require 'gherkin/rb_lexer'
        RbLexer
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
gherkin-1.0.1-i386-mswin32 lib/gherkin/lexer.rb
gherkin-1.0.1-i386-mingw32 lib/gherkin/lexer.rb
gherkin-1.0.1-universal-java-1.5 lib/gherkin/lexer.rb
gherkin-1.0.1 lib/gherkin/lexer.rb
gherkin-1.0.0-i386-mingw32 lib/gherkin/lexer.rb
gherkin-1.0.0-i386-mswin32 lib/gherkin/lexer.rb
gherkin-1.0.0-universal-java-1.5 lib/gherkin/lexer.rb
gherkin-1.0.0 lib/gherkin/lexer.rb
gherkin-0.0.4-universal-java-1.5 lib/gherkin/lexer.rb
gherkin-0.0.4-i386-mswin32 lib/gherkin/lexer.rb
gherkin-0.0.4-i386-mingw32 lib/gherkin/lexer.rb
gherkin-0.0.4 lib/gherkin/lexer.rb