Sha256: 20d11920976e67ac8ffb24e75cf22635b50d458b4a65cadf1604ccdad6126b59
Contents?: true
Size: 1.56 KB
Versions: 30
Compression:
Stored size: 1.56 KB
Contents
#!/usr/bin/env ruby # encoding: UTF-8 # Copyright (C) 2009-2013 MongoDB, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. require 'rubygems' require 'bson' # Note that this will not properly round-trip in all cases # from the output generated by j2bson. begin require 'yajl' rescue LoadError puts "This script requires yajl. Please install as follows:" puts " gem install yajl-ruby" Process.exit end # Convert all documents in an IO into JSON. def print_b2json(io) while not io.eof? do bsonobj = BSON.read_bson_document(io) Yajl::Encoder.encode(bsonobj, STDOUT) STDOUT << "\n" end end # print usage def usage() STDERR << <<END_OF_USAGE usage: b2json [-h] [file1 [file2]] Converts a BSON file to JSON on STDOUT. You can pass multiple filenames. If no filenames are passed, then STDIN is consumed. END_OF_USAGE exit end # no arg, use STDIN # -h, print usage and exit # otherwise loop of filenames if ARGV.empty? then print_b2json(STDIN) exit elsif ARGV[0] == "-h" then usage() else ARGV.each { |fname| print_b2json(File.new(fname)) } end
Version data entries
30 entries across 30 versions & 1 rubygems