activeforce 1.5.0 → 1.6.0

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.5.0
1
+ 1.6.0
data/activeforce.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "activeforce"
8
- s.version = "1.5.0"
8
+ s.version = "1.6.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Tushar Ranka"]
12
- s.date = "2012-06-29"
12
+ s.date = "2012-07-13"
13
13
  s.description = " Activeforce provides a simple to use and extend interface to Salesforce using the REST API"
14
14
  s.email = "tusharranka@gmail.com"
15
15
  s.extra_rdoc_files = [
@@ -1,6 +1,9 @@
1
1
  module Salesforce
2
2
  class Column
3
3
  attr_accessor :name, :original_name, :createable, :updateable, :type
4
+
5
+ SUPPORTED_DATE_RANGE = Date.parse("01/01/1700")..Date.parse("12/31/4000")
6
+ SUPPORTED_TIME_RANGE = Time.parse("01/01/1700")..Time.parse("12/31/4000")
4
7
 
5
8
  def initialize(field)
6
9
  self.original_name = field["name"]
@@ -69,13 +72,23 @@ module Salesforce
69
72
  end
70
73
  when :date
71
74
  begin
72
- Date.parse(value);
75
+ parsed_date = Date.parse(value)
76
+ if SUPPORTED_DATE_RANGE.include?(parsed_date)
77
+ parsed_date
78
+ else
79
+ nil
80
+ end
73
81
  rescue
74
82
  value if value.is_a?(Date)
75
83
  end
76
84
  when :datetime
77
85
  begin
78
- Time.parse(value)
86
+ parsed_time = Time.parse(value)
87
+ if SUPPORTED_TIME_RANGE.include?(parsed_time)
88
+ parsed_time
89
+ else
90
+ nil
91
+ end
79
92
  rescue
80
93
  value if value.is_a?(Time)
81
94
  end
@@ -93,6 +93,20 @@ class Salesforce::ColumnTest < ActiveSupport::TestCase
93
93
  assert_equal true, Salesforce::Column.typecast(:boolean, true)
94
94
  assert_equal false, Salesforce::Column.typecast(:boolean, false)
95
95
  end
96
+
97
+ def test_typecast__date_max
98
+ assert_equal nil, Salesforce::Column.typecast(:date, "12/31/9999")
99
+ assert_equal Date.parse("12/30/4000"), Salesforce::Column.typecast(:date, "12/30/4000")
100
+ assert_equal nil, Salesforce::Column.typecast(:datetime, "12/31/9999")
101
+ assert_equal Date.parse("12/30/4000").to_time, Salesforce::Column.typecast(:datetime, "12/30/4000")
102
+ end
103
+
104
+ def test_typecast__date_min
105
+ assert_equal nil, Salesforce::Column.typecast(:date, "12/31/1699")
106
+ assert_equal Date.parse("01/01/1700").to_time, Salesforce::Column.typecast(:datetime, "01/01/1700")
107
+ assert_equal nil, Salesforce::Column.typecast(:datetime, "12/31/1699")
108
+ assert_equal Date.parse("01/01/1700").to_time, Salesforce::Column.typecast(:datetime, "01/01/1700")
109
+ end
96
110
 
97
111
  def test_typecast__using_full_length_ids
98
112
  Salesforce::Config.instance.use_full_length_ids
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activeforce
3
3
  version: !ruby/object:Gem::Version
4
- hash: 3
4
+ hash: 15
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
- - 5
8
+ - 6
9
9
  - 0
10
- version: 1.5.0
10
+ version: 1.6.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Tushar Ranka
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-06-29 00:00:00 Z
18
+ date: 2012-07-13 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  type: :runtime