class PoorManSearch::Criteria
Constants
- DATE_FORMATS
Attributes
numbers[RW]
stringables[RW]
strings[RW]
time_range[RW]
times[RW]
Public Class Methods
new(irregularity = nil)
click to toggle source
# File lib/poor_man_search/criteria.rb, line 7 def initialize irregularity = nil parse irregularity end
Private Instance Methods
number_parse(s)
click to toggle source
# File lib/poor_man_search/criteria.rb, line 55 def number_parse s return nil unless s =~ /^(|-)\d+(|\.(|\d+))$/ return BigDecimal.new s end
parse(irregularity)
click to toggle source
# File lib/poor_man_search/criteria.rb, line 13 def parse irregularity self.strings = [] self.stringables = [] self.numbers = [] self.times = [] self.time_range = [] words = irregularity.to_s.gsub / /, " " words.split(" ").each do |word| num = number_parse word time = time_parse word self.strings << word unless num || time self.numbers << num if num self.times << time if time end self.time_range = [self.times.min, self.times.max] if self.times.count >= 2 end
parse_format(ss, format)
click to toggle source
# File lib/poor_man_search/criteria.rb, line 48 def parse_format(ss, format) return nil unless ss=~ format[0] return Time.strptime(ss, format[1]) rescue Exception return nil end
time_parse(ss)
click to toggle source
# File lib/poor_man_search/criteria.rb, line 38 def time_parse ss date = parse_format(ss, DATE_FORMATS[:date_hour_minute]) date ||= parse_format(ss, DATE_FORMATS[:date_hour]) date ||= parse_format(ss, DATE_FORMATS[:date]) date ||= parse_format(ss, DATE_FORMATS[:time]) return date rescue Exception return nil end