class Dslimple::CLI

Public Instance Methods

apply() click to toggle source
# File lib/dslimple/cli.rb, line 44
def apply
  require 'dslimple/applier'
  applier = Dslimple::Applier.new(client, self, options)

  applier.execute
rescue => e
  rescue_from(e)
rescue Dslimple::DSL::Error => e
  rescue_from(e)
end
export() click to toggle source
# File lib/dslimple/cli.rb, line 22
def export
  require 'dslimple/exporter'
  fd = options[:file] == '-' ? STDOUT : File.open(options[:file].to_s, 'w')

  exporter = Dslimple::Exporter.new(client, fd, options)

  exporter.execute

  fd.close
rescue => e
  rescue_from(e)
end

Private Instance Methods

client() click to toggle source
# File lib/dslimple/cli.rb, line 57
def client
  @aclient ||= Dslimple::Client.new(
    access_token: options[:api_token] || ENV['DSLIMPLE_API_TOKEN'] || ENV['DSLIMPLE_ACCESS_TOKEN'],
    sandbox: options[:sandbox]
  )
end
rescue_from(e) click to toggle source
# File lib/dslimple/cli.rb, line 64
def rescue_from(e)
  raise e if options[:debug]

  case e
  when Dnsimple::AuthenticationError
    error(set_color(e.message, :red, :bold))
  when Dnsimple::RequestError
    error(set_color("#{e.message}: #{JSON.parse(e.http_response.body)['message']}", :yellow, :bold))
  when Dslimple::DSL::Error
    error(set_color(e.message, :yellow, :bold))
  else
    error(set_color("#{e.class}: #{e.message}", :red, :bold))
  end
  e.backtrace.each do |bt|
    say("  #{set_color('from', :green)} #{bt}")
  end
  exit 1
end