module Quandl::Cassinatra::Base::Search

Public Instance Methods

fetch() click to toggle source
# File lib/quandl/cassinatra/base/search.rb, line 18
def fetch
  result = find(attributes[:id])
  result = references.imprint( result ) unless references.nil?
  result
end
fetch_once() click to toggle source
# File lib/quandl/cassinatra/base/search.rb, line 14
def fetch_once
  @fetch_once ||= fetch
end
find(id) click to toggle source
# File lib/quandl/cassinatra/base/search.rb, line 24
def find(id)
  begin
    t1 = Time.now
    result = self.class.parent.where(attributes).find(id)
    Quandl::Logger.debug "#{self.class.name}.where(#{attributes.to_param if attributes.respond_to?(:to_param)}).find(#{id}) (#{t1.elapsed_ms})"
  rescue => error
    Quandl::Logger.error "#{self.class.name}.find #{error}"
  end
  result = self.class.parent.new(id: id) if result.nil?
  result
end
format_trim_date(date, start_or_end) click to toggle source
# File lib/quandl/cassinatra/base/search.rb, line 45
def format_trim_date(date, start_or_end)
  # parse
  date = parse_date(date)
  # format
  if date.is_a?(Date)
    date = date.send("#{start_or_end}_of_frequency", collapse) if collapse.present?
    date.jd
  else
    nil
  end
end
numeric?(string) click to toggle source
# File lib/quandl/cassinatra/base/search.rb, line 68
def numeric?(string)
  string = string.to_s
  if string =~ /^\d+$/
    true
  else
    Float(string).is_a?(Float) rescue false
  end
end
parse_date( date ) click to toggle source
# File lib/quandl/cassinatra/base/search.rb, line 57
def parse_date( date )
  begin
    date = Date.jd(date.to_i) if date.kind_of?(String) && numeric?(date)
    date = Date.jd(date) if date.is_a?(Integer)
    date = Date.parse(date) if date.is_a?(String) && date =~ /^[0-9]{4}\-[0-9]{2}\-[0-9]{2}$/
    date
  rescue
    nil
  end
end
references(*args) click to toggle source
# File lib/quandl/cassinatra/base/search.rb, line 36
def references(*args)
  return @references if args.first.nil?
  @references = args.first
  attributes[:id]  = @references.id
  self
end
reload() click to toggle source
# File lib/quandl/cassinatra/base/search.rb, line 81
def reload
  # reset attributes
  @attributes = { 'id' => self.id }
  @metadata = {}
  # return self
  true
end