Sha256: c8ceb54fc80d2a4a2db6aeb1db46d1764791c7388885f1bcc5f70418bba99c88

Contents?: true

Size: 934 Bytes

Versions: 1

Compression:

Stored size: 934 Bytes

Contents

module CukeModeler
  module Parsing

    class << self

      def parse_text(source_text, file_name = nil)
        raise(ArgumentError, "Cannot parse #{source_text.class} objects. Strings only.") unless source_text.is_a?(String)

        file_name ||= 'fake_file.txt'

        io = StringIO.new
        formatter = Gherkin::Formatter::JSONFormatter.new(io)
        parser = Gherkin::Parser::Parser.new(formatter)
        begin
          parser.parse(source_text, file_name, 0)

          formatter.done
        rescue => e
          raise("Error encountered while parsing file #{file_name}: #{e.message}")
        end
        MultiJson.load(io.string)
      end

    end

  end
end


module CukeModeler
  class FeatureFile


    private


    def parse_file(file_to_parse)
      source_text = IO.read(file_to_parse)

      Parsing::parse_text(source_text, file_to_parse)
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
cuke_cataloger-1.0.0 lib/extensions/cucumber_analytics_extensions.rb