class Pendulum::Client

Public Class Methods

new(api_key='', options={}, &block) click to toggle source
# File lib/pendulum/client.rb, line 7
def initialize(api_key='', options={}, &block)
  @api_key = api_key
  @config = Configuration.new(options)
  @config.instance_eval(&block) if block_given?
end

Public Instance Methods

apply(dry_run: false, force: false, color: false) click to toggle source
# File lib/pendulum/client.rb, line 13
def apply(dry_run: false, force: false, color: false)
  Pendulum::Command::Apply.new(
    td_client,
    current_schedules,
    @config.schedules,
    dry_run,
    force,
    color,
  ).execute
end
export(output) click to toggle source
# File lib/pendulum/client.rb, line 24
def export(output)
  result = DSL::Converter.new(td_client.schedules).convert
  # schedule
  File.write(output, result[:schedule])
  # queries
  query_dir = File.join(File.dirname(output), 'queries')
  make_dir(query_dir)
  result[:queries].each do |query|
    File.write(File.join(query_dir, query[:name]), query[:query])
  end
end

Private Instance Methods

current_schedules() click to toggle source
# File lib/pendulum/client.rb, line 38
def current_schedules
  td_client.schedules
end
make_dir(dir) click to toggle source
# File lib/pendulum/client.rb, line 46
def make_dir(dir)
  FileUtils.mkdir(dir) unless File.exist?(dir)
end
td_client() click to toggle source
# File lib/pendulum/client.rb, line 42
def td_client
  @td_client ||= TreasureData::Client.new(@api_key, {ssl: true})
end