salesforce_bulk_api 0.0.8 → 0.0.9

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.
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: