sfdc 3.0.0 → 3.0.1

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.
Files changed (97) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +96 -0
  3. data/Gemfile +11 -0
  4. data/Guardfile +11 -0
  5. data/LICENSE +22 -0
  6. data/README.md +88 -98
  7. data/Rakefile +10 -0
  8. data/lib/sfdc.rb +1 -0
  9. data/lib/sfdc/abstract_client.rb +1 -1
  10. data/lib/sfdc/attachment.rb +0 -2
  11. data/lib/sfdc/concerns/api.rb +1 -2
  12. data/lib/sfdc/concerns/authentication.rb +1 -2
  13. data/lib/sfdc/concerns/base.rb +5 -7
  14. data/lib/sfdc/concerns/caching.rb +1 -3
  15. data/lib/sfdc/concerns/canvas.rb +0 -2
  16. data/lib/sfdc/concerns/connection.rb +2 -3
  17. data/lib/sfdc/concerns/picklists.rb +1 -4
  18. data/lib/sfdc/concerns/streaming.rb +2 -2
  19. data/lib/sfdc/concerns/verbs.rb +0 -2
  20. data/lib/sfdc/config.rb +1 -0
  21. data/lib/sfdc/middleware/authentication.rb +4 -2
  22. data/lib/sfdc/middleware/authentication/password.rb +2 -5
  23. data/lib/sfdc/middleware/authorization.rb +1 -5
  24. data/lib/sfdc/middleware/caching.rb +0 -2
  25. data/lib/sfdc/middleware/instance_url.rb +0 -4
  26. data/lib/sfdc/middleware/mashify.rb +1 -3
  27. data/lib/sfdc/middleware/multipart.rb +6 -4
  28. data/lib/sfdc/signed_request.rb +1 -1
  29. data/lib/sfdc/tooling/client.rb +4 -6
  30. data/lib/sfdc/version.rb +2 -2
  31. data/sfdc.gemspec +27 -0
  32. data/spec/fixtures/auth_error_response.json +4 -0
  33. data/spec/fixtures/auth_success_response.json +7 -0
  34. data/spec/fixtures/blob.jpg +0 -0
  35. data/spec/fixtures/expired_session_response.json +6 -0
  36. data/spec/fixtures/reauth_success_response.json +7 -0
  37. data/spec/fixtures/refresh_error_response.json +4 -0
  38. data/spec/fixtures/refresh_success_response.json +7 -0
  39. data/spec/fixtures/services_data_success_response.json +12 -0
  40. data/spec/fixtures/sobject/create_success_response.json +5 -0
  41. data/spec/fixtures/sobject/delete_error_response.json +1 -0
  42. data/spec/fixtures/sobject/describe_sobjects_success_response.json +31 -0
  43. data/spec/fixtures/sobject/list_sobjects_success_response.json +31 -0
  44. data/spec/fixtures/sobject/org_query_response.json +11 -0
  45. data/spec/fixtures/sobject/query_aggregate_success_response.json +23 -0
  46. data/spec/fixtures/sobject/query_empty_response.json +5 -0
  47. data/spec/fixtures/sobject/query_error_response.json +6 -0
  48. data/spec/fixtures/sobject/query_paginated_first_page_response.json +14 -0
  49. data/spec/fixtures/sobject/query_paginated_last_page_response.json +13 -0
  50. data/spec/fixtures/sobject/query_success_response.json +38 -0
  51. data/spec/fixtures/sobject/recent_success_response.json +18 -0
  52. data/spec/fixtures/sobject/search_error_response.json +6 -0
  53. data/spec/fixtures/sobject/search_success_response.json +16 -0
  54. data/spec/fixtures/sobject/sobject_describe_error_response.json +6 -0
  55. data/spec/fixtures/sobject/sobject_describe_success_response.json +1429 -0
  56. data/spec/fixtures/sobject/sobject_find_error_response.json +6 -0
  57. data/spec/fixtures/sobject/sobject_find_success_response.json +29 -0
  58. data/spec/fixtures/sobject/upsert_created_success_response.json +5 -0
  59. data/spec/fixtures/sobject/upsert_error_response.json +6 -0
  60. data/spec/fixtures/sobject/upsert_multiple_error_response.json +4 -0
  61. data/spec/fixtures/sobject/upsert_updated_success_response.json +0 -0
  62. data/spec/fixtures/sobject/write_error_response.json +6 -0
  63. data/spec/integration/abstract_client_spec.rb +306 -0
  64. data/spec/integration/data/client_spec.rb +90 -0
  65. data/spec/spec_helper.rb +20 -0
  66. data/spec/support/client_integration.rb +45 -0
  67. data/spec/support/concerns.rb +18 -0
  68. data/spec/support/event_machine.rb +14 -0
  69. data/spec/support/fixture_helpers.rb +45 -0
  70. data/spec/support/matchers.rb +11 -0
  71. data/spec/support/middleware.rb +76 -0
  72. data/spec/support/mock_cache.rb +13 -0
  73. data/spec/unit/abstract_client_spec.rb +11 -0
  74. data/spec/unit/attachment_spec.rb +15 -0
  75. data/spec/unit/collection_spec.rb +52 -0
  76. data/spec/unit/concerns/api_spec.rb +244 -0
  77. data/spec/unit/concerns/authentication_spec.rb +98 -0
  78. data/spec/unit/concerns/base_spec.rb +42 -0
  79. data/spec/unit/concerns/caching_spec.rb +29 -0
  80. data/spec/unit/concerns/canvas_spec.rb +30 -0
  81. data/spec/unit/concerns/connection_spec.rb +22 -0
  82. data/spec/unit/config_spec.rb +99 -0
  83. data/spec/unit/data/client_spec.rb +10 -0
  84. data/spec/unit/mash_spec.rb +36 -0
  85. data/spec/unit/middleware/authentication/password_spec.rb +31 -0
  86. data/spec/unit/middleware/authentication/token_spec.rb +24 -0
  87. data/spec/unit/middleware/authentication_spec.rb +67 -0
  88. data/spec/unit/middleware/authorization_spec.rb +11 -0
  89. data/spec/unit/middleware/gzip_spec.rb +66 -0
  90. data/spec/unit/middleware/instance_url_spec.rb +24 -0
  91. data/spec/unit/middleware/logger_spec.rb +19 -0
  92. data/spec/unit/middleware/mashify_spec.rb +11 -0
  93. data/spec/unit/middleware/raise_error_spec.rb +32 -0
  94. data/spec/unit/signed_request_spec.rb +24 -0
  95. data/spec/unit/sobject_spec.rb +86 -0
  96. data/spec/unit/tooling/client_spec.rb +7 -0
  97. metadata +225 -65
@@ -0,0 +1,11 @@
1
+ require 'spec_helper'
2
+
3
+ describe Sfdc::Middleware::Authorization do
4
+ let(:options) { { :oauth_token => 'token' } }
5
+
6
+ describe '.call' do
7
+ subject { lambda { middleware.call(env) } }
8
+
9
+ it { should change { env[:request_headers]['Authorization'] }.to eq 'OAuth token' }
10
+ end
11
+ end
@@ -0,0 +1,66 @@
1
+ require 'spec_helper'
2
+
3
+ describe Sfdc::Middleware::Gzip do
4
+ let(:options) { { :oauth_token => 'token' } }
5
+
6
+ # Return a gzipped string.
7
+ def gzip(str)
8
+ StringIO.new.tap do |io|
9
+ gz = Zlib::GzipWriter.new(io)
10
+ gz.write(str)
11
+ gz.close
12
+ end.string
13
+ end
14
+
15
+ describe '.call' do
16
+ subject { lambda { middleware.call(env) } }
17
+
18
+ before do
19
+ app.should_receive(:on_complete) { middleware.on_complete(env) }
20
+ app.should_receive(:call) do
21
+ env[:body] = gzip fixture('sobject/query_success_response')
22
+ env[:response_headers]['Content-Encoding'] = 'gzip'
23
+ app
24
+ end
25
+ end
26
+
27
+ it 'decompresses the body' do
28
+ should change { env[:body] }.to(fixture('sobject/query_success_response'))
29
+ end
30
+
31
+ context 'when :compress is false' do
32
+ it { should_not change { env[:request_headers]['Accept-Encoding'] } }
33
+ end
34
+
35
+ context 'when :compress is true' do
36
+ before do
37
+ options[:compress] = true
38
+ end
39
+
40
+ it { should change { env[:request_headers]['Accept-Encoding'] }.to('gzip') }
41
+ end
42
+ end
43
+
44
+ describe '.decompress' do
45
+ let(:body) { gzip fixture('sobject/query_success_response') }
46
+
47
+ subject { middleware.decompress(body) }
48
+ it { should eq fixture('sobject/query_success_response') }
49
+ end
50
+
51
+ describe '.gzipped?' do
52
+ subject { middleware.gzipped?(env) }
53
+
54
+ context 'when gzipped' do
55
+ before do
56
+ env[:response_headers]['Content-Encoding'] = 'gzip'
57
+ end
58
+
59
+ it { should be_true }
60
+ end
61
+
62
+ context 'when not gzipped' do
63
+ it { should be_false }
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,24 @@
1
+ require 'spec_helper'
2
+
3
+ describe Sfdc::Middleware::InstanceURL do
4
+ describe '.call' do
5
+ subject { lambda { middleware.call(nil) } }
6
+
7
+ context 'when the instance url is not set' do
8
+ before do
9
+ client.stub_chain :connection, :url_prefix => URI.parse('http:/')
10
+ end
11
+
12
+ it { should raise_error Sfdc::UnauthorizedError }
13
+ end
14
+
15
+ context 'when the instance url is set' do
16
+ before do
17
+ client.stub_chain :connection, :url_prefix => URI.parse('http://foobar.com/')
18
+ app.should_receive(:call).once
19
+ end
20
+
21
+ it { should_not raise_error }
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,19 @@
1
+ require 'spec_helper'
2
+
3
+ describe Sfdc::Middleware::Logger do
4
+ let(:logger) { double('logger') }
5
+ let(:middleware) { described_class.new app, logger, options }
6
+
7
+ describe '.call' do
8
+ subject { lambda { middleware.call(env) } }
9
+
10
+ before do
11
+ app.should_receive(:call).once.and_return(app)
12
+ app.should_receive(:on_complete).once { middleware.on_complete(env) }
13
+ logger.should_receive(:debug).with('request')
14
+ logger.should_receive(:debug).with('response')
15
+ end
16
+
17
+ it { should_not raise_error }
18
+ end
19
+ end
@@ -0,0 +1,11 @@
1
+ require 'spec_helper'
2
+
3
+ describe Sfdc::Middleware::Mashify do
4
+ let(:env) { { :body => JSON.parse(fixture('sobject/query_success_response')) } }
5
+
6
+ describe '.call' do
7
+ subject { lambda { middleware.call(env) } }
8
+
9
+ it { should change { env[:body] }.to(kind_of(Sfdc::Collection)) }
10
+ end
11
+ end
@@ -0,0 +1,32 @@
1
+ require 'spec_helper'
2
+
3
+ describe Sfdc::Middleware::RaiseError do
4
+ let(:body) { fixture('sobject/query_error_response') }
5
+ let(:env) { { :status => status, :body => body } }
6
+ let(:middleware) { described_class.new app }
7
+
8
+ describe '.on_complete' do
9
+ subject { lambda { middleware.on_complete(env) } }
10
+
11
+ context 'when the status code is 404' do
12
+ let(:status) { 404 }
13
+ it { should raise_error Faraday::Error::ResourceNotFound, 'INVALID_FIELD: error_message' }
14
+ end
15
+
16
+ context 'when the status code is 400' do
17
+ let(:status) { 400 }
18
+ it { should raise_error Faraday::Error::ClientError, 'INVALID_FIELD: error_message' }
19
+ end
20
+
21
+ context 'when the status code is 401' do
22
+ let(:status) { 401 }
23
+ it { should raise_error Sfdc::UnauthorizedError, 'INVALID_FIELD: error_message' }
24
+ end
25
+
26
+ context 'when the status code is 413' do
27
+ let(:status) { 413 }
28
+ let(:body) { '' } #Zero length response
29
+ it { should raise_error Faraday::Error::ClientError, 'HTTP 413 - Request Entity Too Large' }
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,24 @@
1
+ require 'spec_helper'
2
+
3
+ describe Sfdc::SignedRequest do
4
+ let(:client_secret) { 'foo' }
5
+ let(:message) do
6
+ digest = OpenSSL::Digest::Digest.new('sha256')
7
+ signature = Base64.encode64(OpenSSL::HMAC.digest(digest, client_secret, data))
8
+ "#{signature}.#{data}"
9
+ end
10
+
11
+ describe '.decode' do
12
+ subject { described_class.new(message, client_secret).decode }
13
+
14
+ context 'when the message is valid' do
15
+ let(:data) { Base64.encode64('{"key": "value"}') }
16
+ it { should eq('key' => 'value') }
17
+ end
18
+
19
+ context 'when the message is invalid' do
20
+ let(:message) { 'foobar.awdkjkj' }
21
+ it { should be_nil }
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,86 @@
1
+ require 'spec_helper'
2
+
3
+ describe Sfdc::SObject do
4
+ let(:client) { double('Client') }
5
+ let(:hash) { JSON.parse(fixture('sobject/query_success_response'))['records'].first }
6
+ subject(:sobject) { described_class.new(hash, client) }
7
+
8
+ describe '#new' do
9
+ context 'with valid options' do
10
+ it { should be_a Sfdc::SObject }
11
+ it { should have_client client }
12
+ its(:sobject_type) { should eq 'Whizbang' }
13
+ its(:Text_Label) { should eq 'Hi there!' }
14
+
15
+ describe 'children' do
16
+ subject(:children) { sobject.Whizbangs__r }
17
+
18
+ it { should be_a Sfdc::Collection }
19
+
20
+ describe 'each child' do
21
+ it { should be_all { |sobject| expect(sobject).to be_a Sfdc::SObject } }
22
+ it { should be_all { |sobject| expect(sobject).to have_client client } }
23
+ end
24
+ end
25
+
26
+ describe 'parent' do
27
+ subject(:parent) { sobject.ParentWhizbang__r }
28
+
29
+ it { should be_a Sfdc::SObject }
30
+ its(:sobject_type) { should eq 'Whizbang' }
31
+ its(:Name) { should eq 'Parent Whizbang' }
32
+ it { should have_client client }
33
+ end
34
+ end
35
+ end
36
+
37
+ { :save => :update,
38
+ :save! => :update!,
39
+ :destroy => :destroy,
40
+ :destroy! => :destroy! }.each do |method, receiver|
41
+ describe ".#{method}" do
42
+ subject { lambda { sobject.send(method) } }
43
+
44
+ context 'when an Id was not queried' do
45
+ it { should raise_error ArgumentError, 'You need to query the Id for the record first.' }
46
+ end
47
+
48
+ context 'when an Id is present' do
49
+ before do
50
+ hash.merge!(:Id => '001D000000INjVe')
51
+ client.should_receive(receiver)
52
+ end
53
+
54
+ it { should_not raise_error }
55
+ end
56
+ end
57
+ end
58
+
59
+ describe '.describe' do
60
+ subject { lambda { sobject.describe } }
61
+
62
+ before do
63
+ client.should_receive(:describe).with('Whizbang')
64
+ end
65
+
66
+ it { should_not raise_error }
67
+ end
68
+
69
+ describe '.describe_layouts' do
70
+ let(:layout_id) { nil }
71
+ subject { lambda { sobject.describe_layouts } }
72
+
73
+ before do
74
+ client.should_receive(:describe_layouts).with('Whizbang', layout_id)
75
+ end
76
+
77
+ it { should_not raise_error }
78
+
79
+ context 'when a layout Id is specified' do
80
+ let(:layout_id) { '012E0000000RHEp' }
81
+ subject { lambda { sobject.describe_layouts(layout_id) } }
82
+
83
+ it { should_not raise_error }
84
+ end
85
+ end
86
+ end
@@ -0,0 +1,7 @@
1
+ require 'spec_helper'
2
+
3
+ describe Sfdc::Tooling::Client do
4
+ subject { described_class }
5
+
6
+ it { should < Sfdc::AbstractClient }
7
+ end
metadata CHANGED
@@ -1,102 +1,127 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sfdc
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0
4
+ version: 3.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bruce Yue
8
8
  autorequire:
9
- bindir:
10
- - bin
9
+ bindir: bin
11
10
  cert_chain: []
12
- date: 2013-09-24 00:00:00.000000000 Z
11
+ date: 2013-11-21 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: faraday
16
15
  requirement: !ruby/object:Gem::Requirement
17
16
  requirements:
18
- - - '>='
17
+ - - ~>
19
18
  - !ruby/object:Gem::Version
20
- version: 0.8.7
19
+ version: 0.8.4
21
20
  type: :runtime
22
21
  prerelease: false
23
22
  version_requirements: !ruby/object:Gem::Requirement
24
23
  requirements:
25
- - - '>='
24
+ - - ~>
26
25
  - !ruby/object:Gem::Version
27
- version: 0.8.7
26
+ version: 0.8.4
28
27
  - !ruby/object:Gem::Dependency
29
28
  name: faraday_middleware
30
29
  requirement: !ruby/object:Gem::Requirement
31
30
  requirements:
32
31
  - - '>='
33
32
  - !ruby/object:Gem::Version
34
- version: 0.9.0
33
+ version: 0.8.8
35
34
  type: :runtime
36
35
  prerelease: false
37
36
  version_requirements: !ruby/object:Gem::Requirement
38
37
  requirements:
39
38
  - - '>='
40
39
  - !ruby/object:Gem::Version
41
- version: 0.9.0
40
+ version: 0.8.8
42
41
  - !ruby/object:Gem::Dependency
43
42
  name: json
44
43
  requirement: !ruby/object:Gem::Requirement
45
44
  requirements:
46
- - - ~>
45
+ - - '>='
47
46
  - !ruby/object:Gem::Version
48
47
  version: 1.7.5
48
+ - - <
49
+ - !ruby/object:Gem::Version
50
+ version: 1.9.0
49
51
  type: :runtime
50
52
  prerelease: false
51
53
  version_requirements: !ruby/object:Gem::Requirement
52
54
  requirements:
53
- - - ~>
55
+ - - '>='
54
56
  - !ruby/object:Gem::Version
55
57
  version: 1.7.5
58
+ - - <
59
+ - !ruby/object:Gem::Version
60
+ version: 1.9.0
56
61
  - !ruby/object:Gem::Dependency
57
62
  name: hashie
58
63
  requirement: !ruby/object:Gem::Requirement
59
64
  requirements:
60
- - - ~>
65
+ - - '>='
61
66
  - !ruby/object:Gem::Version
62
67
  version: 1.2.0
68
+ - - <
69
+ - !ruby/object:Gem::Version
70
+ version: '2.1'
63
71
  type: :runtime
64
72
  prerelease: false
65
73
  version_requirements: !ruby/object:Gem::Requirement
66
74
  requirements:
67
- - - ~>
75
+ - - '>='
68
76
  - !ruby/object:Gem::Version
69
77
  version: 1.2.0
78
+ - - <
79
+ - !ruby/object:Gem::Version
80
+ version: '2.1'
70
81
  - !ruby/object:Gem::Dependency
71
- name: activesupport
82
+ name: rspec
72
83
  requirement: !ruby/object:Gem::Requirement
73
84
  requirements:
74
- - - '>='
85
+ - - ~>
75
86
  - !ruby/object:Gem::Version
76
- version: '0'
77
- type: :runtime
87
+ version: 2.14.0
88
+ type: :development
78
89
  prerelease: false
79
90
  version_requirements: !ruby/object:Gem::Requirement
80
91
  requirements:
81
- - - '>='
92
+ - - ~>
82
93
  - !ruby/object:Gem::Version
83
- version: '0'
94
+ version: 2.14.0
95
+ - !ruby/object:Gem::Dependency
96
+ name: webmock
97
+ requirement: !ruby/object:Gem::Requirement
98
+ requirements:
99
+ - - ~>
100
+ - !ruby/object:Gem::Version
101
+ version: 1.13.0
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - ~>
107
+ - !ruby/object:Gem::Version
108
+ version: 1.13.0
84
109
  - !ruby/object:Gem::Dependency
85
- name: bundler
110
+ name: simplecov
86
111
  requirement: !ruby/object:Gem::Requirement
87
112
  requirements:
88
113
  - - ~>
89
114
  - !ruby/object:Gem::Version
90
- version: '1.3'
115
+ version: 0.7.1
91
116
  type: :development
92
117
  prerelease: false
93
118
  version_requirements: !ruby/object:Gem::Requirement
94
119
  requirements:
95
120
  - - ~>
96
121
  - !ruby/object:Gem::Version
97
- version: '1.3'
122
+ version: 0.7.1
98
123
  - !ruby/object:Gem::Dependency
99
- name: rake
124
+ name: faye
100
125
  requirement: !ruby/object:Gem::Requirement
101
126
  requirements:
102
127
  - - '>='
@@ -109,51 +134,121 @@ dependencies:
109
134
  - - '>='
110
135
  - !ruby/object:Gem::Version
111
136
  version: '0'
112
- description: Salesforce API
137
+ description: A lightweight ruby client for the Salesforce REST api.
113
138
  email:
114
139
  - bruce.yue@outlook.com
115
140
  executables: []
116
141
  extensions: []
117
142
  extra_rdoc_files: []
118
143
  files:
119
- - lib/sfdc/abstract_client.rb
120
- - lib/sfdc/attachment.rb
121
- - lib/sfdc/client.rb
122
- - lib/sfdc/collection.rb
123
- - lib/sfdc/concerns/api.rb
124
- - lib/sfdc/concerns/authentication.rb
125
- - lib/sfdc/concerns/base.rb
126
- - lib/sfdc/concerns/caching.rb
127
- - lib/sfdc/concerns/canvas.rb
128
- - lib/sfdc/concerns/connection.rb
129
- - lib/sfdc/concerns/picklists.rb
130
- - lib/sfdc/concerns/streaming.rb
131
- - lib/sfdc/concerns/verbs.rb
132
- - lib/sfdc/config.rb
133
- - lib/sfdc/data/client.rb
134
- - lib/sfdc/mash.rb
135
- - lib/sfdc/middleware/authentication/password.rb
136
- - lib/sfdc/middleware/authentication/token.rb
137
- - lib/sfdc/middleware/authentication.rb
138
- - lib/sfdc/middleware/authorization.rb
139
- - lib/sfdc/middleware/caching.rb
140
- - lib/sfdc/middleware/gzip.rb
141
- - lib/sfdc/middleware/instance_url.rb
142
- - lib/sfdc/middleware/logger.rb
143
- - lib/sfdc/middleware/mashify.rb
144
- - lib/sfdc/middleware/multipart.rb
145
- - lib/sfdc/middleware/raise_error.rb
146
- - lib/sfdc/middleware.rb
147
- - lib/sfdc/signed_request.rb
148
- - lib/sfdc/sobject.rb
149
- - lib/sfdc/tooling/client.rb
150
- - lib/sfdc/upload_io.rb
151
- - lib/sfdc/version.rb
152
- - lib/sfdc.rb
153
- - README.md
144
+ - ./CHANGELOG.md
145
+ - ./Gemfile
146
+ - ./Guardfile
147
+ - ./lib/sfdc/abstract_client.rb
148
+ - ./lib/sfdc/attachment.rb
149
+ - ./lib/sfdc/client.rb
150
+ - ./lib/sfdc/collection.rb
151
+ - ./lib/sfdc/concerns/api.rb
152
+ - ./lib/sfdc/concerns/authentication.rb
153
+ - ./lib/sfdc/concerns/base.rb
154
+ - ./lib/sfdc/concerns/caching.rb
155
+ - ./lib/sfdc/concerns/canvas.rb
156
+ - ./lib/sfdc/concerns/connection.rb
157
+ - ./lib/sfdc/concerns/picklists.rb
158
+ - ./lib/sfdc/concerns/streaming.rb
159
+ - ./lib/sfdc/concerns/verbs.rb
160
+ - ./lib/sfdc/config.rb
161
+ - ./lib/sfdc/data/client.rb
162
+ - ./lib/sfdc/mash.rb
163
+ - ./lib/sfdc/middleware/authentication/password.rb
164
+ - ./lib/sfdc/middleware/authentication/token.rb
165
+ - ./lib/sfdc/middleware/authentication.rb
166
+ - ./lib/sfdc/middleware/authorization.rb
167
+ - ./lib/sfdc/middleware/caching.rb
168
+ - ./lib/sfdc/middleware/gzip.rb
169
+ - ./lib/sfdc/middleware/instance_url.rb
170
+ - ./lib/sfdc/middleware/logger.rb
171
+ - ./lib/sfdc/middleware/mashify.rb
172
+ - ./lib/sfdc/middleware/multipart.rb
173
+ - ./lib/sfdc/middleware/raise_error.rb
174
+ - ./lib/sfdc/middleware.rb
175
+ - ./lib/sfdc/signed_request.rb
176
+ - ./lib/sfdc/sobject.rb
177
+ - ./lib/sfdc/tooling/client.rb
178
+ - ./lib/sfdc/upload_io.rb
179
+ - ./lib/sfdc/version.rb
180
+ - ./lib/sfdc.rb
181
+ - ./LICENSE
182
+ - ./Rakefile
183
+ - ./README.md
184
+ - ./sfdc.gemspec
185
+ - spec/fixtures/auth_error_response.json
186
+ - spec/fixtures/auth_success_response.json
187
+ - spec/fixtures/blob.jpg
188
+ - spec/fixtures/expired_session_response.json
189
+ - spec/fixtures/reauth_success_response.json
190
+ - spec/fixtures/refresh_error_response.json
191
+ - spec/fixtures/refresh_success_response.json
192
+ - spec/fixtures/services_data_success_response.json
193
+ - spec/fixtures/sobject/create_success_response.json
194
+ - spec/fixtures/sobject/delete_error_response.json
195
+ - spec/fixtures/sobject/describe_sobjects_success_response.json
196
+ - spec/fixtures/sobject/list_sobjects_success_response.json
197
+ - spec/fixtures/sobject/org_query_response.json
198
+ - spec/fixtures/sobject/query_aggregate_success_response.json
199
+ - spec/fixtures/sobject/query_empty_response.json
200
+ - spec/fixtures/sobject/query_error_response.json
201
+ - spec/fixtures/sobject/query_paginated_first_page_response.json
202
+ - spec/fixtures/sobject/query_paginated_last_page_response.json
203
+ - spec/fixtures/sobject/query_success_response.json
204
+ - spec/fixtures/sobject/recent_success_response.json
205
+ - spec/fixtures/sobject/search_error_response.json
206
+ - spec/fixtures/sobject/search_success_response.json
207
+ - spec/fixtures/sobject/sobject_describe_error_response.json
208
+ - spec/fixtures/sobject/sobject_describe_success_response.json
209
+ - spec/fixtures/sobject/sobject_find_error_response.json
210
+ - spec/fixtures/sobject/sobject_find_success_response.json
211
+ - spec/fixtures/sobject/upsert_created_success_response.json
212
+ - spec/fixtures/sobject/upsert_error_response.json
213
+ - spec/fixtures/sobject/upsert_multiple_error_response.json
214
+ - spec/fixtures/sobject/upsert_updated_success_response.json
215
+ - spec/fixtures/sobject/write_error_response.json
216
+ - spec/integration/abstract_client_spec.rb
217
+ - spec/integration/data/client_spec.rb
218
+ - spec/spec_helper.rb
219
+ - spec/support/client_integration.rb
220
+ - spec/support/concerns.rb
221
+ - spec/support/event_machine.rb
222
+ - spec/support/fixture_helpers.rb
223
+ - spec/support/matchers.rb
224
+ - spec/support/middleware.rb
225
+ - spec/support/mock_cache.rb
226
+ - spec/unit/abstract_client_spec.rb
227
+ - spec/unit/attachment_spec.rb
228
+ - spec/unit/collection_spec.rb
229
+ - spec/unit/concerns/api_spec.rb
230
+ - spec/unit/concerns/authentication_spec.rb
231
+ - spec/unit/concerns/base_spec.rb
232
+ - spec/unit/concerns/caching_spec.rb
233
+ - spec/unit/concerns/canvas_spec.rb
234
+ - spec/unit/concerns/connection_spec.rb
235
+ - spec/unit/config_spec.rb
236
+ - spec/unit/data/client_spec.rb
237
+ - spec/unit/mash_spec.rb
238
+ - spec/unit/middleware/authentication/password_spec.rb
239
+ - spec/unit/middleware/authentication/token_spec.rb
240
+ - spec/unit/middleware/authentication_spec.rb
241
+ - spec/unit/middleware/authorization_spec.rb
242
+ - spec/unit/middleware/gzip_spec.rb
243
+ - spec/unit/middleware/instance_url_spec.rb
244
+ - spec/unit/middleware/logger_spec.rb
245
+ - spec/unit/middleware/mashify_spec.rb
246
+ - spec/unit/middleware/raise_error_spec.rb
247
+ - spec/unit/signed_request_spec.rb
248
+ - spec/unit/sobject_spec.rb
249
+ - spec/unit/tooling/client_spec.rb
154
250
  homepage: http://www.sharealltech.com
155
- licenses:
156
- - MIT
251
+ licenses: []
157
252
  metadata: {}
158
253
  post_install_message:
159
254
  rdoc_options: []
@@ -170,9 +265,74 @@ required_rubygems_version: !ruby/object:Gem::Requirement
170
265
  - !ruby/object:Gem::Version
171
266
  version: '0'
172
267
  requirements: []
173
- rubyforge_project: sfdc
268
+ rubyforge_project:
174
269
  rubygems_version: 2.0.3
175
270
  signing_key:
176
271
  specification_version: 4
177
- summary: Salesforce API
178
- test_files: []
272
+ summary: A lightweight ruby client for the Salesforce REST api.
273
+ test_files:
274
+ - spec/fixtures/auth_error_response.json
275
+ - spec/fixtures/auth_success_response.json
276
+ - spec/fixtures/blob.jpg
277
+ - spec/fixtures/expired_session_response.json
278
+ - spec/fixtures/reauth_success_response.json
279
+ - spec/fixtures/refresh_error_response.json
280
+ - spec/fixtures/refresh_success_response.json
281
+ - spec/fixtures/services_data_success_response.json
282
+ - spec/fixtures/sobject/create_success_response.json
283
+ - spec/fixtures/sobject/delete_error_response.json
284
+ - spec/fixtures/sobject/describe_sobjects_success_response.json
285
+ - spec/fixtures/sobject/list_sobjects_success_response.json
286
+ - spec/fixtures/sobject/org_query_response.json
287
+ - spec/fixtures/sobject/query_aggregate_success_response.json
288
+ - spec/fixtures/sobject/query_empty_response.json
289
+ - spec/fixtures/sobject/query_error_response.json
290
+ - spec/fixtures/sobject/query_paginated_first_page_response.json
291
+ - spec/fixtures/sobject/query_paginated_last_page_response.json
292
+ - spec/fixtures/sobject/query_success_response.json
293
+ - spec/fixtures/sobject/recent_success_response.json
294
+ - spec/fixtures/sobject/search_error_response.json
295
+ - spec/fixtures/sobject/search_success_response.json
296
+ - spec/fixtures/sobject/sobject_describe_error_response.json
297
+ - spec/fixtures/sobject/sobject_describe_success_response.json
298
+ - spec/fixtures/sobject/sobject_find_error_response.json
299
+ - spec/fixtures/sobject/sobject_find_success_response.json
300
+ - spec/fixtures/sobject/upsert_created_success_response.json
301
+ - spec/fixtures/sobject/upsert_error_response.json
302
+ - spec/fixtures/sobject/upsert_multiple_error_response.json
303
+ - spec/fixtures/sobject/upsert_updated_success_response.json
304
+ - spec/fixtures/sobject/write_error_response.json
305
+ - spec/integration/abstract_client_spec.rb
306
+ - spec/integration/data/client_spec.rb
307
+ - spec/spec_helper.rb
308
+ - spec/support/client_integration.rb
309
+ - spec/support/concerns.rb
310
+ - spec/support/event_machine.rb
311
+ - spec/support/fixture_helpers.rb
312
+ - spec/support/matchers.rb
313
+ - spec/support/middleware.rb
314
+ - spec/support/mock_cache.rb
315
+ - spec/unit/abstract_client_spec.rb
316
+ - spec/unit/attachment_spec.rb
317
+ - spec/unit/collection_spec.rb
318
+ - spec/unit/concerns/api_spec.rb
319
+ - spec/unit/concerns/authentication_spec.rb
320
+ - spec/unit/concerns/base_spec.rb
321
+ - spec/unit/concerns/caching_spec.rb
322
+ - spec/unit/concerns/canvas_spec.rb
323
+ - spec/unit/concerns/connection_spec.rb
324
+ - spec/unit/config_spec.rb
325
+ - spec/unit/data/client_spec.rb
326
+ - spec/unit/mash_spec.rb
327
+ - spec/unit/middleware/authentication/password_spec.rb
328
+ - spec/unit/middleware/authentication/token_spec.rb
329
+ - spec/unit/middleware/authentication_spec.rb
330
+ - spec/unit/middleware/authorization_spec.rb
331
+ - spec/unit/middleware/gzip_spec.rb
332
+ - spec/unit/middleware/instance_url_spec.rb
333
+ - spec/unit/middleware/logger_spec.rb
334
+ - spec/unit/middleware/mashify_spec.rb
335
+ - spec/unit/middleware/raise_error_spec.rb
336
+ - spec/unit/signed_request_spec.rb
337
+ - spec/unit/sobject_spec.rb
338
+ - spec/unit/tooling/client_spec.rb