Sha256: 66e6944e369b2fbb8ef100c4d7b51a52fb1315a8aa31cc0e3151b403ebcbfc82

Contents?: true

Size: 1.41 KB

Versions: 1

Compression:

Stored size: 1.41 KB

Contents

class Quandl::Command::Tasks::Upload < Quandl::Command::Task
  autoload_quandl_client
  
  description "Upload a dataset using its quandl code."
  syntax %{quandl upload file.qdf

  EXAMPLES:
  
    $ quandl upload file.qcsv
    OK | 98ms | http://quandl.com/USERNAME/CODE_1
    OK | 72ms | http://quandl.com/USERNAME/CODE_2

    $ ruby code.rb | quandl upload
    OK | 98ms | http://quandl.com/USERNAME/CODE_1
    OK | 72ms | http://quandl.com/USERNAME/CODE_2

  Quandl CSV Format:
  
    code:         YOUR_QUANDL_CODE
    name:         Dataset Title
    description:  Dataset description.
    private:      false
    -
    Date, First, Second, Third
    2013-11-22,1252.0,454.95,448.2
    2013-11-21,452.25,457.75,449.1
  }
  
  authenticated_users_only!
  
  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 do
        # upload
        upload( dataset )
      end
    end
  end
  
  def upload(dataset)
    # upload unless errors were raised
    dataset.upload if dataset.valid?
    # output report to $stdout or $stderr
    present(dataset.client)
  end
  
  def file_path
    args.first
  end
  
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
quandl-0.3.4 lib/quandl/command/tasks/upload.rb