activeforce 1.7.1 → 1.8.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +18 -0
- data/Gemfile +4 -12
- data/Gemfile.lock +85 -87
- data/Rakefile +1 -21
- data/activeforce.gemspec +18 -139
- data/lib/activeforce.rb +2 -1
- data/lib/activeforce/version.rb +3 -0
- data/lib/ruby_187_range_extension.rb +10 -0
- data/lib/salesforce/attributes.rb +3 -5
- data/lib/salesforce/authentication.rb +1 -1
- data/lib/salesforce/bulk/batch.rb +7 -3
- data/lib/salesforce/column.rb +8 -4
- data/test/salesforce/authentication_test.rb +2 -2
- data/test/salesforce/base_test.rb +9 -8
- data/test/salesforce/bulk/batch_test.rb +11 -6
- data/test/salesforce/bulk/update_job_test.rb +2 -2
- data/test/salesforce/column_test.rb +18 -18
- data/test/salesforce/connection/async_test.rb +1 -1
- data/test/salesforce/connection/http_methods_test.rb +1 -1
- data/test/test_helper.rb +2 -0
- metadata +31 -141
- data/VERSION +0 -1
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA512:
|
3
|
+
data.tar.gz: 3677373f8d2f88bfbc535ff345e25a2682af1f2e4d8e237f2efebd2e9f5a06317b1159a5238563b41b59df1dd35cad781b7579e76ea323665bff3f8e16861ab5
|
4
|
+
metadata.gz: b8fe6ebdc9af91c5a981923ef600ab8c85473a50008d12895b47131f2ccfd1e2a6197a03c084e9cb112f9853dcccf5d14aa0856ed77a1b273ac2fcd5bc404be0
|
5
|
+
SHA1:
|
6
|
+
data.tar.gz: 758e87d2f47d73b4e802ce38d7a46f80b65ef4be
|
7
|
+
metadata.gz: 0b7190d439284ef237ed95ff98f76a2e011e6a4f
|
data/.gitignore
ADDED
data/Gemfile
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
source "http://rubygems.org"
|
2
2
|
|
3
|
-
|
4
|
-
gem 'savon'
|
5
|
-
gem 'blockenspiel'
|
6
|
-
gem 'rest-client'
|
7
|
-
gem "fastercsv"
|
3
|
+
gemspec
|
8
4
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
gem "bundler", "~> 1.0.0"
|
13
|
-
gem "jeweler", "~> 1.6.4"
|
14
|
-
gem "rcov", ">= 0"
|
15
|
-
end
|
5
|
+
gem 'mocha', '0.14.0', :require => false
|
6
|
+
gem "yard", "~> 0.6.0"
|
7
|
+
gem "bundler", "~> 1.0"
|
data/Gemfile.lock
CHANGED
@@ -1,114 +1,118 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
activeforce (1.8.0)
|
5
|
+
blockenspiel
|
6
|
+
fastercsv
|
7
|
+
rails (>= 3.0)
|
8
|
+
rest-client
|
9
|
+
savon (~> 1.0)
|
10
|
+
|
1
11
|
GEM
|
2
12
|
remote: http://rubygems.org/
|
3
13
|
specs:
|
4
|
-
actionmailer (3.
|
5
|
-
actionpack (= 3.
|
6
|
-
mail (~> 2.
|
7
|
-
actionpack (3.
|
8
|
-
activemodel (= 3.
|
9
|
-
activesupport (= 3.
|
14
|
+
actionmailer (3.2.14)
|
15
|
+
actionpack (= 3.2.14)
|
16
|
+
mail (~> 2.5.4)
|
17
|
+
actionpack (3.2.14)
|
18
|
+
activemodel (= 3.2.14)
|
19
|
+
activesupport (= 3.2.14)
|
10
20
|
builder (~> 3.0.0)
|
11
21
|
erubis (~> 2.7.0)
|
12
|
-
|
13
|
-
rack (~> 1.
|
14
|
-
rack-cache (~> 1.
|
15
|
-
rack-mount (~> 0.8.2)
|
22
|
+
journey (~> 1.0.4)
|
23
|
+
rack (~> 1.4.5)
|
24
|
+
rack-cache (~> 1.2)
|
16
25
|
rack-test (~> 0.6.1)
|
17
|
-
sprockets (~> 2.
|
18
|
-
activemodel (3.
|
19
|
-
activesupport (= 3.
|
20
|
-
bcrypt-ruby (~> 3.0.0)
|
26
|
+
sprockets (~> 2.2.1)
|
27
|
+
activemodel (3.2.14)
|
28
|
+
activesupport (= 3.2.14)
|
21
29
|
builder (~> 3.0.0)
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
arel (~> 2.2.1)
|
30
|
+
activerecord (3.2.14)
|
31
|
+
activemodel (= 3.2.14)
|
32
|
+
activesupport (= 3.2.14)
|
33
|
+
arel (~> 3.0.2)
|
27
34
|
tzinfo (~> 0.3.29)
|
28
|
-
activeresource (3.
|
29
|
-
activemodel (= 3.
|
30
|
-
activesupport (= 3.
|
31
|
-
activesupport (3.
|
35
|
+
activeresource (3.2.14)
|
36
|
+
activemodel (= 3.2.14)
|
37
|
+
activesupport (= 3.2.14)
|
38
|
+
activesupport (3.2.14)
|
39
|
+
i18n (~> 0.6, >= 0.6.4)
|
32
40
|
multi_json (~> 1.0)
|
33
|
-
akami (1.
|
41
|
+
akami (1.2.0)
|
34
42
|
gyoku (>= 0.4.0)
|
35
|
-
|
36
|
-
|
37
|
-
blockenspiel (0.4.
|
38
|
-
builder (3.0.
|
43
|
+
nokogiri (>= 1.4.0)
|
44
|
+
arel (3.0.2)
|
45
|
+
blockenspiel (0.4.5)
|
46
|
+
builder (3.0.4)
|
39
47
|
erubis (2.7.0)
|
40
|
-
fastercsv (1.5.
|
41
|
-
|
42
|
-
gyoku (0.4.4)
|
48
|
+
fastercsv (1.5.5)
|
49
|
+
gyoku (0.4.6)
|
43
50
|
builder (>= 2.1.2)
|
44
|
-
hike (1.2.
|
45
|
-
httpi (
|
51
|
+
hike (1.2.3)
|
52
|
+
httpi (1.1.1)
|
46
53
|
rack
|
47
|
-
i18n (0.6.
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
rake
|
52
|
-
mail (2.3.0)
|
53
|
-
i18n (>= 0.4.0)
|
54
|
+
i18n (0.6.5)
|
55
|
+
journey (1.0.4)
|
56
|
+
json (1.8.0)
|
57
|
+
mail (2.5.4)
|
54
58
|
mime-types (~> 1.16)
|
55
59
|
treetop (~> 1.4.8)
|
56
60
|
metaclass (0.0.1)
|
57
|
-
mime-types (1.
|
58
|
-
mocha (0.
|
61
|
+
mime-types (1.24)
|
62
|
+
mocha (0.14.0)
|
59
63
|
metaclass (~> 0.0.1)
|
60
|
-
multi_json (1.
|
61
|
-
nokogiri (1.5.
|
62
|
-
nori (1.
|
63
|
-
polyglot (0.3.
|
64
|
-
rack (1.
|
65
|
-
rack-cache (1.
|
64
|
+
multi_json (1.7.9)
|
65
|
+
nokogiri (1.5.10)
|
66
|
+
nori (1.1.3)
|
67
|
+
polyglot (0.3.3)
|
68
|
+
rack (1.4.5)
|
69
|
+
rack-cache (1.2)
|
66
70
|
rack (>= 0.4)
|
67
|
-
rack-
|
68
|
-
rack (>= 1.0.0)
|
69
|
-
rack-ssl (1.3.2)
|
71
|
+
rack-ssl (1.3.3)
|
70
72
|
rack
|
71
|
-
rack-test (0.6.
|
73
|
+
rack-test (0.6.2)
|
72
74
|
rack (>= 1.0)
|
73
|
-
rails (3.
|
74
|
-
actionmailer (= 3.
|
75
|
-
actionpack (= 3.
|
76
|
-
activerecord (= 3.
|
77
|
-
activeresource (= 3.
|
78
|
-
activesupport (= 3.
|
75
|
+
rails (3.2.14)
|
76
|
+
actionmailer (= 3.2.14)
|
77
|
+
actionpack (= 3.2.14)
|
78
|
+
activerecord (= 3.2.14)
|
79
|
+
activeresource (= 3.2.14)
|
80
|
+
activesupport (= 3.2.14)
|
79
81
|
bundler (~> 1.0)
|
80
|
-
railties (= 3.
|
81
|
-
railties (3.
|
82
|
-
actionpack (= 3.
|
83
|
-
activesupport (= 3.
|
82
|
+
railties (= 3.2.14)
|
83
|
+
railties (3.2.14)
|
84
|
+
actionpack (= 3.2.14)
|
85
|
+
activesupport (= 3.2.14)
|
84
86
|
rack-ssl (~> 1.3.2)
|
85
87
|
rake (>= 0.8.7)
|
86
88
|
rdoc (~> 3.4)
|
87
|
-
thor (
|
88
|
-
rake (
|
89
|
-
|
90
|
-
|
89
|
+
thor (>= 0.14.6, < 2.0)
|
90
|
+
rake (10.1.0)
|
91
|
+
rdoc (3.12.2)
|
92
|
+
json (~> 1.4)
|
91
93
|
rest-client (1.6.7)
|
92
94
|
mime-types (>= 1.16)
|
93
|
-
savon (
|
94
|
-
akami (~> 1.0)
|
95
|
+
savon (1.2.0)
|
96
|
+
akami (~> 1.2.0)
|
95
97
|
builder (>= 2.1.2)
|
96
|
-
gyoku (
|
97
|
-
httpi (~> 0
|
98
|
+
gyoku (~> 0.4.5)
|
99
|
+
httpi (~> 1.1.0)
|
98
100
|
nokogiri (>= 1.4.0)
|
99
|
-
nori (~> 1.0)
|
100
|
-
wasabi (~> 2.0)
|
101
|
-
sprockets (2.
|
101
|
+
nori (~> 1.1.0)
|
102
|
+
wasabi (~> 2.5.0)
|
103
|
+
sprockets (2.2.2)
|
102
104
|
hike (~> 1.2)
|
105
|
+
multi_json (~> 1.0)
|
103
106
|
rack (~> 1.0)
|
104
107
|
tilt (~> 1.1, != 1.3.0)
|
105
|
-
thor (0.
|
106
|
-
tilt (1.
|
107
|
-
treetop (1.4.
|
108
|
+
thor (0.18.1)
|
109
|
+
tilt (1.4.1)
|
110
|
+
treetop (1.4.15)
|
108
111
|
polyglot
|
109
112
|
polyglot (>= 0.3.1)
|
110
|
-
tzinfo (0.3.
|
111
|
-
wasabi (2.
|
113
|
+
tzinfo (0.3.37)
|
114
|
+
wasabi (2.5.0)
|
115
|
+
httpi (~> 1.0)
|
112
116
|
nokogiri (>= 1.4.0)
|
113
117
|
yard (0.6.8)
|
114
118
|
|
@@ -116,13 +120,7 @@ PLATFORMS
|
|
116
120
|
ruby
|
117
121
|
|
118
122
|
DEPENDENCIES
|
119
|
-
|
120
|
-
bundler (~> 1.0
|
121
|
-
|
122
|
-
jeweler (~> 1.6.4)
|
123
|
-
mocha
|
124
|
-
rails
|
125
|
-
rcov
|
126
|
-
rest-client
|
127
|
-
savon
|
123
|
+
activeforce!
|
124
|
+
bundler (~> 1.0)
|
125
|
+
mocha (= 0.14.0)
|
128
126
|
yard (~> 0.6.0)
|
data/Rakefile
CHANGED
@@ -11,20 +11,8 @@ rescue Bundler::BundlerError => e
|
|
11
11
|
end
|
12
12
|
|
13
13
|
require 'rake'
|
14
|
-
require 'jeweler'
|
15
14
|
|
16
|
-
|
17
|
-
# gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
|
18
|
-
gem.name = "activeforce"
|
19
|
-
gem.homepage = "http://github.com/appfolio/activeforce"
|
20
|
-
gem.license = "MIT"
|
21
|
-
gem.summary = %Q{A Simple gem to interact with the Salesforce REST API}
|
22
|
-
gem.description = %Q{ Activeforce provides a simple to use and extend interface to Salesforce using the REST API}
|
23
|
-
gem.email = "andrew.mutz@appfolio.com"
|
24
|
-
gem.authors = "Andrew Mutz"
|
25
|
-
end
|
26
|
-
|
27
|
-
Jeweler::RubygemsDotOrgTasks.new
|
15
|
+
require 'bundler/gem_tasks'
|
28
16
|
|
29
17
|
require 'rake/testtask'
|
30
18
|
Rake::TestTask.new(:test) do |test|
|
@@ -33,14 +21,6 @@ Rake::TestTask.new(:test) do |test|
|
|
33
21
|
test.verbose = true
|
34
22
|
end
|
35
23
|
|
36
|
-
require 'rcov/rcovtask'
|
37
|
-
Rcov::RcovTask.new do |test|
|
38
|
-
test.libs << 'test'
|
39
|
-
test.pattern = 'test/**/*_test.rb'
|
40
|
-
test.verbose = true
|
41
|
-
test.rcov_opts = ['--exclude "gems/*"']
|
42
|
-
end
|
43
|
-
|
44
24
|
task :default => :test
|
45
25
|
|
46
26
|
require 'yard'
|
data/activeforce.gemspec
CHANGED
@@ -1,151 +1,30 @@
|
|
1
|
-
# Generated by jeweler
|
2
|
-
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
1
|
# -*- encoding: utf-8 -*-
|
2
|
+
$LOAD_PATH.push File.expand_path("../lib", __FILE__)
|
3
|
+
require 'activeforce/version'
|
5
4
|
|
6
5
|
Gem::Specification.new do |s|
|
7
6
|
s.name = "activeforce"
|
8
|
-
s.version =
|
7
|
+
s.version = Activeforce::VERSION
|
9
8
|
|
10
|
-
s.
|
11
|
-
s.
|
12
|
-
s.
|
13
|
-
s.
|
14
|
-
s.email = "andrew.mutz@appfolio.com"
|
9
|
+
s.authors = ["Tushar Ranka", "Andrew Mutz"]
|
10
|
+
s.date = "2013-08-27"
|
11
|
+
s.description = " Activeforce provides a simple to use and extend interface to Salesforce using the REST API"
|
12
|
+
s.email = ["tusharranka@gmail.com", "andrew.mutz@appfolio.com"]
|
15
13
|
s.extra_rdoc_files = [
|
16
14
|
"LICENSE.txt",
|
17
15
|
"README.md"
|
18
16
|
]
|
19
|
-
s.files
|
20
|
-
|
21
|
-
|
22
|
-
"
|
23
|
-
|
24
|
-
|
25
|
-
"VERSION",
|
26
|
-
"activeforce.gemspec",
|
27
|
-
"app/models/salesforce/account.rb",
|
28
|
-
"app/models/salesforce/activity_history.rb",
|
29
|
-
"app/models/salesforce/approval.rb",
|
30
|
-
"app/models/salesforce/campaign.rb",
|
31
|
-
"app/models/salesforce/campaign_feed.rb",
|
32
|
-
"app/models/salesforce/campaign_member.rb",
|
33
|
-
"app/models/salesforce/case.rb",
|
34
|
-
"app/models/salesforce/case_comment.rb",
|
35
|
-
"app/models/salesforce/case_contact_role.rb",
|
36
|
-
"app/models/salesforce/case_feed.rb",
|
37
|
-
"app/models/salesforce/case_history.rb",
|
38
|
-
"app/models/salesforce/case_share.rb",
|
39
|
-
"app/models/salesforce/case_solution.rb",
|
40
|
-
"app/models/salesforce/case_status.rb",
|
41
|
-
"app/models/salesforce/case_team_member.rb",
|
42
|
-
"app/models/salesforce/community.rb",
|
43
|
-
"app/models/salesforce/contact.rb",
|
44
|
-
"app/models/salesforce/contact_feed.rb",
|
45
|
-
"app/models/salesforce/contact_history.rb",
|
46
|
-
"app/models/salesforce/contract.rb",
|
47
|
-
"app/models/salesforce/document.rb",
|
48
|
-
"app/models/salesforce/event.rb",
|
49
|
-
"app/models/salesforce/feed_item.rb",
|
50
|
-
"app/models/salesforce/group.rb",
|
51
|
-
"app/models/salesforce/group_member.rb",
|
52
|
-
"app/models/salesforce/idea.rb",
|
53
|
-
"app/models/salesforce/lead.rb",
|
54
|
-
"app/models/salesforce/lead_status.rb",
|
55
|
-
"app/models/salesforce/name.rb",
|
56
|
-
"app/models/salesforce/note.rb",
|
57
|
-
"app/models/salesforce/open_activity.rb",
|
58
|
-
"app/models/salesforce/opportunity.rb",
|
59
|
-
"app/models/salesforce/organization.rb",
|
60
|
-
"app/models/salesforce/partner.rb",
|
61
|
-
"app/models/salesforce/period.rb",
|
62
|
-
"app/models/salesforce/product2.rb",
|
63
|
-
"app/models/salesforce/product2_feed.rb",
|
64
|
-
"app/models/salesforce/profile.rb",
|
65
|
-
"app/models/salesforce/quote.rb",
|
66
|
-
"app/models/salesforce/solution.rb",
|
67
|
-
"app/models/salesforce/task.rb",
|
68
|
-
"app/models/salesforce/task_feed.rb",
|
69
|
-
"app/models/salesforce/task_priority.rb",
|
70
|
-
"app/models/salesforce/task_status.rb",
|
71
|
-
"app/models/salesforce/user.rb",
|
72
|
-
"app/models/salesforce/user_role.rb",
|
73
|
-
"app/models/salesforce/vote.rb",
|
74
|
-
"lib/activeforce.rb",
|
75
|
-
"lib/salesforce/attributes.rb",
|
76
|
-
"lib/salesforce/authentication.rb",
|
77
|
-
"lib/salesforce/base.rb",
|
78
|
-
"lib/salesforce/bulk/batch.rb",
|
79
|
-
"lib/salesforce/bulk/job.rb",
|
80
|
-
"lib/salesforce/bulk/operations.rb",
|
81
|
-
"lib/salesforce/bulk/update_job.rb",
|
82
|
-
"lib/salesforce/column.rb",
|
83
|
-
"lib/salesforce/columns.rb",
|
84
|
-
"lib/salesforce/config.rb",
|
85
|
-
"lib/salesforce/connection.rb",
|
86
|
-
"lib/salesforce/connection/async.rb",
|
87
|
-
"lib/salesforce/connection/conversion.rb",
|
88
|
-
"lib/salesforce/connection/http_methods.rb",
|
89
|
-
"lib/salesforce/connection/rest_api.rb",
|
90
|
-
"lib/salesforce/connection/soap_api.rb",
|
91
|
-
"lib/salesforce/engine.rb",
|
92
|
-
"lib/salesforce/errors.rb",
|
93
|
-
"test/salesforce/authentication_test.rb",
|
94
|
-
"test/salesforce/base_test.rb",
|
95
|
-
"test/salesforce/bulk/batch_test.rb",
|
96
|
-
"test/salesforce/bulk/update_job_test.rb",
|
97
|
-
"test/salesforce/column_test.rb",
|
98
|
-
"test/salesforce/config_test.rb",
|
99
|
-
"test/salesforce/connection/async_test.rb",
|
100
|
-
"test/salesforce/connection/http_methods_test.rb",
|
101
|
-
"test/salesforce/connection/rest_api_test.rb",
|
102
|
-
"test/salesforce/connection/soap_api_test.rb",
|
103
|
-
"test/salesforce/connection_test.rb",
|
104
|
-
"test/test_helper.rb"
|
105
|
-
]
|
106
|
-
s.homepage = "http://github.com/appfolio/activeforce"
|
107
|
-
s.licenses = ["MIT"]
|
108
|
-
s.require_paths = ["lib"]
|
109
|
-
s.rubygems_version = "1.8.24"
|
110
|
-
s.summary = "A Simple gem to interact with the Salesforce REST API"
|
111
|
-
|
112
|
-
if s.respond_to? :specification_version then
|
113
|
-
s.specification_version = 3
|
17
|
+
s.files = `git ls-files`.split("\n")
|
18
|
+
s.homepage = "http://github.com/appfolio/activeforce"
|
19
|
+
s.licenses = ["MIT"]
|
20
|
+
s.require_paths = ["lib"]
|
21
|
+
s.rubygems_version = "2.0.3"
|
22
|
+
s.summary = "A Simple gem to interact with the Salesforce REST API"
|
114
23
|
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
s.add_runtime_dependency(%q<fastercsv>, [">= 0"])
|
121
|
-
s.add_development_dependency(%q<mocha>, [">= 0"])
|
122
|
-
s.add_development_dependency(%q<yard>, ["~> 0.6.0"])
|
123
|
-
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
124
|
-
s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
|
125
|
-
s.add_development_dependency(%q<rcov>, [">= 0"])
|
126
|
-
else
|
127
|
-
s.add_dependency(%q<rails>, [">= 0"])
|
128
|
-
s.add_dependency(%q<savon>, [">= 0"])
|
129
|
-
s.add_dependency(%q<blockenspiel>, [">= 0"])
|
130
|
-
s.add_dependency(%q<rest-client>, [">= 0"])
|
131
|
-
s.add_dependency(%q<fastercsv>, [">= 0"])
|
132
|
-
s.add_dependency(%q<mocha>, [">= 0"])
|
133
|
-
s.add_dependency(%q<yard>, ["~> 0.6.0"])
|
134
|
-
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
135
|
-
s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
|
136
|
-
s.add_dependency(%q<rcov>, [">= 0"])
|
137
|
-
end
|
138
|
-
else
|
139
|
-
s.add_dependency(%q<rails>, [">= 0"])
|
140
|
-
s.add_dependency(%q<savon>, [">= 0"])
|
141
|
-
s.add_dependency(%q<blockenspiel>, [">= 0"])
|
142
|
-
s.add_dependency(%q<rest-client>, [">= 0"])
|
143
|
-
s.add_dependency(%q<fastercsv>, [">= 0"])
|
144
|
-
s.add_dependency(%q<mocha>, [">= 0"])
|
145
|
-
s.add_dependency(%q<yard>, ["~> 0.6.0"])
|
146
|
-
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
147
|
-
s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
|
148
|
-
s.add_dependency(%q<rcov>, [">= 0"])
|
149
|
-
end
|
24
|
+
s.add_dependency(%q<rails>, [">= 3.0"])
|
25
|
+
s.add_dependency(%q<savon>, ["~> 1.0"])
|
26
|
+
s.add_dependency(%q<blockenspiel>, [">= 0"])
|
27
|
+
s.add_dependency(%q<rest-client>, [">= 0"])
|
28
|
+
s.add_dependency(%q<fastercsv>, [">= 0"])
|
150
29
|
end
|
151
30
|
|
data/lib/activeforce.rb
CHANGED
@@ -4,6 +4,7 @@ require 'savon'
|
|
4
4
|
require 'rest-client'
|
5
5
|
require 'fastercsv'
|
6
6
|
require 'active_support/all'
|
7
|
+
require 'ruby_187_range_extension'
|
7
8
|
require 'salesforce/config'
|
8
9
|
require 'salesforce/engine'
|
9
10
|
require 'salesforce/authentication'
|
@@ -26,4 +27,4 @@ module Salesforce
|
|
26
27
|
def self.connection
|
27
28
|
Connection
|
28
29
|
end
|
29
|
-
end
|
30
|
+
end
|
@@ -2,11 +2,9 @@ module Salesforce
|
|
2
2
|
module Attributes
|
3
3
|
extend ActiveSupport::Concern
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
send("#{key}=", value) if respond_to?("#{key}=")
|
9
|
-
end
|
5
|
+
def assign_attributes!(hash)
|
6
|
+
hash.each do |key, value|
|
7
|
+
send("#{key}=", value) if respond_to?("#{key}=")
|
10
8
|
end
|
11
9
|
end
|
12
10
|
end
|
@@ -12,7 +12,7 @@ module Salesforce
|
|
12
12
|
result = Connection.login
|
13
13
|
Config.instance.soap_endpoint_url result[:server_url]
|
14
14
|
Config.instance.session_id result[:session_id]
|
15
|
-
Config.instance.server_instance URI.parse(result[:server_url]).host
|
15
|
+
Config.instance.server_instance URI.parse(result[:server_url]).host[/(na|cs)\d+/]
|
16
16
|
Config.instance.user_id result[:user_id]
|
17
17
|
Config.session_id
|
18
18
|
end
|
@@ -1,3 +1,7 @@
|
|
1
|
+
require 'csv'
|
2
|
+
|
3
|
+
CSVLib = RUBY_VERSION.start_with?("1.8") ? FasterCSV : CSV
|
4
|
+
|
1
5
|
module Salesforce
|
2
6
|
module Bulk
|
3
7
|
class Batch
|
@@ -11,7 +15,7 @@ module Salesforce
|
|
11
15
|
def initialize(job)
|
12
16
|
self.job = job
|
13
17
|
self.filename = temporary_csv_file
|
14
|
-
self.csv =
|
18
|
+
self.csv = CSVLib.open(self.filename, 'w+')
|
15
19
|
self.csv << csv_header
|
16
20
|
end
|
17
21
|
|
@@ -63,7 +67,7 @@ module Salesforce
|
|
63
67
|
private
|
64
68
|
|
65
69
|
def parse_csv_results(results)
|
66
|
-
parsed_results =
|
70
|
+
parsed_results = CSVLib.parse(results)
|
67
71
|
parsed_results[1..-1].map { |row| Result.new(*row) }
|
68
72
|
end
|
69
73
|
|
@@ -74,4 +78,4 @@ module Salesforce
|
|
74
78
|
|
75
79
|
end
|
76
80
|
end
|
77
|
-
end
|
81
|
+
end
|
data/lib/salesforce/column.rb
CHANGED
@@ -2,8 +2,8 @@ module Salesforce
|
|
2
2
|
class Column
|
3
3
|
attr_accessor :name, :original_name, :createable, :updateable, :type
|
4
4
|
|
5
|
-
SUPPORTED_DATE_RANGE = Date.parse("01
|
6
|
-
SUPPORTED_TIME_RANGE = Time.parse("01
|
5
|
+
SUPPORTED_DATE_RANGE = Date.parse("1700-01-01")..Date.parse("4000-12-31")
|
6
|
+
SUPPORTED_TIME_RANGE = Time.parse("1902-01-01 00:00:00 UTC")..Time.parse("2037-12-31 00:00:00 UTC")
|
7
7
|
|
8
8
|
def initialize(field)
|
9
9
|
self.original_name = field["name"]
|
@@ -73,22 +73,26 @@ module Salesforce
|
|
73
73
|
when :date
|
74
74
|
begin
|
75
75
|
parsed_date = Date.parse(value)
|
76
|
-
if SUPPORTED_DATE_RANGE.
|
76
|
+
if SUPPORTED_DATE_RANGE.cover?(parsed_date)
|
77
77
|
parsed_date
|
78
78
|
else
|
79
79
|
nil
|
80
80
|
end
|
81
|
+
rescue ArgumentError
|
82
|
+
nil
|
81
83
|
rescue
|
82
84
|
value if value.is_a?(Date)
|
83
85
|
end
|
84
86
|
when :datetime
|
85
87
|
begin
|
86
88
|
parsed_time = Time.parse(value)
|
87
|
-
if SUPPORTED_TIME_RANGE.
|
89
|
+
if SUPPORTED_TIME_RANGE.cover?(parsed_time)
|
88
90
|
parsed_time
|
89
91
|
else
|
90
92
|
nil
|
91
93
|
end
|
94
|
+
rescue ArgumentError
|
95
|
+
Time.now
|
92
96
|
rescue
|
93
97
|
value if value.is_a?(Time)
|
94
98
|
end
|
@@ -36,14 +36,14 @@ class Salesforce::AuthenticationTest < ActiveSupport::TestCase
|
|
36
36
|
def test_generate_new_session_id__calls_connection_login
|
37
37
|
result = {
|
38
38
|
:session_id => "session_id",
|
39
|
-
:server_url => "https://cs99
|
39
|
+
:server_url => "https://cs99.salesforce.com/services/Soap/c/22.0/00DQ00000001LRX",
|
40
40
|
:user_id => "user_id"
|
41
41
|
}
|
42
42
|
|
43
43
|
Salesforce.connection.expects(:login).returns(result)
|
44
44
|
|
45
45
|
assert_equal "session_id", Salesforce::Authentication.generate_new_session_id
|
46
|
-
assert_equal "https://cs99
|
46
|
+
assert_equal "https://cs99.salesforce.com/services/Soap/c/22.0/00DQ00000001LRX", Salesforce::Config.soap_endpoint_url
|
47
47
|
assert_equal "session_id", Salesforce::Config.session_id
|
48
48
|
assert_equal "cs99", Salesforce::Config.server_instance
|
49
49
|
assert_equal "user_id", Salesforce::Config.user_id
|
@@ -258,7 +258,7 @@ class Salesforce::BaseTest < ActiveSupport::TestCase
|
|
258
258
|
def test_find_all__with_conditions
|
259
259
|
setup_columns_for_original_table
|
260
260
|
Salesforce.connection.expects(:soql).with("SELECT Col1,Col2__c FROM OriginalTable WHERE Col2__c >= 2011-11-11").returns([ { "Col2__c" => 'col21'}, { "Col2__c" => 'col22'}])
|
261
|
-
results = Salesforce::OriginalTable.find(:all, :conditions => ":col2 >= :date", :date => Date.parse("11
|
261
|
+
results = Salesforce::OriginalTable.find(:all, :conditions => ":col2 >= :date", :date => Date.parse("2011-11-11"))
|
262
262
|
assert_equal 2, results.size
|
263
263
|
assert_equal "col21", results.first.col2
|
264
264
|
assert_equal "col22", results.last.col2
|
@@ -282,10 +282,10 @@ class Salesforce::BaseTest < ActiveSupport::TestCase
|
|
282
282
|
assert_equal "SELECT ACol5__c FROM OriginalTable WHERE Col1 > Col2__c", Salesforce::OriginalTable.query_string(:select => :a_col5, :conditions => ":col1 > :col2")
|
283
283
|
assert_equal "SELECT ACol5__c FROM OriginalTable WHERE Col1 > Col2__c", Salesforce::OriginalTable.query_string(:select => :a_col5, :conditions => ":col1 > :col2")
|
284
284
|
assert_equal "SELECT ACol5__c FROM OriginalTable WHERE Col1 > 2011-08-01", Salesforce::OriginalTable.query_string(:select => :a_col5, :conditions => ":col1 > :date",
|
285
|
-
:date => Date.parse('08
|
285
|
+
:date => Date.parse('2011-08-01') )
|
286
286
|
assert_equal "SELECT ACol5__c FROM OriginalTable WHERE Col1 > 2011-08-01 AND ACol5__c = 2011-08-01T09:30:00-07:00",
|
287
287
|
Salesforce::OriginalTable.query_string(:select => :a_col5,
|
288
|
-
:conditions => ":col1 > :date AND :a_col5 = :time", :date => Date.parse('08
|
288
|
+
:conditions => ":col1 > :date AND :a_col5 = :time", :date => Date.parse('2011-08-01'), :time => Time.zone.parse("2011-08-01 09:30 AM"))
|
289
289
|
|
290
290
|
assert_equal "SELECT ACol5__c FROM OriginalTable WHERE Col1 = TRUE AND Col2__c = FALSE AND Col3__c = NULL",
|
291
291
|
Salesforce::OriginalTable.query_string(:select => :a_col5,
|
@@ -303,7 +303,7 @@ class Salesforce::BaseTest < ActiveSupport::TestCase
|
|
303
303
|
|
304
304
|
assert_equal "SELECT ACol5__c FROM OriginalTable WHERE Col1 = 'string' GROUP BY Col2__c HAVING Col3__c > 2009-08-01 ORDER BY Col1 ASC, Col3__c DESC",
|
305
305
|
Salesforce::OriginalTable.query_string(:select => :a_col5, :conditions => ":col1 = :string", :group_by => :col2, :having => ":col3 > :date",
|
306
|
-
:string => 'string', :date => Date.parse('08
|
306
|
+
:string => 'string', :date => Date.parse('2009-08-01'), :order => ":col1 ASC, :col3 DESC")
|
307
307
|
|
308
308
|
|
309
309
|
|
@@ -349,8 +349,9 @@ class Salesforce::BaseTest < ActiveSupport::TestCase
|
|
349
349
|
|
350
350
|
def test_find_by_column
|
351
351
|
setup_columns_for_original_table
|
352
|
-
Salesforce.
|
353
|
-
|
352
|
+
col = Salesforce::OriginalTable.columns.all.last
|
353
|
+
Salesforce.connection.expects(:soql).with("SELECT Col1,Col2__c FROM OriginalTable WHERE #{col.original_name}='value'").returns([ { "Col1" => 'col11', "Col2__c" => 'col21'}, { "Col1" => 'col21', "Col2__c" => 'col22'} ])
|
354
|
+
results = Salesforce::OriginalTable.find_by_column(col, "value")
|
354
355
|
assert_equal 2, results.size
|
355
356
|
assert_equal "col11", results.first.col1
|
356
357
|
assert_equal "col21", results.first.col2
|
@@ -384,7 +385,7 @@ class Salesforce::BaseTest < ActiveSupport::TestCase
|
|
384
385
|
end
|
385
386
|
end
|
386
387
|
|
387
|
-
def
|
388
|
+
def test_with_invalid_column_handling__throws_runtime_error__more_than_once
|
388
389
|
error = RuntimeError.new
|
389
390
|
Salesforce::OriginalTable.expects(:clear_cached_columns!).never
|
390
391
|
|
@@ -437,4 +438,4 @@ class Salesforce::BaseTest < ActiveSupport::TestCase
|
|
437
438
|
|
438
439
|
|
439
440
|
end
|
440
|
-
|
441
|
+
|
@@ -12,27 +12,32 @@ class Salesforce::Bulk::BatchTest < ActiveSupport::TestCase
|
|
12
12
|
assert !@batch.csv.nil?
|
13
13
|
@batch.csv.close
|
14
14
|
content = File.read(@batch.filename)
|
15
|
-
assert_equal "Id,Name__c,dob__c,Car__c
|
16
|
-
assert_equal [ 'Id', "Name__c", "dob__c", "Car__c"], @batch.send(:csv_header)
|
15
|
+
assert_equal "Id,Name__c,dob__c,Car__c".split(",").sort, content.strip.split(",").sort
|
16
|
+
assert_equal [ 'Id', "Name__c", "dob__c", "Car__c"].sort, @batch.send(:csv_header).sort
|
17
17
|
end
|
18
18
|
|
19
19
|
def test_record__from_hash
|
20
|
+
@batch.expects(:ordered_values).with(anything).returns([ 'recordid', 'record name', "2008-10-14", 'record car'])
|
20
21
|
@batch.csv.expects(:<<).with([ 'recordid', 'record name', "2008-10-14", 'record car'])
|
21
|
-
@batch.record :id => "recordid", :name => "record name", :car => "record car", :dob => Date.parse("10
|
22
|
-
|
22
|
+
@batch.record :id => "recordid", :name => "record name", :car => "record car", :dob => Date.parse("2008-10-14")
|
23
|
+
|
24
|
+
@batch.expects(:ordered_values).with(anything).returns([ 'recordid', 'record name', "2008-10-14", 'record car'])
|
23
25
|
@batch.csv.expects(:<<).with([ 'recordid', 'record name', "2008-10-14", 'record car'])
|
24
26
|
@batch.record :id => "recordid", :name => "record name", :car => "record car", :dob => "10/14/2008"
|
25
|
-
|
27
|
+
|
28
|
+
@batch.expects(:ordered_values).with(anything).returns([ 'recordid', '', '', 'record car'])
|
26
29
|
@batch.csv.expects(:<<).with([ 'recordid', '', '', 'record car'])
|
27
30
|
@batch.record :id => "recordid", :car => "record car"
|
28
31
|
|
32
|
+
@batch.expects(:ordered_values).with(anything).returns([ 'recordid', '', '', ''])
|
29
33
|
@batch.csv.expects(:<<).with([ 'recordid', '', '', ''])
|
30
34
|
@batch.record :id => "recordid"
|
31
35
|
end
|
32
36
|
|
33
37
|
def test_record__from_object
|
34
38
|
bulk_table = Salesforce::BulkTable.new("Id" => "btid", :name => "name", "Car__c" => 'car', :dob => "10/14/2008")
|
35
|
-
@batch.
|
39
|
+
@batch.expects(:ordered_values).with(anything).returns(['btid', "name", "2008-10-14", "car"])
|
40
|
+
@batch.csv.expects(:<<).with(['btid', "name", "2008-10-14", "car"])
|
36
41
|
@batch.record bulk_table
|
37
42
|
end
|
38
43
|
|
@@ -12,7 +12,7 @@ class Salesforce::Bulk::UpdateJobTest < ActiveSupport::TestCase
|
|
12
12
|
assert_equal 'update', job.operation
|
13
13
|
assert_equal 'Parallel', job.concurrency_mode
|
14
14
|
assert_equal 'Account', job.object
|
15
|
-
assert_equal
|
15
|
+
assert_equal ["Id","City","Address","Name","Type","State"].sort, job.send(:csv_header).sort
|
16
16
|
end
|
17
17
|
|
18
18
|
def test_initialize__with_columns
|
@@ -30,7 +30,7 @@ class Salesforce::Bulk::UpdateJobTest < ActiveSupport::TestCase
|
|
30
30
|
assert_equal 'update', job.operation
|
31
31
|
assert_equal 'Parallel', job.concurrency_mode
|
32
32
|
assert_equal 'Account', job.object
|
33
|
-
assert_equal
|
33
|
+
assert_equal ["Id","City","Address","Name","Type","State"].sort, job.send(:csv_header).sort
|
34
34
|
end
|
35
35
|
|
36
36
|
def test_csv_columns__unrecognized_column
|
@@ -45,14 +45,14 @@ class Salesforce::ColumnTest < ActiveSupport::TestCase
|
|
45
45
|
assert_equal "TRUE", Salesforce::Column.to_soql_value(true)
|
46
46
|
assert_equal "FALSE", Salesforce::Column.to_soql_value(false)
|
47
47
|
assert_equal "NULL", Salesforce::Column.to_soql_value(nil)
|
48
|
-
assert_equal "2012-01-02", Salesforce::Column.to_soql_value(Date.parse('01
|
49
|
-
assert_equal "2012-01-02T18:40:00-08:00", Salesforce::Column.to_soql_value(Time.zone.parse('01
|
48
|
+
assert_equal "2012-01-02", Salesforce::Column.to_soql_value(Date.parse('2012-01-02'))
|
49
|
+
assert_equal "2012-01-02T18:40:00-08:00", Salesforce::Column.to_soql_value(Time.zone.parse('2012-01-02 06:40PM'))
|
50
50
|
assert_equal "1", Salesforce::Column.to_soql_value(1)
|
51
51
|
assert_equal "1.0", Salesforce::Column.to_soql_value(1.0)
|
52
52
|
assert_equal "1.04", Salesforce::Column.to_soql_value(BigDecimal.new("1.04"))
|
53
53
|
assert_equal "'col'", Salesforce::Column.to_soql_value(:col)
|
54
54
|
assert_equal "('string1','string2','string3')", Salesforce::Column.to_soql_value(['string1','string2','string3'])
|
55
|
-
assert_equal "('string1',1,2012-01-02)", Salesforce::Column.to_soql_value(['string1',1,Date.parse("01
|
55
|
+
assert_equal "('string1',1,2012-01-02)", Salesforce::Column.to_soql_value(['string1',1,Date.parse("2012-01-02")])
|
56
56
|
end
|
57
57
|
|
58
58
|
def test_to_csv_value
|
@@ -60,8 +60,8 @@ class Salesforce::ColumnTest < ActiveSupport::TestCase
|
|
60
60
|
assert_equal "TRUE", Salesforce::Column.to_csv_value(true)
|
61
61
|
assert_equal "FALSE", Salesforce::Column.to_csv_value(false)
|
62
62
|
assert_equal "", Salesforce::Column.to_csv_value(nil)
|
63
|
-
assert_equal "2012-01-02", Salesforce::Column.to_csv_value(Date.parse('01
|
64
|
-
assert_equal "2012-01-02T18:40:00-08:00", Salesforce::Column.to_csv_value(Time.zone.parse('01
|
63
|
+
assert_equal "2012-01-02", Salesforce::Column.to_csv_value(Date.parse('2012-01-02'))
|
64
|
+
assert_equal "2012-01-02T18:40:00-08:00", Salesforce::Column.to_csv_value(Time.zone.parse('2012-01-02 06:40PM'))
|
65
65
|
assert_equal "1", Salesforce::Column.to_csv_value(1)
|
66
66
|
assert_equal "1.0", Salesforce::Column.to_csv_value(1.0)
|
67
67
|
assert_equal "1.04", Salesforce::Column.to_csv_value(BigDecimal.new("1.04"))
|
@@ -73,13 +73,13 @@ class Salesforce::ColumnTest < ActiveSupport::TestCase
|
|
73
73
|
assert_equal "123456789012345", Salesforce::Column.typecast(:id, "123456789012345123")
|
74
74
|
assert_equal "123456789012345", Salesforce::Column.typecast(:reference, "123456789012345")
|
75
75
|
assert_equal "123456789012345", Salesforce::Column.typecast(:reference, "123456789012345123")
|
76
|
-
assert_equal Date.parse("08
|
77
|
-
assert_equal Date.parse("08
|
76
|
+
assert_equal Date.parse("2011-08-31"), Salesforce::Column.typecast(:date, "2011-08-31")
|
77
|
+
assert_equal Date.parse("2011-08-31"), Salesforce::Column.typecast(:date, Date.parse("2011-08-31"))
|
78
78
|
assert_equal nil, Salesforce::Column.typecast(:date, nil)
|
79
79
|
assert_equal nil, Salesforce::Column.typecast(:date, 'nil')
|
80
80
|
|
81
|
-
assert_equal Time.zone.parse('01
|
82
|
-
assert_equal Time.zone.parse('01
|
81
|
+
assert_equal Time.zone.parse('2012-01-02 06:40PM'), Salesforce::Column.typecast(:datetime, "2012-01-02 18:40:00 -08:00")
|
82
|
+
assert_equal Time.zone.parse('2012-01-02 06:40PM'), Salesforce::Column.typecast(:datetime, Time.zone.parse('2012-01-02 06:40PM'))
|
83
83
|
assert_equal nil, Salesforce::Column.typecast(:datetime, nil)
|
84
84
|
assert_equal Time.now.to_s, Salesforce::Column.typecast(:datetime, 'nil').to_s
|
85
85
|
|
@@ -95,17 +95,17 @@ class Salesforce::ColumnTest < ActiveSupport::TestCase
|
|
95
95
|
end
|
96
96
|
|
97
97
|
def test_typecast__date_max
|
98
|
-
assert_equal nil, Salesforce::Column.typecast(:date, "12
|
99
|
-
assert_equal Date.parse("12
|
100
|
-
assert_equal nil, Salesforce::Column.typecast(:datetime, "12
|
101
|
-
assert_equal
|
98
|
+
assert_equal nil, Salesforce::Column.typecast(:date, "9999-12-31")
|
99
|
+
assert_equal Date.parse("4000-12-30"), Salesforce::Column.typecast(:date, "4000-12-30")
|
100
|
+
assert_equal nil, Salesforce::Column.typecast(:datetime, "9999-12-31")
|
101
|
+
assert_equal nil, Salesforce::Column.typecast(:datetime, "4000-12-30")
|
102
102
|
end
|
103
103
|
|
104
104
|
def test_typecast__date_min
|
105
|
-
assert_equal nil, Salesforce::Column.typecast(:date, "
|
106
|
-
assert_equal
|
107
|
-
assert_equal nil, Salesforce::Column.typecast(:datetime, "12
|
108
|
-
assert_equal Date.parse("01/01/
|
105
|
+
assert_equal nil, Salesforce::Column.typecast(:date, "1699-13-31")
|
106
|
+
assert_equal nil, Salesforce::Column.typecast(:datetime, "1700-01-01")
|
107
|
+
assert_equal nil, Salesforce::Column.typecast(:datetime, "1699-12-31")
|
108
|
+
assert_equal Date.parse("01/01/1920").to_time, Salesforce::Column.typecast(:datetime, "1920-01-01")
|
109
109
|
end
|
110
110
|
|
111
111
|
def test_typecast__using_full_length_ids
|
@@ -126,4 +126,4 @@ class Salesforce::ColumnTest < ActiveSupport::TestCase
|
|
126
126
|
assert col1 != col3
|
127
127
|
end
|
128
128
|
|
129
|
-
end
|
129
|
+
end
|
@@ -16,7 +16,7 @@ class Salesforce.connection::AsyncTest < ActiveSupport::TestCase
|
|
16
16
|
assert_equal({'result' => 'foo'}, Salesforce.connection.async_post('path', :body, :format => :json))
|
17
17
|
end
|
18
18
|
|
19
|
-
def
|
19
|
+
def test_async_post__404_error_json
|
20
20
|
Salesforce::Authentication.stubs(:session_id).returns('session_id')
|
21
21
|
error = RestClient::BadRequest.new
|
22
22
|
error.stubs(:http_body).returns("[{\"message\":\"someproblem\",\"errorCode\":\"MALFORMED_QUERY\"}]")
|
@@ -134,7 +134,7 @@ class Salesforce.connection::HttpMethodsTest < ActiveSupport::TestCase
|
|
134
134
|
assert_equal({'result' => 'foo'}, Salesforce.connection.post('path', :body, :format => :json))
|
135
135
|
end
|
136
136
|
|
137
|
-
def
|
137
|
+
def test_post__404_error_json
|
138
138
|
Salesforce::Authentication.stubs(:session_id).returns('session_id')
|
139
139
|
error = RestClient::BadRequest.new
|
140
140
|
error.stubs(:http_body).returns("[{\"message\":\"someproblem\",\"errorCode\":\"MALFORMED_QUERY\"}]")
|
data/test/test_helper.rb
CHANGED
@@ -14,6 +14,8 @@ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
|
14
14
|
require 'activeforce'
|
15
15
|
Dir.glob(File.expand_path('../../app/models/salesforce/**.rb', __FILE__)).each { |file| require(file) }
|
16
16
|
|
17
|
+
require 'mocha/setup'
|
18
|
+
|
17
19
|
class Test::Unit::TestCase
|
18
20
|
end
|
19
21
|
|
metadata
CHANGED
@@ -1,170 +1,68 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: activeforce
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 1
|
8
|
-
- 7
|
9
|
-
- 1
|
10
|
-
version: 1.7.1
|
4
|
+
version: 1.8.0
|
11
5
|
platform: ruby
|
12
6
|
authors:
|
7
|
+
- Tushar Ranka
|
13
8
|
- Andrew Mutz
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
12
|
|
18
|
-
date:
|
13
|
+
date: 2013-08-27 00:00:00 Z
|
19
14
|
dependencies:
|
20
15
|
- !ruby/object:Gem::Dependency
|
16
|
+
type: :runtime
|
17
|
+
name: rails
|
21
18
|
version_requirements: &id001 !ruby/object:Gem::Requirement
|
22
|
-
none: false
|
23
19
|
requirements:
|
24
20
|
- - ">="
|
25
21
|
- !ruby/object:Gem::Version
|
26
|
-
|
27
|
-
segments:
|
28
|
-
- 0
|
29
|
-
version: "0"
|
22
|
+
version: "3.0"
|
30
23
|
requirement: *id001
|
31
24
|
prerelease: false
|
32
|
-
name: rails
|
33
|
-
type: :runtime
|
34
25
|
- !ruby/object:Gem::Dependency
|
26
|
+
type: :runtime
|
27
|
+
name: savon
|
35
28
|
version_requirements: &id002 !ruby/object:Gem::Requirement
|
36
|
-
none: false
|
37
29
|
requirements:
|
38
|
-
- -
|
30
|
+
- - ~>
|
39
31
|
- !ruby/object:Gem::Version
|
40
|
-
|
41
|
-
segments:
|
42
|
-
- 0
|
43
|
-
version: "0"
|
32
|
+
version: "1.0"
|
44
33
|
requirement: *id002
|
45
34
|
prerelease: false
|
46
|
-
name: savon
|
47
|
-
type: :runtime
|
48
35
|
- !ruby/object:Gem::Dependency
|
36
|
+
type: :runtime
|
37
|
+
name: blockenspiel
|
49
38
|
version_requirements: &id003 !ruby/object:Gem::Requirement
|
50
|
-
none: false
|
51
39
|
requirements:
|
52
|
-
-
|
40
|
+
- &id004
|
41
|
+
- ">="
|
53
42
|
- !ruby/object:Gem::Version
|
54
|
-
hash: 3
|
55
|
-
segments:
|
56
|
-
- 0
|
57
43
|
version: "0"
|
58
44
|
requirement: *id003
|
59
45
|
prerelease: false
|
60
|
-
name: blockenspiel
|
61
|
-
type: :runtime
|
62
46
|
- !ruby/object:Gem::Dependency
|
63
|
-
version_requirements: &id004 !ruby/object:Gem::Requirement
|
64
|
-
none: false
|
65
|
-
requirements:
|
66
|
-
- - ">="
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
hash: 3
|
69
|
-
segments:
|
70
|
-
- 0
|
71
|
-
version: "0"
|
72
|
-
requirement: *id004
|
73
|
-
prerelease: false
|
74
|
-
name: rest-client
|
75
47
|
type: :runtime
|
76
|
-
|
48
|
+
name: rest-client
|
77
49
|
version_requirements: &id005 !ruby/object:Gem::Requirement
|
78
|
-
none: false
|
79
50
|
requirements:
|
80
|
-
-
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
hash: 3
|
83
|
-
segments:
|
84
|
-
- 0
|
85
|
-
version: "0"
|
51
|
+
- *id004
|
86
52
|
requirement: *id005
|
87
53
|
prerelease: false
|
88
|
-
name: fastercsv
|
89
|
-
type: :runtime
|
90
54
|
- !ruby/object:Gem::Dependency
|
55
|
+
type: :runtime
|
56
|
+
name: fastercsv
|
91
57
|
version_requirements: &id006 !ruby/object:Gem::Requirement
|
92
|
-
none: false
|
93
58
|
requirements:
|
94
|
-
-
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
hash: 3
|
97
|
-
segments:
|
98
|
-
- 0
|
99
|
-
version: "0"
|
59
|
+
- *id004
|
100
60
|
requirement: *id006
|
101
61
|
prerelease: false
|
102
|
-
name: mocha
|
103
|
-
type: :development
|
104
|
-
- !ruby/object:Gem::Dependency
|
105
|
-
version_requirements: &id007 !ruby/object:Gem::Requirement
|
106
|
-
none: false
|
107
|
-
requirements:
|
108
|
-
- - ~>
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
hash: 7
|
111
|
-
segments:
|
112
|
-
- 0
|
113
|
-
- 6
|
114
|
-
- 0
|
115
|
-
version: 0.6.0
|
116
|
-
requirement: *id007
|
117
|
-
prerelease: false
|
118
|
-
name: yard
|
119
|
-
type: :development
|
120
|
-
- !ruby/object:Gem::Dependency
|
121
|
-
version_requirements: &id008 !ruby/object:Gem::Requirement
|
122
|
-
none: false
|
123
|
-
requirements:
|
124
|
-
- - ~>
|
125
|
-
- !ruby/object:Gem::Version
|
126
|
-
hash: 23
|
127
|
-
segments:
|
128
|
-
- 1
|
129
|
-
- 0
|
130
|
-
- 0
|
131
|
-
version: 1.0.0
|
132
|
-
requirement: *id008
|
133
|
-
prerelease: false
|
134
|
-
name: bundler
|
135
|
-
type: :development
|
136
|
-
- !ruby/object:Gem::Dependency
|
137
|
-
version_requirements: &id009 !ruby/object:Gem::Requirement
|
138
|
-
none: false
|
139
|
-
requirements:
|
140
|
-
- - ~>
|
141
|
-
- !ruby/object:Gem::Version
|
142
|
-
hash: 7
|
143
|
-
segments:
|
144
|
-
- 1
|
145
|
-
- 6
|
146
|
-
- 4
|
147
|
-
version: 1.6.4
|
148
|
-
requirement: *id009
|
149
|
-
prerelease: false
|
150
|
-
name: jeweler
|
151
|
-
type: :development
|
152
|
-
- !ruby/object:Gem::Dependency
|
153
|
-
version_requirements: &id010 !ruby/object:Gem::Requirement
|
154
|
-
none: false
|
155
|
-
requirements:
|
156
|
-
- - ">="
|
157
|
-
- !ruby/object:Gem::Version
|
158
|
-
hash: 3
|
159
|
-
segments:
|
160
|
-
- 0
|
161
|
-
version: "0"
|
162
|
-
requirement: *id010
|
163
|
-
prerelease: false
|
164
|
-
name: rcov
|
165
|
-
type: :development
|
166
62
|
description: " Activeforce provides a simple to use and extend interface to Salesforce using the REST API"
|
167
|
-
email:
|
63
|
+
email:
|
64
|
+
- tusharranka@gmail.com
|
65
|
+
- andrew.mutz@appfolio.com
|
168
66
|
executables: []
|
169
67
|
|
170
68
|
extensions: []
|
@@ -173,12 +71,12 @@ extra_rdoc_files:
|
|
173
71
|
- LICENSE.txt
|
174
72
|
- README.md
|
175
73
|
files:
|
74
|
+
- .gitignore
|
176
75
|
- Gemfile
|
177
76
|
- Gemfile.lock
|
178
77
|
- LICENSE.txt
|
179
78
|
- README.md
|
180
79
|
- Rakefile
|
181
|
-
- VERSION
|
182
80
|
- activeforce.gemspec
|
183
81
|
- app/models/salesforce/account.rb
|
184
82
|
- app/models/salesforce/activity_history.rb
|
@@ -228,6 +126,8 @@ files:
|
|
228
126
|
- app/models/salesforce/user_role.rb
|
229
127
|
- app/models/salesforce/vote.rb
|
230
128
|
- lib/activeforce.rb
|
129
|
+
- lib/activeforce/version.rb
|
130
|
+
- lib/ruby_187_range_extension.rb
|
231
131
|
- lib/salesforce/attributes.rb
|
232
132
|
- lib/salesforce/authentication.rb
|
233
133
|
- lib/salesforce/base.rb
|
@@ -261,35 +161,25 @@ files:
|
|
261
161
|
homepage: http://github.com/appfolio/activeforce
|
262
162
|
licenses:
|
263
163
|
- MIT
|
164
|
+
metadata: {}
|
165
|
+
|
264
166
|
post_install_message:
|
265
167
|
rdoc_options: []
|
266
168
|
|
267
169
|
require_paths:
|
268
170
|
- lib
|
269
171
|
required_ruby_version: !ruby/object:Gem::Requirement
|
270
|
-
none: false
|
271
172
|
requirements:
|
272
|
-
-
|
273
|
-
- !ruby/object:Gem::Version
|
274
|
-
hash: 3
|
275
|
-
segments:
|
276
|
-
- 0
|
277
|
-
version: "0"
|
173
|
+
- *id004
|
278
174
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
279
|
-
none: false
|
280
175
|
requirements:
|
281
|
-
-
|
282
|
-
- !ruby/object:Gem::Version
|
283
|
-
hash: 3
|
284
|
-
segments:
|
285
|
-
- 0
|
286
|
-
version: "0"
|
176
|
+
- *id004
|
287
177
|
requirements: []
|
288
178
|
|
289
179
|
rubyforge_project:
|
290
|
-
rubygems_version:
|
180
|
+
rubygems_version: 2.0.6
|
291
181
|
signing_key:
|
292
|
-
specification_version:
|
182
|
+
specification_version: 4
|
293
183
|
summary: A Simple gem to interact with the Salesforce REST API
|
294
184
|
test_files: []
|
295
185
|
|
data/VERSION
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
1.7.1
|