sfdc 3.0.0 → 3.0.1

Sign up to get free protection for your applications and to get access to all the features.
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