lib/salesforce/column.rb in activeforce-1.5.0 vs lib/salesforce/column.rb in activeforce-1.6.0

- old
+ new

@@ -1,8 +1,11 @@ module Salesforce class Column attr_accessor :name, :original_name, :createable, :updateable, :type + + SUPPORTED_DATE_RANGE = Date.parse("01/01/1700")..Date.parse("12/31/4000") + SUPPORTED_TIME_RANGE = Time.parse("01/01/1700")..Time.parse("12/31/4000") def initialize(field) self.original_name = field["name"] self.name = field["name"].gsub(/\_\_c$/, '').underscore self.type = field["type"].to_sym @@ -67,16 +70,26 @@ else value.to_s.size == 15 ? value : value.to_s[0..14] end when :date begin - Date.parse(value); + parsed_date = Date.parse(value) + if SUPPORTED_DATE_RANGE.include?(parsed_date) + parsed_date + else + nil + end rescue value if value.is_a?(Date) end when :datetime begin - Time.parse(value) + parsed_time = Time.parse(value) + if SUPPORTED_TIME_RANGE.include?(parsed_time) + parsed_time + else + nil + end rescue value if value.is_a?(Time) end when :double begin