class Qntf::CLI

Public Instance Methods

add_field(name) click to toggle source
# File lib/qntf/cli.rb, line 37
def add_field(name)
  field = ask('Field name:').chomp
  dataset = Qntf::Json::Dataset.new(name)
  dataset.fields.push(field)
end
data(name) click to toggle source
# File lib/qntf/cli.rb, line 21
def data(name)
  dataset = Qntf::Json::Dataset.new(name)
  dataset.data.each do |d|
    puts d
  end
end
fields(name) click to toggle source
# File lib/qntf/cli.rb, line 44
def fields(name)
  dataset = Qntf::Json::Dataset.new(name)
  puts dataset.fields.join(', ')
end
list() click to toggle source
# File lib/qntf/cli.rb, line 12
def list
  datasets = Qntf::Json::Dataset.all

  datasets.each do |d|
    puts d.name
  end
end
new() click to toggle source
# File lib/qntf/cli.rb, line 29
def new
  name = ask('Name:').chomp
  fields = ask('Fields(seperated by comma):').split(',').map(&:strip)
  puts "Creating dataset #{name}"
  Qntf::Json::Dataset.new(name, fields)
end
store(name) click to toggle source
# File lib/qntf/cli.rb, line 50
def store(name)
  dataset = Qntf::Json::Dataset.new(name)
  hash = {}
  for field in dataset.fields
    value = ask("#{field}:").chomp
    hash[field] = parseNum(value) unless value.empty?
  end

  date = ask_time

  dataset.add_datapoint(hash, date)
end

Private Instance Methods

ask_time() click to toggle source
# File lib/qntf/cli.rb, line 68
def ask_time
  loop do
    string = ask("time:").chomp
    if string.empty?
      return nil
    end
    time = Chronic.parse(string)

    if ask("#{time.to_s}, continue? [y/n]").chomp == 'y'
      return time.utc.iso8601(6)
    end
  end
end
parseNum(v) click to toggle source
# File lib/qntf/cli.rb, line 64
def parseNum(v)
  v.match('\.').nil? ? Integer(v) : Float(v) rescue v.to_s
end