module DatetimeSplitter

Constants

VERSION

Public Instance Methods

split_datetime(field, options={}) click to toggle source
# File lib/datetime_splitter/split_datetime.rb, line 2
def split_datetime(field, options={})

        define_method("#{field}_date=") do |date|
                date = Date.parse(date.to_s)
                new_date =  (self.send("#{field}") || DateTime.new).change(year: date.year, month: date.month, day: date.day)
                self.send("#{field}=",new_date)
        end
        
        define_method("#{field}_date") do 
                date = self.send(field).try :to_date
        options[:date_format] ? date.try(:strftime,options[:date_format]) : date
        end

        define_method("#{field}_time=") do |time|
                time = DateTime.parse(time.to_s)
                new_time =  (self.send("#{field}") || DateTime.new).change(hour: time.hour, min: time.min, sec: time.sec)
                self.send("#{field}=",new_time)
        end

        define_method("#{field}_time") do 
                time = self.send(field)
        options[:time_format] ? time.try(:strftime,options[:time_format]) : time
        end

end