Sha256: 3c861da63e06e53f475895fce17e6b5ff4959d8eb4a86205bbf09bc1bf88da84
Contents?: true
Size: 1.78 KB
Versions: 4
Compression:
Stored size: 1.78 KB
Contents
#!/usr/bin/env ruby require 'mikunyan' require 'base64' def obj64(obj) if obj.class == Hash obj.map{|k, v| [k, obj64(v)]}.to_h elsif obj.class == Array obj.map{|e| obj64(e)} elsif obj.class == String if obj.encoding == Encoding::UTF_8 obj else Base64::strict_encode64(obj) end else obj end end opts = {:as_asset => false, :pretty => false, :yaml => false} arg = nil i = 0 while i < ARGV.count if ARGV[i].start_with?('-') case ARGV[i] when '--as-asset', '-a' opts[:as_asset] = true when '--pretty', '-p' opts[:pretty] = true when '--yaml', '-y' opts[:yaml] = true else warn("Unknown option: #{ARGV[i]}") end else arg = ARGV[i] unless arg end i += 1 end if opts[:pretty] && opts[:yaml] warn("Option --pretty is ignored if --yaml is specified.") end unless File.file?(arg) warn("File not found: #{arg}") exit(1) end assets = {} if opts[:as_asset] asset = Mikunyan::Asset.file(arg, arg.match(/([^\/]*?)(\.[^.]*)?\z/)[1]) objs = [] asset.path_ids.each do |e| obj = asset.parse_object_simple(e) objs << obj end assets[asset.name] = objs else bundle = Mikunyan::AssetBundle.file(arg) bundle.assets.each do |asset| objs = [] asset.path_ids.each do |e| obj = asset.parse_object_simple(e) objs << obj end assets[asset.name] = objs end end if opts[:yaml] require 'yaml' puts YAML.dump(assets) else require 'json' assets = assets.map{|k, v| [k, obj64(v)]}.to_h if opts[:pretty] puts JSON.pretty_generate(assets) else puts JSON.generate(assets) end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
mikunyan-3.9.5 | exe/mikunyan-json |
mikunyan-3.9.4 | exe/mikunyan-json |
mikunyan-3.9.3 | exe/mikunyan-json |
mikunyan-3.9.2 | exe/mikunyan-json |