Class: Quandl::Command::Tasks::Replace

Inherits:
Quandl::Command::Task show all
Defined in:
lib/quandl/command/tasks/replace.rb

Constant Summary

Constants included from Quandl::Command::Task::Updatable

Quandl::Command::Task::Updatable::VERSION_URL

Instance Method Summary collapse

Methods included from Quandl::Command::Task::Inputable

#args_or_stdin, #each_line_in_background, #file_or_stdin

Methods included from Quandl::Command::Task::Reportable

#ask_to_send_crash_reports, #call

Methods included from Quandl::Command::Task::Clientable

#current_user

Methods included from Quandl::Command::Task::Updatable

#check_for_update, #check_for_update_once_daily

Methods included from Quandl::Command::Task::Threading

#await_thread_pool_lock!, #background_job, #exiting?, #mutex, #obtain_thread_pool_lock, #release_thread_pool_lock, #shutdown_thread_pool_on_sigint, #thread_pool, #thread_pool_locked?, #thread_pool_locks, #threads, #threads?

Methods included from Quandl::Command::Task::Presentation

#present

Methods included from Quandl::Command::Task::Logging

#configure_logger, #debug, #error, #fatal, #info, #initialize_logger, #log_request_time, #logger, #start_request_timer, #stderr_logger, #summarize, #summarize_hash, #table

Methods included from Quandl::Command::Task::Commandable

#initialize

Methods included from Quandl::Command::Task::Validations

#run_task_validations!

Methods included from Quandl::Command::Task::Callbacks

#call

Methods included from Quandl::Command::Task::Configurable

#ask_for_confirmation!, #config, #confirmed?, #declared_params, #force_yes?, #page, #trace?, #verbose?

Instance Method Details

#executeObject



31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/quandl/command/tasks/replace.rb', line 31

def execute
  # datasets from file_path if given
  interface = file_path.present? ? File.open(file_path, "r") : $stdin
  # for each dataset streamed from interface
  Quandl::Format::Dataset.each_line(interface) do |dataset, error|
    # present error if given
    next present( error ) unless error.nil?
    # process in background using thread key
    background_job( lock: dataset.client.full_code ) do
      # replace
      replace( dataset )
    end
  end
end

#file_pathObject



54
55
56
# File 'lib/quandl/command/tasks/replace.rb', line 54

def file_path
  args.first
end

#replace(dataset) ⇒ Object



46
47
48
49
50
51
52
# File 'lib/quandl/command/tasks/replace.rb', line 46

def replace(dataset)
  dataset.client.delete_data
  # upload unless errors were raised
  dataset.upload if dataset.valid?
  # output report to $stdout or $stderr
  present(dataset.client)
end