salesforce_bulk_api 0.0.8 → 0.0.9

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e63ba9f2d9be3dfa89bf6d896ee94fe847bc1b57
4
- data.tar.gz: e054528cb047b09383e98fe2d54b1e3ad628bb0e
3
+ metadata.gz: 419b46235cab1eda869135553b8f186bceef0d48
4
+ data.tar.gz: 52c4677c104986ae9c30fb5c342f4256f8613a1a
5
5
  SHA512:
6
- metadata.gz: 7d66df90281412848aba6eed1a5a5476d7883d1e774f28b21dcd2d3a3952027a9e527a474ec2cd702e5b1018c678a25892572206524d1cfbcbd064e7a7577495
7
- data.tar.gz: 0326e9e4f4389d5052ce92aa04ff2daf65c26df997dc31d8b353f3cca60f1eb5634da45d126fb2db2d3221873353cd78df6ca8bab55d43f14199dd0d0de71c33
6
+ metadata.gz: 5ab2888d12f5493132ba2a6ea68eba8d771434072e041b138f2f08d68f379931668893c59a2300fe77172b5774db5cb8b039fb310dc79f906a65701be1d51427
7
+ data.tar.gz: d1f428ebaea54fca2aec2019620690aab946b8ee5e8eb3a3bb333446bdf94f56f9bb2f2a5d436a038190328c4aab01d8b77e5185309aa2dde3211f7d11184c59
@@ -31,7 +31,12 @@ module SalesforceBulkApi
31
31
 
32
32
  response = @connection.post_xml(nil, path, xml, headers)
33
33
  response_parsed = XmlSimple.xml_in(response)
34
- @job_id = response_parsed['id'][0]
34
+
35
+ begin
36
+ @job_id = response_parsed['jobInfo']['id']
37
+ rescue NoMethodError => e
38
+ Rails.logger.error "SalesforceBulkApi: #{response_parsed['error']['exceptionCode']}: #{response_parsed['error']['exceptionMessage']}"
39
+ end
35
40
  end
36
41
 
37
42
  def close_job()
@@ -86,10 +91,27 @@ module SalesforceBulkApi
86
91
  response_parsed['id'][0] if response_parsed['id']
87
92
  end
88
93
 
94
+ def build_sobject(data)
95
+ xml = '<sObject>'
96
+ data.keys.each do |k|
97
+ if k.is_a?(Hash)
98
+ xml += build_sobject(k)
99
+ elsif data[k] != :type
100
+ #xml += "<type>#{data[:type]}</type>"
101
+ xml += "<#{k}>#{data[k]}</#{k}>"
102
+ end
103
+ end
104
+ xml += '</sObject>'
105
+ end
106
+
89
107
  def create_sobject(keys, r)
90
108
  sobject_xml = '<sObject>'
91
109
  keys.each do |k|
92
- if !r[k].to_s.empty?
110
+ if r[k].is_a?(Hash)
111
+ sobject_xml += "<#{k}>"
112
+ sobject_xml += build_sobject(r[k])
113
+ sobject_xml += "</#{k}>"
114
+ elsif !r[k].to_s.empty?
93
115
  sobject_xml += "<#{k}>"
94
116
  if r[k].respond_to?(:encode)
95
117
  sobject_xml += r[k].encode(:xml => :text)
@@ -1,3 +1,3 @@
1
1
  module SalesforceBulkApi
2
- VERSION = '0.0.8'
2
+ VERSION = '0.0.9'
3
3
  end
@@ -3,27 +3,29 @@ $:.push File.expand_path("../lib", __FILE__)
3
3
  require "salesforce_bulk_api/version"
4
4
 
5
5
  Gem::Specification.new do |s|
6
- s.name = "salesforce_bulk_api"
6
+ s.name = 'salesforce_bulk_api'
7
7
  s.version = SalesforceBulkApi::VERSION
8
- s.authors = ["Yatish Mehta"]
9
- s.email = ["yatishmehta27@gmail.com"]
8
+ s.authors = ['Yatish Mehta']
9
+ s.email = ['yatishmehta27@gmail.com']
10
10
 
11
- s.homepage = "https://github.com/yatishmehta27/salesforce_bulk_api"
11
+ s.homepage = 'https://github.com/yatishmehta27/salesforce_bulk_api'
12
12
  s.summary = %q{It uses the bulk api of salesforce to communicate with Salesforce CRM}
13
13
  s.description = %q{Salesforce Bulk API with governor limits taken care of}
14
14
 
15
- s.rubyforge_project = "salesforce_bulk_api"
15
+ s.rubyforge_project = 'salesforce_bulk_api'
16
16
 
17
- s.add_dependency(%q<json>, [">= 0"])
18
- s.add_dependency(%q<xml-simple>, [">= 0"])
17
+ s.add_dependency(%q<json>, ['>= 0'])
18
+ s.add_dependency(%q<xml-simple>, ['>= 0'])
19
+
20
+ s.add_development_dependency 'rspec'
21
+ s.add_development_dependency('webmock', ['~> 1.13'])
22
+ s.add_development_dependency('vcr', ['~> 2.5'])
23
+ s.add_development_dependency 'databasedotcom'
19
24
 
20
- s.add_development_dependency "rspec"
21
- s.add_development_dependency("webmock", ["~> 1.13"])
22
- s.add_development_dependency("vcr", ['~> 2.5'])
23
25
 
24
26
  s.files = `git ls-files`.split("\n")
25
27
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
26
28
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
27
- s.require_paths = ["lib"]
29
+ s.require_paths = ['lib']
28
30
 
29
31
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: salesforce_bulk_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
4
+ version: 0.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yatish Mehta
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-01-13 00:00:00.000000000 Z
11
+ date: 2014-05-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json
@@ -80,6 +80,20 @@ dependencies:
80
80
  - - ~>
81
81
  - !ruby/object:Gem::Version
82
82
  version: '2.5'
83
+ - !ruby/object:Gem::Dependency
84
+ name: databasedotcom
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
83
97
  description: Salesforce Bulk API with governor limits taken care of
84
98
  email:
85
99
  - yatishmehta27@gmail.com
@@ -126,3 +140,4 @@ summary: It uses the bulk api of salesforce to communicate with Salesforce CRM
126
140
  test_files:
127
141
  - spec/salesforce_bulk_api/salesforce_bulk_api_spec.rb
128
142
  - spec/spec_helper.rb
143
+ has_rdoc: