class CulturalDates::DateTransform
Public Class Methods
regularize(date_obj)
click to toggle source
# File lib/cultural_dates/date_transform.rb, line 74 def regularize(date_obj) date_obj = regularize_era(date_obj) date_obj = regularize_century(date_obj) date_obj = regularize_decade(date_obj) date_obj = regularize_year(date_obj) date_obj = regularize_month(date_obj) date_obj = regularize_day(date_obj) date_obj end
to_edtf_date(d)
click to toggle source
# File lib/cultural_dates/date_transform.rb, line 39 def to_edtf_date(d) if d[:day] date = Date.new(d[:year],d[:month],d[:day]) date.day_precision! elsif(d[:month]) date = Date.new(d[:year],d[:month]) date.unspecified! :day elsif(d[:year]) if (d[:era] == "BCE") date = Date.new(d[:year]+1) else date = Date.new(d[:year]) end date.unspecified! :month date.unspecified! :day elsif(d[:decade]) date = Date.new(d[:decade]) date.unspecified.year[3]= true date.unspecified! :month date.unspecified! :day elsif(d[:century]) c = d[:century] * 100 c -=99 if (d[:era] == "BCE") date = Date.new(c) date.unspecified.year[3]= true date.unspecified.year[2]= true date.unspecified! :month date.unspecified! :day end date.uncertain! unless d[:certainty] date end
Private Class Methods
regularize_century(date_obj)
click to toggle source
# File lib/cultural_dates/date_transform.rb, line 96 def regularize_century(date_obj) return date_obj if date_obj[:century].is_a? Integer if date_obj[:century] date_obj[:century] = date_obj[:century].to_i - 1 if date_obj[:era] == "BCE" date_obj[:century] = -date_obj[:century] end else date_obj[:century] = nil end date_obj end
regularize_day(date_obj)
click to toggle source
# File lib/cultural_dates/date_transform.rb, line 137 def regularize_day(date_obj) return date_obj if date_obj[:day].is_a? Integer if date_obj[:day] date_obj[:day] = date_obj[:day].to_i else date_obj[:day] = nil end date_obj end
regularize_decade(date_obj)
click to toggle source
# File lib/cultural_dates/date_transform.rb, line 109 def regularize_decade(date_obj) return date_obj if date_obj[:decade].is_a? Integer if date_obj[:decade] date_obj[:decade] = date_obj[:decade].to_i if date_obj[:era] == "BCE" date_obj[:decade] = -date_obj[:decade] end else date_obj[:decade] = nil end date_obj end
regularize_era(date_obj)
click to toggle source
# File lib/cultural_dates/date_transform.rb, line 87 def regularize_era(date_obj) if date_obj[:era].to_s[0] && date_obj[:era].to_s[0].downcase == "b" date_obj[:era] = "BCE" else date_obj[:era] = "CE" end date_obj end
regularize_month(date_obj)
click to toggle source
# File lib/cultural_dates/date_transform.rb, line 147 def regularize_month(date_obj) return date_obj if date_obj[:month].is_a? Integer if date_obj[:month] month = date_obj[:month].to_i if month == 0 month = case date_obj[:month].to_s[0...3].downcase when "jan" then 1 when "feb" then 2 when "mar" then 3 when "apr" then 4 when "may" then 5 when "jun" then 6 when "jul" then 7 when "aug" then 8 when "sep" then 9 when "oct" then 10 when "nov" then 11 when "dec" then 12 end end date_obj[:month] = month else date_obj[:month] = nil end return date_obj end
regularize_year(date_obj)
click to toggle source
# File lib/cultural_dates/date_transform.rb, line 123 def regularize_year(date_obj) return date_obj if date_obj[:year].is_a? Integer if date_obj[:year] date_obj[:year] = date_obj[:year].to_i if date_obj[:era] == "BCE" date_obj[:year] = -date_obj[:year] end else date_obj[:year] = nil end date_obj end