Sha256: 8bae6f539b6fa8a86526fd1fae861e042a9cdfeb1f23dc61f5ad676862be9135
Contents?: true
Size: 1.96 KB
Versions: 148
Compression:
Stored size: 1.96 KB
Contents
#!/usr/bin/ruby # encoding: UTF-8 # -- # Copyright (C) 2008-2010 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' # We don't use YAJL because we need to specify the class # to store the JSON object in. BSON is ordered so we need BSON::OrderedHash # # We use json/pure because json/ext is broken with BSON::OrderedHash # (probably for the same reasons that we can't use YAJL). # # 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
148 entries across 102 versions & 4 rubygems