Sha256: 385301cf5ab50c527a92029d798fb5c6d6626f4fd848645e90e18561bb99ac46

Contents?: true

Size: 740 Bytes

Versions: 5

Compression:

Stored size: 740 Bytes

Contents

require "rubygems"
require "rwget"
require "parsley"
require "activesupport"
require "fileutils"

class JSONStore
  def initialize(options = {})
    @output_folder = options[:prefix] || "."
    FileUtils.mkdir_p(@output_folder)
    @parselets = (options[:parselets] || []).map{|path| Parsley.new(File.read(path)) }
    @files     = (options[:parselets] || []).map{|path| File.open("#{File.basename(path)}.json", "a") }
  end

  def put(host, tmpfile)
    @parselets.zip(@files).each do |parselet, file|
      begin
        file.puts parselet.parse(:file => tmpfile.path, :output => :json) + ","
      rescue ParsleyError => e
        STDERR.puts "warning: #{e.message}"
      end
    end
  end

  def close
    @files.map(&:close)
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
fizx-csvget-0.2.0 lib/jsonget.rb
fizx-csvget-0.2.1 lib/jsonget.rb
fizx-csvget-0.3.0 lib/jsonget.rb
fizx-csvget-0.3.1 lib/jsonget.rb
fizx-csvget-0.3.2 lib/jsonget.rb