class MixinBot::CLI
Constants
Attributes
api[R]
config[R]
Public Class Methods
exit_on_failure?()
click to toggle source
# File lib/mixin_bot/cli.rb, line 85 def self.exit_on_failure? true end
new(*args)
click to toggle source
Calls superclass method
# File lib/mixin_bot/cli.rb, line 22 def initialize(*args) super if File.exist? options[:config].to_s @config = begin YAML.load_file options[:config] rescue StandardError => e log UI.fmt( format( '{{x}} %<file>s is not a valid .yml file', file: options[:config] ) ) UI::Frame.open('{{x}}', color: :red) do log e end end elsif options[:config] @confg = begin JSON.parse options[:config] rescue StandardError => e log UI.fmt( format( '{{x}} Failed to parse %<config>s', config: options[:config] ) ) UI::Frame.open('{{x}}', color: :red) do log e end end end return unless @config MixinBot.api_host = options[:apihost] @api ||= begin MixinBot::API.new( client_id: @config['client_id'], client_secret: @config['client_secret'], session_id: @config['session_id'], pin_token: @config['pin_token'], private_key: @config['private_key'], pin_code: @config['pin_code'] ) rescue StandardError => e log UI.fmt '{{x}}: Failed to initialize api, maybe your config is incorrect.' UI.Frame.open('{{x}}', color: :red) do log e end end end
Public Instance Methods
all_multisigs()
click to toggle source
# File lib/mixin_bot/cli/multisig.rb, line 7 def all_multisigs api_method(:get_all_multisigs) end
cal_assets_as_usd()
click to toggle source
# File lib/mixin_bot/cli/me.rb, line 19 def cal_assets_as_usd assets, success = read_assets return unless success sum = assets['data'].map( &lambda { |asset| asset['balance'].to_f * asset['price_usd'].to_f } ).sum UI::Frame.open('USD') do log sum end end
read_asset()
click to toggle source
# File lib/mixin_bot/cli/me.rb, line 36 def read_asset api_method(:read_asset, options[:assetid]) end
read_assets()
click to toggle source
# File lib/mixin_bot/cli/me.rb, line 13 def read_assets api_method(:read_assets) end
read_me()
click to toggle source
# File lib/mixin_bot/cli/me.rb, line 7 def read_me api_method(:read_me) end
version()
click to toggle source
# File lib/mixin_bot/cli.rb, line 81 def version log MixinBot::VERSION end
Private Instance Methods
api_method(method, *args, **params)
click to toggle source
# File lib/mixin_bot/cli.rb, line 91 def api_method(method, *args, **params) if api.nil? log UI.fmt '{{x}} MixinBot api not initialized!' return end res = if args.empty? && params.empty? api&.public_send method elsif args.empty? && !params.empty? api&.public_send method params elsif !args.empty? && params.empty? api&.public_send method, args else args.push params api&.public_send method, args end log res [res, res && res['error'].nil?] rescue MixinBot::Errors => e UI::Frame.open('{{x}}', color: :red) do log e end end
log(obj)
click to toggle source
# File lib/mixin_bot/cli.rb, line 116 def log(obj) if options[:pretty] if obj.is_a? String puts obj else ap obj end else puts obj.inspect end end