Sha256: cd0fdd2a6c2f23e5a6032feab19b44de74977e27c17e059faa18eebefb3aad79
Contents?: true
Size: 1.68 KB
Versions: 8
Compression:
Stored size: 1.68 KB
Contents
#!/usr/bin/env ruby # encoding: UTF-8 # Copyright (C) 2013 10gen 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, at the moment, this will not properly round-trip # in all cases from the output generated by b2json. begin require 'json/pure' # broken with 'json/ext' rescue LoadError puts "This script requires json/pure. Please install one of the following:" puts " gem install json_pure" puts " gem install json" Process.exit end # Convert all JSON objects in an IO into BSON. def print_j2bson(io) io.each_line do |line| jsonobj = JSON.parse(line, { :object_class => BSON::OrderedHash } ) bsonobj = BSON.serialize(jsonobj) STDOUT << bsonobj.to_s end end # print usage def usage() STDERR << <<END_OF_USAGE usage: j2bson [-h] [file1 [file2]] Converts a JSON file to BSON 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_j2bson(STDIN) exit elsif ARGV[0] == "-h" then usage() else ARGV.each { |fname| print_j2bson(File.new(fname)) } end
Version data entries
8 entries across 8 versions & 1 rubygems