activeforce 1.5.0 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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