dm-salesforce-adapter 1.0.3 → 1.0.5
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.
@@ -136,7 +136,7 @@ class SalesforceAdapter
|
|
136
136
|
|
137
137
|
sql = "SELECT #{fields} from #{query.model.storage_name(repository.name)}"
|
138
138
|
sql << " WHERE (#{conditions})" unless conditions.empty?
|
139
|
-
sql << " ORDER BY #{order(query.order[0])}" unless query.order.empty?
|
139
|
+
sql << " ORDER BY #{order(query.order[0])}" unless query.order.nil? or query.order.empty?
|
140
140
|
sql << " LIMIT #{query.limit}" if query.limit
|
141
141
|
|
142
142
|
DataMapper.logger.debug sql if DataMapper.logger
|
@@ -165,7 +165,7 @@ class SalesforceAdapter
|
|
165
165
|
def normalize_id_value(klass, property, value)
|
166
166
|
return nil unless value
|
167
167
|
properties = Array(klass.send(:salesforce_id_properties)).map { |p| p.to_sym } rescue []
|
168
|
-
return properties.include?(property.name) ? value[0..
|
168
|
+
return properties.include?(property.name) ? value[0..17] : value
|
169
169
|
end
|
170
170
|
end
|
171
171
|
|
@@ -49,14 +49,14 @@ class SalesforceAdapter
|
|
49
49
|
|
50
50
|
def field_name_for(klass_name, column)
|
51
51
|
klass = SalesforceAPI.const_get(klass_name)
|
52
|
-
fields = [column, Inflector.camelize(column.to_s), "#{column}__c".downcase]
|
52
|
+
fields = [column, Inflector.camelize(column.to_s), "#{Inflector.camelize(column.to_s)}__c", "#{column}__c".downcase]
|
53
53
|
options = /^(#{fields.join("|")})$/i
|
54
54
|
matches = klass.instance_methods(false).grep(options)
|
55
55
|
if matches.any?
|
56
56
|
matches.first
|
57
57
|
else
|
58
58
|
raise FieldNotFound,
|
59
|
-
"You specified #{column} as a field, but
|
59
|
+
"You specified #{column} as a field, but none of the expected field names exist: #{fields.join(", ")}. " \
|
60
60
|
"Either manually specify the field name with :field, or check to make sure you have " \
|
61
61
|
"provided a correct field name."
|
62
62
|
end
|
@@ -64,7 +64,14 @@ class SalesforceAdapter
|
|
64
64
|
|
65
65
|
def query(string)
|
66
66
|
with_reconnection do
|
67
|
-
driver.query(:queryString => string).result
|
67
|
+
res = driver.query(:queryString => string).result
|
68
|
+
records = res.records
|
69
|
+
while !res.done
|
70
|
+
res = driver.queryMore(:queryLocator => res.queryLocator).result
|
71
|
+
records += res.records
|
72
|
+
end
|
73
|
+
res.records = records
|
74
|
+
res
|
68
75
|
end
|
69
76
|
rescue SOAP::FaultError => e
|
70
77
|
raise QueryError.new(e.message, [])
|
@@ -97,10 +104,10 @@ class SalesforceAdapter
|
|
97
104
|
begin
|
98
105
|
result = driver.login(:username => @username, :password => @password).result
|
99
106
|
rescue SOAP::FaultError => error
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
107
|
+
case error.faultcode.text
|
108
|
+
when "sf:INVALID_LOGIN" then raise LoginFailed, error.faultstring.text
|
109
|
+
# ...
|
110
|
+
else raise error
|
104
111
|
end
|
105
112
|
end
|
106
113
|
driver.endpoint_url = result.serverUrl
|
@@ -127,17 +134,16 @@ class SalesforceAdapter
|
|
127
134
|
yield
|
128
135
|
rescue SOAP::FaultError => error
|
129
136
|
retry_count ||= 0
|
130
|
-
|
137
|
+
|
138
|
+
case error.faultcode.text
|
139
|
+
when "sf:INVALID_SESSION_ID" then
|
131
140
|
DataMapper.logger.debug "Got a invalid session id; reconnecting" if DataMapper.logger
|
132
141
|
@driver = nil
|
133
142
|
login
|
134
143
|
retry_count += 1
|
135
144
|
retry unless retry_count > 5
|
136
|
-
else
|
137
|
-
raise error
|
145
|
+
else raise error
|
138
146
|
end
|
139
|
-
|
140
|
-
raise SessionTimeout, "The Salesforce session could not be established"
|
141
147
|
end
|
142
148
|
end
|
143
149
|
end
|
@@ -3,15 +3,16 @@ module SalesforceAdapter::Property
|
|
3
3
|
FALSE = 0
|
4
4
|
TRUE = 1
|
5
5
|
|
6
|
-
def
|
7
|
-
|
8
|
-
when nil, false then FALSE
|
9
|
-
else TRUE
|
10
|
-
end
|
6
|
+
def load(value)
|
7
|
+
[true, 1, '1', 'true', 'TRUE'].include?(value) ? true : false
|
11
8
|
end
|
12
9
|
|
13
|
-
def
|
14
|
-
[true, 1, '1', 'true', 'TRUE'
|
10
|
+
def typecast(value)
|
11
|
+
[true, 1, '1', 'true', 'TRUE'].include?(value) ? TRUE : FALSE
|
12
|
+
end
|
13
|
+
|
14
|
+
def custom?
|
15
|
+
true
|
15
16
|
end
|
16
17
|
end
|
17
18
|
end
|
@@ -83,7 +83,7 @@ class SalesforceAdapter
|
|
83
83
|
end
|
84
84
|
|
85
85
|
def quote_value(value, property)
|
86
|
-
if property.
|
86
|
+
if property.kind_of? Property::Boolean
|
87
87
|
# True on salesforce needs to be TRUE/FALSE for WHERE clauses but not for inserts.
|
88
88
|
return value == Property::Boolean::TRUE ? 'TRUE' : 'FALSE'
|
89
89
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dm-salesforce-adapter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 29
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 1.0.
|
9
|
+
- 5
|
10
|
+
version: 1.0.5
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Jordan Ritter
|
@@ -18,8 +18,7 @@ autorequire:
|
|
18
18
|
bindir: bin
|
19
19
|
cert_chain: []
|
20
20
|
|
21
|
-
date:
|
22
|
-
default_executable:
|
21
|
+
date: 2012-04-13 00:00:00 Z
|
23
22
|
dependencies:
|
24
23
|
- !ruby/object:Gem::Dependency
|
25
24
|
name: httpclient
|
@@ -60,7 +59,7 @@ dependencies:
|
|
60
59
|
requirement: &id003 !ruby/object:Gem::Requirement
|
61
60
|
none: false
|
62
61
|
requirements:
|
63
|
-
- -
|
62
|
+
- - ">="
|
64
63
|
- !ruby/object:Gem::Version
|
65
64
|
hash: 19
|
66
65
|
segments:
|
@@ -68,6 +67,14 @@ dependencies:
|
|
68
67
|
- 1
|
69
68
|
- 0
|
70
69
|
version: 1.1.0
|
70
|
+
- - <
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
hash: 27
|
73
|
+
segments:
|
74
|
+
- 1
|
75
|
+
- 3
|
76
|
+
- 0
|
77
|
+
version: 1.3.0
|
71
78
|
type: :runtime
|
72
79
|
version_requirements: *id003
|
73
80
|
- !ruby/object:Gem::Dependency
|
@@ -76,7 +83,7 @@ dependencies:
|
|
76
83
|
requirement: &id004 !ruby/object:Gem::Requirement
|
77
84
|
none: false
|
78
85
|
requirements:
|
79
|
-
- -
|
86
|
+
- - ">="
|
80
87
|
- !ruby/object:Gem::Version
|
81
88
|
hash: 19
|
82
89
|
segments:
|
@@ -84,6 +91,14 @@ dependencies:
|
|
84
91
|
- 1
|
85
92
|
- 0
|
86
93
|
version: 1.1.0
|
94
|
+
- - <
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
hash: 27
|
97
|
+
segments:
|
98
|
+
- 1
|
99
|
+
- 3
|
100
|
+
- 0
|
101
|
+
version: 1.3.0
|
87
102
|
type: :runtime
|
88
103
|
version_requirements: *id004
|
89
104
|
- !ruby/object:Gem::Dependency
|
@@ -92,7 +107,7 @@ dependencies:
|
|
92
107
|
requirement: &id005 !ruby/object:Gem::Requirement
|
93
108
|
none: false
|
94
109
|
requirements:
|
95
|
-
- -
|
110
|
+
- - ">="
|
96
111
|
- !ruby/object:Gem::Version
|
97
112
|
hash: 19
|
98
113
|
segments:
|
@@ -100,6 +115,14 @@ dependencies:
|
|
100
115
|
- 1
|
101
116
|
- 0
|
102
117
|
version: 1.1.0
|
118
|
+
- - <
|
119
|
+
- !ruby/object:Gem::Version
|
120
|
+
hash: 27
|
121
|
+
segments:
|
122
|
+
- 1
|
123
|
+
- 3
|
124
|
+
- 0
|
125
|
+
version: 1.3.0
|
103
126
|
type: :runtime
|
104
127
|
version_requirements: *id005
|
105
128
|
- !ruby/object:Gem::Dependency
|
@@ -118,8 +141,8 @@ dependencies:
|
|
118
141
|
version: 1.5.8
|
119
142
|
type: :runtime
|
120
143
|
version_requirements: *id006
|
121
|
-
description: A DataMapper 1.
|
122
|
-
email: jpr5@
|
144
|
+
description: A DataMapper 1.x adapter to the Salesforce API
|
145
|
+
email: jpr5@serv.io
|
123
146
|
executables: []
|
124
147
|
|
125
148
|
extensions: []
|
@@ -142,7 +165,6 @@ files:
|
|
142
165
|
- lib/dm-salesforce-adapter/sql.rb
|
143
166
|
- lib/dm-salesforce-adapter/version.rb
|
144
167
|
- lib/dm-salesforce-adapter.rb
|
145
|
-
has_rdoc: true
|
146
168
|
homepage: http://github.com/cloudcrowd/dm-salesforce-adapter
|
147
169
|
licenses: []
|
148
170
|
|
@@ -172,9 +194,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
172
194
|
requirements: []
|
173
195
|
|
174
196
|
rubyforge_project:
|
175
|
-
rubygems_version: 1.
|
197
|
+
rubygems_version: 1.8.10
|
176
198
|
signing_key:
|
177
199
|
specification_version: 3
|
178
|
-
summary: A DataMapper 1.
|
200
|
+
summary: A DataMapper 1.x adapter to the Salesforce API
|
179
201
|
test_files: []
|
180
202
|
|