qbwc 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- data/.rspec +2 -0
- data/Gemfile.lock +42 -4
- data/Guardfile +46 -0
- data/lib/generators/qbwc/install/templates/config/qbwc.rb +4 -3
- data/lib/generators/qbwc/install/templates/controllers/qbwc_controller.rb +2 -2
- data/lib/qbwc.rb +1 -1
- data/lib/qbwc/request.rb +0 -4
- data/lib/qbwc/session.rb +24 -19
- data/lib/qbwc/soap_wrapper/defaultServant.rb +2 -2
- data/lib/qbwc/version.rb +1 -1
- data/qbwc.gemspec +7 -2
- data/spec/spec_helper.rb +17 -0
- metadata +86 -6
- data/test/helper.rb +0 -18
- data/test/test_qbwc.rb +0 -7
data/.rspec
ADDED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
qbwc (0.0.
|
4
|
+
qbwc (0.0.4)
|
5
5
|
quickbooks_api (>= 0.1.6)
|
6
6
|
rubyjedi-soap4r (>= 1.5.8.20100619003610)
|
7
7
|
|
@@ -11,24 +11,62 @@ GEM
|
|
11
11
|
activesupport (3.2.8)
|
12
12
|
i18n (~> 0.6)
|
13
13
|
multi_json (~> 1.0)
|
14
|
+
addressable (2.3.2)
|
14
15
|
buffered_logger (0.1.3)
|
15
16
|
activesupport
|
16
17
|
i18n
|
17
18
|
term-ansicolor
|
19
|
+
coderay (1.0.8)
|
20
|
+
crack (0.3.1)
|
21
|
+
diff-lcs (1.1.3)
|
22
|
+
guard (1.5.4)
|
23
|
+
listen (>= 0.4.2)
|
24
|
+
lumberjack (>= 1.0.2)
|
25
|
+
pry (>= 0.9.10)
|
26
|
+
thor (>= 0.14.6)
|
27
|
+
guard-rspec (2.3.1)
|
28
|
+
guard (>= 1.1)
|
29
|
+
rspec (~> 2.11)
|
18
30
|
httpclient (2.1.5.2)
|
19
|
-
i18n (0.6.
|
20
|
-
|
31
|
+
i18n (0.6.1)
|
32
|
+
listen (0.6.0)
|
33
|
+
lumberjack (1.0.2)
|
34
|
+
method_source (0.8.1)
|
35
|
+
multi_json (1.4.0)
|
21
36
|
nokogiri (1.5.5)
|
22
|
-
|
37
|
+
pry (0.9.10)
|
38
|
+
coderay (~> 1.0.5)
|
39
|
+
method_source (~> 0.8)
|
40
|
+
slop (~> 3.3.1)
|
41
|
+
quickbooks_api (0.1.7)
|
23
42
|
activesupport
|
24
43
|
buffered_logger (>= 0.1.3)
|
25
44
|
nokogiri
|
45
|
+
rb-fsevent (0.9.2)
|
46
|
+
rspec (2.12.0)
|
47
|
+
rspec-core (~> 2.12.0)
|
48
|
+
rspec-expectations (~> 2.12.0)
|
49
|
+
rspec-mocks (~> 2.12.0)
|
50
|
+
rspec-core (2.12.1)
|
51
|
+
rspec-expectations (2.12.0)
|
52
|
+
diff-lcs (~> 1.1.3)
|
53
|
+
rspec-mocks (2.12.0)
|
26
54
|
rubyjedi-soap4r (1.5.8.20100619003610)
|
27
55
|
httpclient (~> 2.1.5.2)
|
56
|
+
slop (3.3.3)
|
28
57
|
term-ansicolor (1.0.7)
|
58
|
+
thor (0.16.0)
|
59
|
+
webmock (1.9.0)
|
60
|
+
addressable (>= 2.2.7)
|
61
|
+
crack (>= 0.1.7)
|
29
62
|
|
30
63
|
PLATFORMS
|
31
64
|
ruby
|
32
65
|
|
33
66
|
DEPENDENCIES
|
67
|
+
guard
|
68
|
+
guard-rspec
|
34
69
|
qbwc!
|
70
|
+
rb-fsevent
|
71
|
+
rspec
|
72
|
+
webmock
|
data/Guardfile
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
# A sample Guardfile
|
2
|
+
# More info at https://github.com/guard/guard#readme
|
3
|
+
|
4
|
+
guard 'rspec' do
|
5
|
+
watch(%r{^spec/.+_spec\.rb$})
|
6
|
+
watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
|
7
|
+
watch('spec/spec_helper.rb') { "spec" }
|
8
|
+
|
9
|
+
# Rails example
|
10
|
+
watch(%r{^app/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
|
11
|
+
watch(%r{^app/(.*)(\.erb|\.haml)$}) { |m| "spec/#{m[1]}#{m[2]}_spec.rb" }
|
12
|
+
watch(%r{^app/controllers/(.+)_(controller)\.rb$}) { |m| ["spec/routing/#{m[1]}_routing_spec.rb", "spec/#{m[2]}s/#{m[1]}_#{m[2]}_spec.rb", "spec/acceptance/#{m[1]}_spec.rb"] }
|
13
|
+
watch(%r{^spec/support/(.+)\.rb$}) { "spec" }
|
14
|
+
watch('config/routes.rb') { "spec/routing" }
|
15
|
+
watch('app/controllers/application_controller.rb') { "spec/controllers" }
|
16
|
+
|
17
|
+
# Capybara features specs
|
18
|
+
watch(%r{^app/views/(.+)/.*\.(erb|haml)$}) { |m| "spec/features/#{m[1]}_spec.rb" }
|
19
|
+
|
20
|
+
# Turnip features and steps
|
21
|
+
watch(%r{^spec/acceptance/(.+)\.feature$})
|
22
|
+
watch(%r{^spec/acceptance/steps/(.+)_steps\.rb$}) { |m| Dir[File.join("**/#{m[1]}.feature")][0] || 'spec/acceptance' }
|
23
|
+
end
|
24
|
+
|
25
|
+
|
26
|
+
guard 'rspec' do
|
27
|
+
watch(%r{^spec/.+_spec\.rb$})
|
28
|
+
watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
|
29
|
+
watch('spec/spec_helper.rb') { "spec" }
|
30
|
+
|
31
|
+
# Rails example
|
32
|
+
watch(%r{^app/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
|
33
|
+
watch(%r{^app/(.*)(\.erb|\.haml)$}) { |m| "spec/#{m[1]}#{m[2]}_spec.rb" }
|
34
|
+
watch(%r{^app/controllers/(.+)_(controller)\.rb$}) { |m| ["spec/routing/#{m[1]}_routing_spec.rb", "spec/#{m[2]}s/#{m[1]}_#{m[2]}_spec.rb", "spec/acceptance/#{m[1]}_spec.rb"] }
|
35
|
+
watch(%r{^spec/support/(.+)\.rb$}) { "spec" }
|
36
|
+
watch('config/routes.rb') { "spec/routing" }
|
37
|
+
watch('app/controllers/application_controller.rb') { "spec/controllers" }
|
38
|
+
|
39
|
+
# Capybara features specs
|
40
|
+
watch(%r{^app/views/(.+)/.*\.(erb|haml)$}) { |m| "spec/features/#{m[1]}_spec.rb" }
|
41
|
+
|
42
|
+
# Turnip features and steps
|
43
|
+
watch(%r{^spec/acceptance/(.+)\.feature$})
|
44
|
+
watch(%r{^spec/acceptance/steps/(.+)_steps\.rb$}) { |m| Dir[File.join("**/#{m[1]}.feature")][0] || 'spec/acceptance' }
|
45
|
+
end
|
46
|
+
|
@@ -25,14 +25,15 @@ QBWC.configure do |c|
|
|
25
25
|
# until it is processed.
|
26
26
|
c.delayed_processing = false
|
27
27
|
|
28
|
-
# In the event of an error in the
|
28
|
+
# In the event of an error in the communication process do you wish the sync to stop or blaze through
|
29
29
|
#
|
30
30
|
# Options:
|
31
31
|
# :stop
|
32
32
|
# :continue
|
33
33
|
c.on_error = :stop
|
34
34
|
|
35
|
-
# Rails Cache Hot Boot (Check the rails cache for existing API object to speed app boot)
|
36
|
-
|
35
|
+
# Rails Cache Hot Boot (Check the rails cache for existing API object to speed app boot)
|
36
|
+
# This Feature is Unstable and is Extreme Alpha. IT is known not to work
|
37
|
+
# c.warm_boot = false
|
37
38
|
|
38
39
|
end
|
data/lib/qbwc.rb
CHANGED
data/lib/qbwc/request.rb
CHANGED
data/lib/qbwc/session.rb
CHANGED
@@ -20,7 +20,7 @@ class QBWC::Session
|
|
20
20
|
|
21
21
|
def reset
|
22
22
|
@progress = QBWC.jobs.blank? ? 100 : 0
|
23
|
-
enabled_jobs.map { |j| j.reset }
|
23
|
+
enabled_jobs.map { |j| j.reset }
|
24
24
|
@requests = build_request_generator(enabled_jobs)
|
25
25
|
end
|
26
26
|
|
@@ -33,38 +33,43 @@ class QBWC::Session
|
|
33
33
|
end
|
34
34
|
|
35
35
|
def response=(qbxml_response)
|
36
|
-
|
37
|
-
QBWC.parser.qbxml_to_hash(qbxml_response)
|
38
|
-
|
36
|
+
begin
|
37
|
+
@current_request.response = QBWC.parser.qbxml_to_hash(qbxml_response)
|
38
|
+
parse_response_header(@current_request.response)
|
39
39
|
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
40
|
+
if QBWC.delayed_processing
|
41
|
+
@saved_requests << @current_request
|
42
|
+
else
|
43
|
+
@current_request.process_response
|
44
|
+
end
|
45
|
+
rescue => e
|
46
|
+
puts "An error occured in QBWC::Session: #{e}"
|
47
|
+
puts e
|
48
|
+
puts e.backtrace
|
44
49
|
end
|
50
|
+
|
45
51
|
end
|
46
52
|
|
47
53
|
def process_saved_responses
|
48
54
|
@saved_requests.each { |r| r.process_response }
|
49
55
|
end
|
50
56
|
|
51
|
-
private
|
57
|
+
private
|
52
58
|
|
53
59
|
def enabled_jobs
|
54
|
-
QBWC.jobs.values.select { |j| j.enabled? }
|
60
|
+
QBWC.jobs.values.select { |j| j.enabled? }
|
55
61
|
end
|
56
62
|
|
57
63
|
def build_request_generator(jobs)
|
58
|
-
Fiber.new do
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
Fiber.yield r
|
65
|
-
end
|
64
|
+
Fiber.new do
|
65
|
+
jobs.each do |j|
|
66
|
+
@current_job = j
|
67
|
+
while (r = next_request)
|
68
|
+
@current_request = r
|
69
|
+
Fiber.yield r
|
66
70
|
end
|
67
71
|
end
|
72
|
+
|
68
73
|
@progress = 100
|
69
74
|
nil
|
70
75
|
end
|
@@ -89,7 +94,7 @@ private
|
|
89
94
|
new_request = @current_request.to_hash
|
90
95
|
new_request.delete('xml_attributes')
|
91
96
|
new_request.values.first['xml_attributes'] = {'iterator' => 'Continue', 'iteratorID' => iterator_id}
|
92
|
-
@qbwc_iterator_queue << Request.new(new_request, @current_request.response_proc)
|
97
|
+
@qbwc_iterator_queue << QBWC::Request.new(new_request, @current_request.response_proc)
|
93
98
|
else
|
94
99
|
@qbwc_iterating = false
|
95
100
|
end
|
@@ -51,11 +51,11 @@ class QBWC::QBWebConnectorSvcSoap
|
|
51
51
|
# RETURNS
|
52
52
|
# parameters SendRequestXMLResponse - {http://developer.intuit.com/}sendRequestXMLResponse
|
53
53
|
#
|
54
|
+
|
54
55
|
def sendRequestXML(parameters)
|
55
56
|
qbwc_session = QBWC::Session.new_or_unfinished
|
56
57
|
next_request = qbwc_session.next
|
57
|
-
|
58
|
-
QBWC::SendRequestXMLResponse.new(wrap_in_version(next_request.request)) unless next_request.request.blank?
|
58
|
+
QBWC::SendRequestXMLResponse.new( next_request ? wrap_in_version(next_request.request) : '')
|
59
59
|
end
|
60
60
|
|
61
61
|
# SYNOPSIS
|
data/lib/qbwc/version.rb
CHANGED
data/qbwc.gemspec
CHANGED
@@ -22,7 +22,12 @@ Gem::Specification.new do |s|
|
|
22
22
|
"README.md"
|
23
23
|
]
|
24
24
|
|
25
|
-
|
26
|
-
|
25
|
+
s.add_dependency "quickbooks_api", [">= 0.1.6"]
|
26
|
+
s.add_dependency "rubyjedi-soap4r", [">= 1.5.8.20100619003610"]
|
27
|
+
s.add_development_dependency('guard')
|
28
|
+
s.add_development_dependency('guard-rspec')
|
29
|
+
s.add_development_dependency('rb-fsevent')
|
30
|
+
s.add_development_dependency('webmock')
|
31
|
+
s.add_development_dependency('rspec')
|
27
32
|
|
28
33
|
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
# This file was generated by the `rspec --init` command. Conventionally, all
|
2
|
+
# specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
|
3
|
+
# Require this file using `require "spec_helper"` to ensure that it is only
|
4
|
+
# loaded once.
|
5
|
+
#
|
6
|
+
# See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
|
7
|
+
RSpec.configure do |config|
|
8
|
+
config.treat_symbols_as_metadata_keys_with_true_values = true
|
9
|
+
config.run_all_when_everything_filtered = true
|
10
|
+
config.filter_run :focus
|
11
|
+
|
12
|
+
# Run specs in random order to surface order dependencies. If you find an
|
13
|
+
# order dependency and want to debug it, you can fix the order by providing
|
14
|
+
# the seed, which is printed after each run.
|
15
|
+
# --seed 1234
|
16
|
+
config.order = 'random'
|
17
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: qbwc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2012-
|
14
|
+
date: 2012-12-10 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: quickbooks_api
|
@@ -45,6 +45,86 @@ dependencies:
|
|
45
45
|
- - ! '>='
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: 1.5.8.20100619003610
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
name: guard
|
50
|
+
requirement: !ruby/object:Gem::Requirement
|
51
|
+
none: false
|
52
|
+
requirements:
|
53
|
+
- - ! '>='
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '0'
|
56
|
+
type: :development
|
57
|
+
prerelease: false
|
58
|
+
version_requirements: !ruby/object:Gem::Requirement
|
59
|
+
none: false
|
60
|
+
requirements:
|
61
|
+
- - ! '>='
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: '0'
|
64
|
+
- !ruby/object:Gem::Dependency
|
65
|
+
name: guard-rspec
|
66
|
+
requirement: !ruby/object:Gem::Requirement
|
67
|
+
none: false
|
68
|
+
requirements:
|
69
|
+
- - ! '>='
|
70
|
+
- !ruby/object:Gem::Version
|
71
|
+
version: '0'
|
72
|
+
type: :development
|
73
|
+
prerelease: false
|
74
|
+
version_requirements: !ruby/object:Gem::Requirement
|
75
|
+
none: false
|
76
|
+
requirements:
|
77
|
+
- - ! '>='
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: '0'
|
80
|
+
- !ruby/object:Gem::Dependency
|
81
|
+
name: rb-fsevent
|
82
|
+
requirement: !ruby/object:Gem::Requirement
|
83
|
+
none: false
|
84
|
+
requirements:
|
85
|
+
- - ! '>='
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: '0'
|
88
|
+
type: :development
|
89
|
+
prerelease: false
|
90
|
+
version_requirements: !ruby/object:Gem::Requirement
|
91
|
+
none: false
|
92
|
+
requirements:
|
93
|
+
- - ! '>='
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: '0'
|
96
|
+
- !ruby/object:Gem::Dependency
|
97
|
+
name: webmock
|
98
|
+
requirement: !ruby/object:Gem::Requirement
|
99
|
+
none: false
|
100
|
+
requirements:
|
101
|
+
- - ! '>='
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
none: false
|
108
|
+
requirements:
|
109
|
+
- - ! '>='
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: '0'
|
112
|
+
- !ruby/object:Gem::Dependency
|
113
|
+
name: rspec
|
114
|
+
requirement: !ruby/object:Gem::Requirement
|
115
|
+
none: false
|
116
|
+
requirements:
|
117
|
+
- - ! '>='
|
118
|
+
- !ruby/object:Gem::Version
|
119
|
+
version: '0'
|
120
|
+
type: :development
|
121
|
+
prerelease: false
|
122
|
+
version_requirements: !ruby/object:Gem::Requirement
|
123
|
+
none: false
|
124
|
+
requirements:
|
125
|
+
- - ! '>='
|
126
|
+
- !ruby/object:Gem::Version
|
127
|
+
version: '0'
|
48
128
|
description: A Rails interface for Intuit's Quickbooks Web Connector that's OPEN SOURCE!
|
49
129
|
email:
|
50
130
|
- rut216@gmail.com
|
@@ -56,8 +136,10 @@ extra_rdoc_files:
|
|
56
136
|
- README.md
|
57
137
|
files:
|
58
138
|
- .gitignore
|
139
|
+
- .rspec
|
59
140
|
- Gemfile
|
60
141
|
- Gemfile.lock
|
142
|
+
- Guardfile
|
61
143
|
- LICENSE.txt
|
62
144
|
- README.md
|
63
145
|
- Rakefile
|
@@ -77,8 +159,7 @@ files:
|
|
77
159
|
- lib/qbwc/soap_wrapper/defaultServant.rb
|
78
160
|
- lib/qbwc/version.rb
|
79
161
|
- qbwc.gemspec
|
80
|
-
-
|
81
|
-
- test/test_qbwc.rb
|
162
|
+
- spec/spec_helper.rb
|
82
163
|
homepage: ''
|
83
164
|
licenses: []
|
84
165
|
post_install_message:
|
@@ -104,5 +185,4 @@ signing_key:
|
|
104
185
|
specification_version: 3
|
105
186
|
summary: A Rails interface for Intuit's Quickbooks Web Connector
|
106
187
|
test_files:
|
107
|
-
-
|
108
|
-
- test/test_qbwc.rb
|
188
|
+
- spec/spec_helper.rb
|
data/test/helper.rb
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require 'bundler'
|
3
|
-
begin
|
4
|
-
Bundler.setup(:default, :development)
|
5
|
-
rescue Bundler::BundlerError => e
|
6
|
-
$stderr.puts e.message
|
7
|
-
$stderr.puts "Run `bundle install` to install missing gems"
|
8
|
-
exit e.status_code
|
9
|
-
end
|
10
|
-
require 'test/unit'
|
11
|
-
require 'shoulda'
|
12
|
-
|
13
|
-
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
14
|
-
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
15
|
-
require 'qbwc'
|
16
|
-
|
17
|
-
class Test::Unit::TestCase
|
18
|
-
end
|