module Medic::Anchor
Constants
- NUMBER_WORDS
Public Instance Methods
anchor_for_symbol(sym)
click to toggle source
# File lib/medic/anchor.rb, line 13 def anchor_for_symbol(sym) return unless sym return sym if sym.to_s == '0' return sym if sym.is_a? Fixnum return sym if sym.is_a? NSDate parts = sym.to_s.gsub('_', ' ').split.reject{ |part| part == 'ago' } component = parts.pop.chomp('s') n = parts.map{|p| NUMBER_WORDS[p] || p.to_i}.reduce do |sum, p| if p == 100 && sum > 0 sum * p else sum + p end end n ||= 1 date_comp = NSDateComponents.new.send("#{component}=", -n) NSCalendar.currentCalendar.dateByAddingComponents(date_comp, toDate: NSDate.date, options: 0) end