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