activeforce 1.10.5 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -36,6 +36,7 @@ class Salesforce::Connection::SoapApiTest < ActiveSupport::TestCase
36
36
 
37
37
  def test_invoke_soap__not_login__success
38
38
  options = {
39
+ :endpoint_url => Salesforce::Config.login_url,
39
40
  :body => :soap_body,
40
41
  :other_option => 'foo'
41
42
  }
@@ -50,29 +51,31 @@ class Salesforce::Connection::SoapApiTest < ActiveSupport::TestCase
50
51
  }
51
52
 
52
53
  expected_result = result[:not_login_response][:result]
53
-
54
- soap_client_mock = mock
55
- Salesforce.connection.expects(:soap_client).with(options).returns(soap_client_mock)
54
+
55
+ # stub savon
56
+ stub_response = stub(:http => stub(:code => 200, :headers => {}, :cookies => []), :body => result)
57
+ stub_response.stubs(:kind_of?).returns(true)
58
+
59
+ Savon::Operation.any_instance.stubs(:create_response).returns(stub_response)
60
+
61
+ HTTPI.stubs(:post).with do |request, _|
62
+ assert_includes request.body, "xmlns:ns1=\"soap:enterprise:namespace\""
63
+ xml_doc = Nokogiri::XML(request.body)
64
+ assert_equal 'soap_body', xml_doc.xpath('//wsdl:notLogin/text()').to_s
65
+ assert_equal 'boyahh_session_id', xml_doc.xpath('//env:Header/ns1:SessionHeader/ns1:sessionId/text()').to_s
66
+ assert_equal '"notLogin"', request.headers['SOAPAction']
67
+ assert_equal Salesforce::Config.login_url, request.url.to_s
68
+ end.returns(stub_response)
56
69
 
57
70
  Salesforce::Config.stubs(:session_id).returns('boyahh_session_id')
58
71
  Salesforce::Config.stubs(:soap_enterprise_namespace).returns('soap:enterprise:namespace')
59
-
60
- soap_mock = mock
61
- soap_mock.expects(:body=).with(:soap_body)
62
- soap_mock.expects(:header=).with({ "ns1:SessionHeader" => { "ns1:sessionId" => 'boyahh_session_id' }})
63
-
64
-
65
- namespaces_mock = mock
66
- namespaces_mock.expects(:[]=).with("xmlns:ns1", 'soap:enterprise:namespace')
67
- soap_mock.expects(:namespaces).returns(namespaces_mock)
68
-
69
- soap_client_mock.expects(:request).with(:wsdl, :notLogin).yields(soap_mock).returns(mock(:to_hash => result))
70
72
 
71
73
  assert_equal expected_result, Salesforce.connection.send(:invoke_soap, :notLogin, options)
72
74
  end
73
75
 
74
76
  def test_invoke_soap__not_login__not_success
75
77
  options = {
78
+ :endpoint_url => Salesforce::Config.login_url,
76
79
  :body => :soap_body,
77
80
  :other_option => 'foo'
78
81
  }
@@ -85,23 +88,24 @@ class Salesforce::Connection::SoapApiTest < ActiveSupport::TestCase
85
88
  }
86
89
  }
87
90
  }
88
-
89
- soap_client_mock = mock
90
- Salesforce.connection.expects(:soap_client).with(options).returns(soap_client_mock)
91
+
92
+ # stub savon
93
+ stub_response = stub(:http => stub(:code => 200, :headers => {}, :cookies => []), :body => result)
94
+ stub_response.stubs(:kind_of?).returns(true)
95
+
96
+ Savon::Operation.any_instance.stubs(:create_response).returns(stub_response)
97
+
98
+ HTTPI.stubs(:post).with do |request, _|
99
+ assert_includes request.body, "xmlns:ns1=\"soap:enterprise:namespace\""
100
+ xml_doc = Nokogiri::XML(request.body)
101
+ assert_equal 'soap_body', xml_doc.xpath('//wsdl:notLogin/text()').to_s
102
+ assert_equal 'boyahh_session_id', xml_doc.xpath('//env:Header/ns1:SessionHeader/ns1:sessionId/text()').to_s
103
+ assert_equal '"notLogin"', request.headers['SOAPAction']
104
+ assert_equal Salesforce::Config.login_url, request.url.to_s
105
+ end.returns(stub_response)
91
106
 
92
107
  Salesforce::Config.stubs(:session_id).returns('boyahh_session_id')
93
108
  Salesforce::Config.stubs(:soap_enterprise_namespace).returns('soap:enterprise:namespace')
94
-
95
- soap_mock = mock
96
- soap_mock.expects(:body=).with(:soap_body)
97
- soap_mock.expects(:header=).with({ "ns1:SessionHeader" => { "ns1:sessionId" => 'boyahh_session_id' }})
98
-
99
-
100
- namespaces_mock = mock
101
- namespaces_mock.expects(:[]=).with("xmlns:ns1", 'soap:enterprise:namespace')
102
- soap_mock.expects(:namespaces).returns(namespaces_mock)
103
-
104
- soap_client_mock.expects(:request).with(:wsdl, :notLogin).yields(soap_mock).returns(mock(:to_hash => result))
105
109
 
106
110
  assert_raises Salesforce::Connection::SoapApi::Error do
107
111
  Salesforce.connection.send(:invoke_soap, :notLogin, options)
@@ -110,6 +114,7 @@ class Salesforce::Connection::SoapApiTest < ActiveSupport::TestCase
110
114
 
111
115
  def test_invoke_soap__login
112
116
  options = {
117
+ :endpoint_url => Salesforce::Config.login_url,
113
118
  :body => :soap_body,
114
119
  :other_option => 'foo'
115
120
  }
@@ -123,13 +128,21 @@ class Salesforce::Connection::SoapApiTest < ActiveSupport::TestCase
123
128
  }
124
129
 
125
130
  expected_result = result[:login_response][:result]
126
-
127
- soap_client_mock = mock
128
- Salesforce.connection.expects(:soap_client).with(options).returns(soap_client_mock)
129
131
 
130
- soap_mock = mock
131
- soap_mock.expects(:body=).with(:soap_body)
132
- soap_client_mock.expects(:request).with(:wsdl, :login).yields(soap_mock).returns(mock(:to_hash => result))
132
+ stub_response = stub(:http => stub(:code => 200, :headers => {}, :cookies => []), :body => result)
133
+ stub_response.stubs(:kind_of?).returns(true)
134
+
135
+ Savon::Operation.any_instance.stubs(:create_response).returns(stub_response)
136
+
137
+ HTTPI.stubs(:post).with do |request, _|
138
+ xml_doc = Nokogiri::XML(request.body)
139
+ assert_equal 'soap_body', xml_doc.xpath('//wsdl:login/text()').to_s
140
+ assert_equal '"login"', request.headers['SOAPAction']
141
+ assert_equal Salesforce::Config.login_url, request.url.to_s
142
+ end.returns(stub_response)
143
+
144
+ Salesforce::Config.stubs(:session_id).returns('boyahh_session_id')
145
+ Salesforce::Config.stubs(:soap_enterprise_namespace).returns('soap:enterprise:namespace')
133
146
 
134
147
  assert_equal expected_result, Salesforce.connection.send(:invoke_soap, :login, options)
135
148
  end
@@ -137,12 +150,12 @@ class Salesforce::Connection::SoapApiTest < ActiveSupport::TestCase
137
150
  def test_soap_client
138
151
  options = {
139
152
  :namespace => 'my:name:space',
140
- :endpoint_url => 'https://my.endpoint.url.com'
153
+ :endpoint => 'https://my.endpoint.url.com'
141
154
  }
142
155
 
143
156
  client = Salesforce.connection.send(:soap_client, options)
144
- assert_equal 'https://my.endpoint.url.com', client.wsdl.endpoint
145
- assert_equal 'my:name:space', client.wsdl.namespace
157
+ assert_equal 'https://my.endpoint.url.com', client.globals[:endpoint]
158
+ assert_equal 'my:name:space', client.globals[:namespace]
146
159
  end
147
160
 
148
- end
161
+ end
@@ -5,20 +5,20 @@ class Salesforce::ConnectionTest < ActiveSupport::TestCase
5
5
  Salesforce.connection.expects(:get).with("query.json?q=SELECT+Id+FROM+Account", :format => :json).returns({ "records" => [{ :record => 1, "attributes" => 'foo'}], "done" => true, "totalSize" => 1999})
6
6
  assert_equal [{ :record => 1 }], Salesforce.connection.soql("SELECT Id FROM Account")
7
7
  end
8
-
8
+
9
9
  def test_query__more_than_2000_records
10
- Salesforce.connection.expects(:get).with("query.json?q=SELECT+Id+FROM+Account", :format => :json).returns({
10
+ Salesforce.connection.expects(:get).with("query.json?q=SELECT+Id+FROM+Account", :format => :json).returns({
11
11
  "records" => [ { :record => 1, "attributes" => "foo" } ], "done" => false, "totalSize" => 4999, "nextRecordsUrl" =>"/services/data/v22.0/query/01g8000000L9FSmAAN-2000"})
12
-
13
- Salesforce.connection.expects(:get).with("/services/data/v22.0/query/01g8000000L9FSmAAN-2000.json", :format => :json).returns({
12
+
13
+ Salesforce.connection.expects(:get).with("/services/data/v22.0/query/01g8000000L9FSmAAN-2000.json", :format => :json).returns({
14
14
  "records" => [ { :record => 2, "attributes" => "foo" } ], "done" => false, "totalSize" => 4999, "nextRecordsUrl" =>"/services/data/v22.0/query/01g8000000L9FSmAAN-4000"})
15
15
 
16
- Salesforce.connection.expects(:get).with("/services/data/v22.0/query/01g8000000L9FSmAAN-4000.json", :format => :json).returns({
16
+ Salesforce.connection.expects(:get).with("/services/data/v22.0/query/01g8000000L9FSmAAN-4000.json", :format => :json).returns({
17
17
  "records" => [ { :record => 3, "attributes" => "foo" } ], "done" => true, "totalSize" => 4999})
18
-
18
+
19
19
  assert_equal [{ :record => 1}, { :record => 2}, { :record => 3}], Salesforce.connection.soql("SELECT Id FROM Account")
20
20
  end
21
-
21
+
22
22
  def test_as_logged_in_user__login_succeeded__calls_block
23
23
  Salesforce::Authentication.expects(:session_id)
24
24
  results = Salesforce.connection.as_logged_in_user do
@@ -26,12 +26,12 @@ class Salesforce::ConnectionTest < ActiveSupport::TestCase
26
26
  end
27
27
  assert_equal :results, results
28
28
  end
29
-
29
+
30
30
  def test_as_logged_in_user__logged_out__recovers
31
31
  flag = nil
32
32
  Salesforce::Authentication.expects(:session_id).twice
33
33
  Salesforce::Authentication.expects(:logout)
34
- error = RestClient::Unauthorized.new
34
+ error = RestClient::Request::Unauthorized.new
35
35
  results = Salesforce.connection.as_logged_in_user do
36
36
  unless flag
37
37
  flag = true
@@ -41,32 +41,32 @@ class Salesforce::ConnectionTest < ActiveSupport::TestCase
41
41
  end
42
42
  assert_equal :results, results
43
43
  end
44
-
44
+
45
45
  def test_as_logged_in_user__authorization_failure
46
46
  flag = nil
47
47
  Salesforce::Authentication.expects(:session_id).times(2)
48
48
  Salesforce::Authentication.expects(:logout)
49
- error = RestClient::Unauthorized.new
50
- assert_raises RestClient::Unauthorized do
49
+ error = RestClient::Request::Unauthorized.new
50
+ assert_raises RestClient::Request::Unauthorized do
51
51
  Salesforce.connection.as_logged_in_user do
52
52
  raise error
53
53
  end
54
54
  end
55
55
  end
56
-
56
+
57
57
  def test_as_logged_in_user__invalid_username_password__recovers
58
58
  on_login_failure_called = false
59
59
 
60
- Salesforce.configure do
60
+ Salesforce.configure do
61
61
  on_login_failure { on_login_failure_called = true }
62
62
  end
63
-
63
+
64
64
  xml = <<-XML
65
65
  <?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><soapenv:Fault xmlns:fns="http://fault.api.zuora.com/"><faultcode>sf:INVALID_LOGIN</faultcode><faultstring>INVALID_LOGIN: Invalid username, password, security token; or user locked out.</faultstring><detail><fns:LoginFault><fns:FaultCode>INVALID_LOGIN</fns:FaultCode><fns:FaultMessage>Invalid username, password, security token; or user locked out.</fns:FaultMessage></fns:LoginFault></detail></soapenv:Fault></soapenv:Body></soapenv:Envelope>
66
66
  XML
67
67
 
68
- error = Savon::SOAP::Fault.new(stub(:body => xml))
69
-
68
+ error = Savon::SOAPFault.new(stub(:body => xml), Nori.new, xml)
69
+
70
70
  flag = nil
71
71
  Salesforce::Authentication.expects(:session_id).twice
72
72
  Salesforce::Authentication.expects(:logout)
@@ -77,29 +77,29 @@ class Salesforce::ConnectionTest < ActiveSupport::TestCase
77
77
  end
78
78
  :results
79
79
  end
80
-
80
+
81
81
  assert_equal :results, results
82
82
  assert on_login_failure_called, "Salesforce::Config.on_login_failure was not called upon login failure"
83
83
  end
84
-
84
+
85
85
  def test_as_logged_in_user__invalid_username_password__doesnt_recover
86
86
  on_login_failure_called = 0
87
87
 
88
- Salesforce.configure do
88
+ Salesforce.configure do
89
89
  on_login_failure { on_login_failure_called += 1 }
90
90
  end
91
-
91
+
92
92
  xml = <<-XML
93
93
  <?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><soapenv:Fault xmlns:fns="http://fault.api.zuora.com/"><faultcode>sf:INVALID_LOGIN</faultcode><faultstring>INVALID_LOGIN: Invalid username, password, security token; or user locked out.</faultstring><detail><fns:LoginFault><fns:FaultCode>INVALID_LOGIN</fns:FaultCode><fns:FaultMessage>Invalid username, password, security token; or user locked out.</fns:FaultMessage></fns:LoginFault></detail></soapenv:Fault></soapenv:Body></soapenv:Envelope>
94
94
  XML
95
95
 
96
- error = Savon::SOAP::Fault.new(stub(:body => xml))
97
-
96
+ error = Savon::SOAPFault.new(stub(:body => xml), Nori.new, xml)
97
+
98
98
  flag = nil
99
99
  Salesforce::Authentication.expects(:session_id).twice
100
100
  Salesforce::Authentication.expects(:logout)
101
-
102
- assert_raises Savon::SOAP::Fault do
101
+
102
+ assert_raises Savon::SOAPFault do
103
103
  Salesforce.connection.as_logged_in_user do
104
104
  raise error
105
105
  end
@@ -107,14 +107,14 @@ class Salesforce::ConnectionTest < ActiveSupport::TestCase
107
107
 
108
108
  assert_equal 1, on_login_failure_called, "Salesforce::Config.on_login_failure was not called upon login failure"
109
109
  end
110
-
110
+
111
111
  def test_as_logged_in_user__invalid_username_password__recovers__no_on_login_failure_hook
112
112
  xml = <<-XML
113
113
  <?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><soapenv:Fault xmlns:fns="http://fault.api.zuora.com/"><faultcode>sf:INVALID_LOGIN</faultcode><faultstring>INVALID_LOGIN: Invalid username, password, security token; or user locked out.</faultstring><detail><fns:LoginFault><fns:FaultCode>INVALID_LOGIN</fns:FaultCode><fns:FaultMessage>Invalid username, password, security token; or user locked out.</fns:FaultMessage></fns:LoginFault></detail></soapenv:Fault></soapenv:Body></soapenv:Envelope>
114
114
  XML
115
115
 
116
- error = Savon::SOAP::Fault.new(stub(:body => xml))
117
-
116
+ error = Savon::SOAPFault.new(stub(:body => xml), Nori.new, xml)
117
+
118
118
  flag = nil
119
119
  Salesforce::Authentication.expects(:session_id).twice
120
120
  Salesforce::Authentication.expects(:logout)
@@ -125,15 +125,15 @@ class Salesforce::ConnectionTest < ActiveSupport::TestCase
125
125
  end
126
126
  :results
127
127
  end
128
-
128
+
129
129
  assert_equal :results, results
130
130
  end
131
-
131
+
132
132
  def test_as_logged_in_user__other_failure
133
133
  Salesforce::Authentication.stubs(:session_id)
134
134
  Salesforce::Authentication.stubs(:logout)
135
135
 
136
- expects(:my_method).twice.raises(RestClient::Unauthorized.new).then.raises(StandardError.new("some other error"))
136
+ expects(:my_method).twice.raises(RestClient::Request::Unauthorized.new).then.raises(StandardError.new("some other error"))
137
137
 
138
138
  assert_raises StandardError do
139
139
  Salesforce.connection.as_logged_in_user do
@@ -141,14 +141,8 @@ class Salesforce::ConnectionTest < ActiveSupport::TestCase
141
141
  end
142
142
  end
143
143
  end
144
-
144
+
145
145
  def test_convert
146
146
  assert_equal "str", Salesforce.connection.convert("str", {})
147
147
  end
148
-
149
- private
150
-
151
- def my_method
152
- # Defined so it can be stubbed in a test
153
- end
154
148
  end
data/test/test_helper.rb CHANGED
@@ -15,14 +15,14 @@ require 'activeforce'
15
15
  Dir.glob(File.expand_path('../../app/models/salesforce/**.rb', __FILE__)).each { |file| require(file) }
16
16
 
17
17
  require 'mocha/setup'
18
- Mocha::Configuration.prevent(:stubbing_non_existent_method)
18
+
19
19
 
20
20
  Time.zone = 'America/Los_Angeles'
21
21
 
22
22
  class ActiveSupport::TestCase
23
23
  setup :clean_configuration
24
24
  setup :stub_soap
25
-
25
+
26
26
  class ::Salesforce::BulkTable < Salesforce::Base
27
27
  self.custom_object = true
28
28
  end
@@ -30,50 +30,50 @@ class ActiveSupport::TestCase
30
30
  def clean_configuration
31
31
  Salesforce::Config.instance_variable_set(:@instance, nil)
32
32
  end
33
-
33
+
34
34
  def stub_soap
35
- Mocha::Configuration.allow(:stubbing_non_existent_method) do
36
- Savon::Client.any_instance.stubs(:request)
37
- end
35
+ Savon::Client.any_instance.stubs(:request)
38
36
  end
39
-
37
+
40
38
  def clear_columns_for_bulk_table
41
39
  Salesforce::BulkTable.cached_columns = nil
42
40
  end
43
-
41
+
44
42
  def clear_columns_for_account
45
43
  Salesforce::Account.cached_columns = nil
46
44
  end
47
-
45
+
48
46
  def setup_columns_for_bulk_table
49
47
  clear_columns_for_bulk_table
50
- columns_hash = [
51
- { "name" => "Id", "type" => "id", "createable" => false, "updateable" => false},
52
- { "name" => "Account__c", "type" => "reference", "createable" => true, "updateable" => false, "custom" => true },
48
+ columns_hash = [
49
+ { "name" => "Id", "type" => "id", "createable" => false, "updateable" => false},
50
+ { "name" => "Account__c", "type" => "reference", "createable" => true, "updateable" => false, "custom" => true },
53
51
  { "name" => "Car__c", "type" => "reference", "createable" => false, "updateable" => true, "custom" => true},
54
52
  { "name" => "Name__c", "type" => "string", "createable" => true, "updateable" => true, "custom" => true},
55
- { "name" => "dob__c", "type" => "date", "createable" => true, "updateable" => true, "custom" => true}
53
+ { "name" => "dob__c", "type" => "date", "createable" => true, "updateable" => true, "custom" => true}
56
54
  ]
57
-
55
+
58
56
  Salesforce.connection.stubs(:fields).with("BulkTable__c").returns(columns_hash).twice
59
57
  columns = Salesforce::Columns.new("BulkTable__c")
60
58
  assert_equal columns, Salesforce::BulkTable.columns
61
59
  end
62
-
60
+
63
61
  def setup_columns_for_account
64
62
  clear_columns_for_account
65
- columns_hash = [
66
- { "name" => "Id", "type" => "id", "createable" => false, "updateable" => false},
67
- { "name" => "Name", "type" => "string", "createable" => true, "updateable" => true},
68
- { "name" => "Type", "type" => "string", "createable" => true, "updateable" => true},
69
- { "name" => "Address", "type" => "string", "createable" => true, "updateable" => true},
70
- { "name" => "City", "type" => "string", "createable" => true, "updateable" => true},
63
+ columns_hash = [
64
+ { "name" => "Id", "type" => "id", "createable" => false, "updateable" => false},
65
+ { "name" => "Name", "type" => "string", "createable" => true, "updateable" => true},
66
+ { "name" => "Type", "type" => "string", "createable" => true, "updateable" => true},
67
+ { "name" => "Address", "type" => "string", "createable" => true, "updateable" => true},
68
+ { "name" => "City", "type" => "string", "createable" => true, "updateable" => true},
71
69
  { "name" => "State", "type" => "string", "createable" => true, "updateable" => true},
72
70
  { "name" => "Number", "type" => "string", "createable" => true, "updateable" => false}
73
71
  ]
74
-
72
+
75
73
  Salesforce.connection.stubs(:fields).with("Account").returns(columns_hash).twice
76
74
  columns = Salesforce::Columns.new("Account")
77
75
  assert_equal columns, Salesforce::Account.columns
78
76
  end
77
+
78
+
79
79
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activeforce
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.10.5
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tushar Ranka
@@ -17,34 +17,34 @@ dependencies:
17
17
  requirements:
18
18
  - - ">="
19
19
  - !ruby/object:Gem::Version
20
- version: '4.2'
20
+ version: '4.0'
21
21
  - - "<"
22
22
  - !ruby/object:Gem::Version
23
- version: '6.1'
23
+ version: '5.0'
24
24
  type: :runtime
25
25
  prerelease: false
26
26
  version_requirements: !ruby/object:Gem::Requirement
27
27
  requirements:
28
28
  - - ">="
29
29
  - !ruby/object:Gem::Version
30
- version: '4.2'
30
+ version: '4.0'
31
31
  - - "<"
32
32
  - !ruby/object:Gem::Version
33
- version: '6.1'
33
+ version: '5.0'
34
34
  - !ruby/object:Gem::Dependency
35
35
  name: savon
36
36
  requirement: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '1.0'
40
+ version: '2.11'
41
41
  type: :runtime
42
42
  prerelease: false
43
43
  version_requirements: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '1.0'
47
+ version: '2.11'
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: blockenspiel
50
50
  requirement: !ruby/object:Gem::Requirement
@@ -63,14 +63,20 @@ dependencies:
63
63
  name: rest-client
64
64
  requirement: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - - "<"
67
70
  - !ruby/object:Gem::Version
68
71
  version: '2.0'
69
72
  type: :runtime
70
73
  prerelease: false
71
74
  version_requirements: !ruby/object:Gem::Requirement
72
75
  requirements:
73
- - - "~>"
76
+ - - ">="
77
+ - !ruby/object:Gem::Version
78
+ version: '0'
79
+ - - "<"
74
80
  - !ruby/object:Gem::Version
75
81
  version: '2.0'
76
82
  - !ruby/object:Gem::Dependency
@@ -90,6 +96,7 @@ dependencies:
90
96
  description: " Activeforce provides a simple to use and extend interface to Salesforce
91
97
  using the REST API"
92
98
  email:
99
+ - tusharranka@gmail.com
93
100
  - andrew.mutz@appfolio.com
94
101
  executables: []
95
102
  extensions: []
@@ -152,9 +159,9 @@ files:
152
159
  - app/models/salesforce/user.rb
153
160
  - app/models/salesforce/user_role.rb
154
161
  - app/models/salesforce/vote.rb
155
- - gemfiles/5.0.gemfile
156
- - gemfiles/5.2.gemfile
157
- - gemfiles/6.0.gemfile
162
+ - gemfiles/4.0.gemfile
163
+ - gemfiles/4.1.gemfile
164
+ - gemfiles/4.2.gemfile
158
165
  - lib/activeforce.rb
159
166
  - lib/activeforce/version.rb
160
167
  - lib/ruby_187_range_extension.rb
@@ -202,14 +209,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
202
209
  requirements:
203
210
  - - ">="
204
211
  - !ruby/object:Gem::Version
205
- version: '2.3'
212
+ version: '2.0'
206
213
  required_rubygems_version: !ruby/object:Gem::Requirement
207
214
  requirements:
208
215
  - - ">="
209
216
  - !ruby/object:Gem::Version
210
217
  version: '0'
211
218
  requirements: []
212
- rubygems_version: 3.0.3
219
+ rubyforge_project:
220
+ rubygems_version: 2.5.1
213
221
  signing_key:
214
222
  specification_version: 4
215
223
  summary: A Simple gem to interact with the Salesforce REST API