Sha256: a939b2a13b9a25406db613fe4b181a8b395893764b4ac0a6f9d369d19ecc89fc
Contents?: true
Size: 1.57 KB
Versions: 2
Compression:
Stored size: 1.57 KB
Contents
require 'pathname' require 'erb' require 'find' require 'pp' require 'optparse' require 'yaml' require 'bitclust' require 'bitclust/subcommand' module BitClust::Subcommands class PropertyCommand < BitClust::Subcommand def initialize @mode = nil @parser = OptionParser.new {|opt| opt.banner = "Usage: #{File.basename($0, '.*')} property [options]" opt.on('--list', 'List all properties.') { @mode = :list } opt.on('--get', 'Get property value.') { @mode = :get } opt.on('--set', 'Set property value.') { @mode = :set } opt.on('--help', 'Prints this message and quit.') { puts opt.help exit 0 } } end def parse(argv) super unless @mode error "one of (--list|--get|--set) is required" end case @mode when :list unless argv.empty? error "--list requires no argument" end when :get ; when :set unless argv.size == 2 error "--set requires just 2 arguments" end else raise "must not happen: #{@mode}" end end def exec(db, argv) case @mode when :list db.properties.each do |key, val| puts "#{key}=#{val}" end when :get argv.each do |key| puts db.propget(key) end when :set key, val = *argv db.transaction { db.propset key, val } else raise "must not happen: #{@mode}" end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
bitclust-core-0.6.0 | lib/bitclust/subcommands/property_command.rb |
bitclust-core-0.5.5 | lib/bitclust/subcommands/property_command.rb |