class Drntest::JSONLoader

Attributes

objects[R]

Public Class Methods

new() click to toggle source
# File lib/drntest/json-loader.rb, line 34
def initialize
  @parser = Yajl::Parser.new
  @objects = []
  @parser.on_parse_complete = lambda do |object|
    @objects << object
  end
end
report_error(path, data, error) click to toggle source
# File lib/drntest/json-loader.rb, line 21
def report_error(path, data, error)
  marker = "-" * 60
  puts("Failed to load JSONs file: #{path}")
  puts(marker)
  puts(data)
  puts(marker)
  puts(error)
  puts(marker)
end

Public Instance Methods

<<(data) click to toggle source
# File lib/drntest/json-loader.rb, line 42
def <<(data)
  @parser << data
end
load(path) click to toggle source
# File lib/drntest/json-loader.rb, line 46
def load(path)
  path.open do |file|
    data = ""
    file.each_line do |line|
      data << line
      begin
        self << line
      rescue Yajl::ParseError => error
        self.class.report_error(path, data, error)
        break
      end
    end
  end
  @objects
end