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