qbwc 0.0.5 → 0.1.0

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 (39) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +5 -1
  3. data/.travis.yml +6 -0
  4. data/README.md +152 -144
  5. data/Rakefile +7 -1
  6. data/lib/generators/qbwc/install/install_generator.rb +20 -4
  7. data/lib/generators/qbwc/install/templates/config/qbwc.rb +42 -26
  8. data/lib/generators/qbwc/install/templates/controllers/qbwc_controller.rb +2 -38
  9. data/lib/generators/qbwc/install/templates/db/migrate/create_qbwc_jobs.rb +15 -0
  10. data/lib/generators/qbwc/install/templates/db/migrate/create_qbwc_sessions.rb +16 -0
  11. data/lib/qbwc.rb +107 -71
  12. data/lib/qbwc/active_record.rb +6 -0
  13. data/lib/qbwc/active_record/job.rb +111 -0
  14. data/lib/qbwc/active_record/session.rb +52 -0
  15. data/lib/qbwc/controller.rb +176 -0
  16. data/lib/qbwc/job.rb +81 -18
  17. data/lib/qbwc/railtie.rb +8 -0
  18. data/lib/qbwc/request.rb +14 -23
  19. data/lib/qbwc/session.rb +100 -72
  20. data/lib/qbwc/version.rb +1 -1
  21. data/lib/qbwc/worker.rb +16 -0
  22. data/qbwc.gemspec +11 -5
  23. data/test/qbwc/controllers/controller_test.rb +157 -0
  24. data/test/qbwc/integration/job_management_test.rb +86 -0
  25. data/test/qbwc/integration/request_generation_test.rb +340 -0
  26. data/test/qbwc/integration/response_test.rb +303 -0
  27. data/test/qbwc/integration/routes_test.rb +38 -0
  28. data/test/qbwc/integration/session_test.rb +94 -0
  29. data/test/test_helper.rb +248 -0
  30. data/test/wash_out_helper.rb +76 -0
  31. metadata +133 -55
  32. data/Gemfile.lock +0 -72
  33. data/lib/qbwc/soap_wrapper.rb +0 -35
  34. data/lib/qbwc/soap_wrapper/QBWebConnectorSvc.rb +0 -69
  35. data/lib/qbwc/soap_wrapper/QBWebConnectorSvc.wsdl +0 -312
  36. data/lib/qbwc/soap_wrapper/default.rb +0 -198
  37. data/lib/qbwc/soap_wrapper/defaultMappingRegistry.rb +0 -163
  38. data/lib/qbwc/soap_wrapper/defaultServant.rb +0 -133
  39. data/spec/spec_helper.rb +0 -17
@@ -0,0 +1,76 @@
1
+ # Copy of what's in the gem. Can't figure out how to include it.
2
+ module WashOutHelper
3
+
4
+ def wsdl_data_options(param)
5
+ case controller.soap_config.wsdl_style
6
+ when 'rpc'
7
+ { :"xsi:type" => param.namespaced_type }
8
+ when 'document'
9
+ { }
10
+ end
11
+ end
12
+
13
+ def wsdl_data(xml, params)
14
+ params.each do |param|
15
+ tag_name = param.name
16
+ param_options = wsdl_data_options(param)
17
+
18
+ if !param.struct?
19
+ if !param.multiplied
20
+ xml.tag! tag_name, param.value, param_options
21
+ else
22
+ param.value = [] unless param.value.is_a?(Array)
23
+ param.value.each do |v|
24
+ xml.tag! tag_name, v, param_options
25
+ end
26
+ end
27
+ else
28
+ if !param.multiplied
29
+ xml.tag! tag_name, param_options do
30
+ wsdl_data(xml, param.map)
31
+ end
32
+ else
33
+ param.map.each do |p|
34
+ xml.tag! tag_name, param_options do
35
+ wsdl_data(xml, p.map)
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
42
+
43
+ def wsdl_type(xml, param, defined=[])
44
+ more = []
45
+
46
+ if param.struct?
47
+ if !defined.include?(param.basic_type)
48
+ xml.tag! "xsd:complexType", :name => param.basic_type do
49
+ xml.tag! "xsd:sequence" do
50
+ param.map.each do |value|
51
+ more << value if value.struct?
52
+ xml.tag! "xsd:element", wsdl_occurence(value, false, :name => value.name, :type => value.namespaced_type)
53
+ end
54
+ end
55
+ end
56
+
57
+ defined << param.basic_type
58
+ elsif !param.classified?
59
+ raise RuntimeError, "Duplicate use of `#{param.basic_type}` type name. Consider using classified types."
60
+ end
61
+ end
62
+
63
+ more.each do |p|
64
+ wsdl_type xml, p, defined
65
+ end
66
+ end
67
+
68
+ def wsdl_occurence(param, inject, extend_with = {})
69
+ data = !param.multiplied ? {} : {
70
+ "#{'xsi:' if inject}minOccurs" => 0,
71
+ "#{'xsi:' if inject}maxOccurs" => 'unbounded'
72
+ }
73
+
74
+ extend_with.merge(data)
75
+ end
76
+ end
metadata CHANGED
@@ -1,128 +1,198 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: qbwc
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
5
- prerelease:
4
+ version: 0.1.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Alex Skryl
9
8
  - Russell Osborne
10
9
  - German Garcia
10
+ - Jason Barnabe
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2012-12-10 00:00:00.000000000 Z
14
+ date: 2015-04-04 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
- name: quickbooks_api
17
+ name: qbxml
18
18
  requirement: !ruby/object:Gem::Requirement
19
- none: false
20
19
  requirements:
21
- - - ! '>='
20
+ - - ">="
22
21
  - !ruby/object:Gem::Version
23
- version: 0.1.6
22
+ version: 0.3.0
24
23
  type: :runtime
25
24
  prerelease: false
26
25
  version_requirements: !ruby/object:Gem::Requirement
27
- none: false
28
26
  requirements:
29
- - - ! '>='
27
+ - - ">="
30
28
  - !ruby/object:Gem::Version
31
- version: 0.1.6
29
+ version: 0.3.0
32
30
  - !ruby/object:Gem::Dependency
33
- name: rubyjedi-soap4r
31
+ name: wash_out
34
32
  requirement: !ruby/object:Gem::Requirement
35
- none: false
36
33
  requirements:
37
- - - ! '>='
34
+ - - ">="
38
35
  - !ruby/object:Gem::Version
39
- version: 1.5.8.20100619003610
36
+ version: 0.7.1
40
37
  type: :runtime
41
38
  prerelease: false
42
39
  version_requirements: !ruby/object:Gem::Requirement
43
- none: false
44
40
  requirements:
45
- - - ! '>='
41
+ - - ">="
46
42
  - !ruby/object:Gem::Version
47
- version: 1.5.8.20100619003610
43
+ version: 0.7.1
48
44
  - !ruby/object:Gem::Dependency
49
45
  name: guard
50
46
  requirement: !ruby/object:Gem::Requirement
51
- none: false
52
47
  requirements:
53
- - - ! '>='
48
+ - - ">="
54
49
  - !ruby/object:Gem::Version
55
50
  version: '0'
56
51
  type: :development
57
52
  prerelease: false
58
53
  version_requirements: !ruby/object:Gem::Requirement
59
- none: false
60
54
  requirements:
61
- - - ! '>='
55
+ - - ">="
62
56
  - !ruby/object:Gem::Version
63
57
  version: '0'
64
58
  - !ruby/object:Gem::Dependency
65
59
  name: guard-rspec
66
60
  requirement: !ruby/object:Gem::Requirement
67
- none: false
68
61
  requirements:
69
- - - ! '>='
62
+ - - ">="
70
63
  - !ruby/object:Gem::Version
71
64
  version: '0'
72
65
  type: :development
73
66
  prerelease: false
74
67
  version_requirements: !ruby/object:Gem::Requirement
75
- none: false
76
68
  requirements:
77
- - - ! '>='
69
+ - - ">="
78
70
  - !ruby/object:Gem::Version
79
71
  version: '0'
80
72
  - !ruby/object:Gem::Dependency
81
73
  name: rb-fsevent
82
74
  requirement: !ruby/object:Gem::Requirement
83
- none: false
84
75
  requirements:
85
- - - ! '>='
76
+ - - ">="
86
77
  - !ruby/object:Gem::Version
87
78
  version: '0'
88
79
  type: :development
89
80
  prerelease: false
90
81
  version_requirements: !ruby/object:Gem::Requirement
91
- none: false
92
82
  requirements:
93
- - - ! '>='
83
+ - - ">="
94
84
  - !ruby/object:Gem::Version
95
85
  version: '0'
96
86
  - !ruby/object:Gem::Dependency
97
87
  name: webmock
98
88
  requirement: !ruby/object:Gem::Requirement
99
- none: false
100
89
  requirements:
101
- - - ! '>='
90
+ - - ">="
102
91
  - !ruby/object:Gem::Version
103
92
  version: '0'
104
93
  type: :development
105
94
  prerelease: false
106
95
  version_requirements: !ruby/object:Gem::Requirement
107
- none: false
108
96
  requirements:
109
- - - ! '>='
97
+ - - ">="
110
98
  - !ruby/object:Gem::Version
111
99
  version: '0'
112
100
  - !ruby/object:Gem::Dependency
113
101
  name: rspec
114
102
  requirement: !ruby/object:Gem::Requirement
115
- none: false
116
103
  requirements:
117
- - - ! '>='
104
+ - - ">="
118
105
  - !ruby/object:Gem::Version
119
106
  version: '0'
120
107
  type: :development
121
108
  prerelease: false
122
109
  version_requirements: !ruby/object:Gem::Requirement
123
- none: false
124
110
  requirements:
125
- - - ! '>='
111
+ - - ">="
112
+ - !ruby/object:Gem::Version
113
+ version: '0'
114
+ - !ruby/object:Gem::Dependency
115
+ name: activerecord
116
+ requirement: !ruby/object:Gem::Requirement
117
+ requirements:
118
+ - - ">="
119
+ - !ruby/object:Gem::Version
120
+ version: '0'
121
+ type: :development
122
+ prerelease: false
123
+ version_requirements: !ruby/object:Gem::Requirement
124
+ requirements:
125
+ - - ">="
126
+ - !ruby/object:Gem::Version
127
+ version: '0'
128
+ - !ruby/object:Gem::Dependency
129
+ name: actionpack
130
+ requirement: !ruby/object:Gem::Requirement
131
+ requirements:
132
+ - - ">="
133
+ - !ruby/object:Gem::Version
134
+ version: '0'
135
+ type: :development
136
+ prerelease: false
137
+ version_requirements: !ruby/object:Gem::Requirement
138
+ requirements:
139
+ - - ">="
140
+ - !ruby/object:Gem::Version
141
+ version: '0'
142
+ - !ruby/object:Gem::Dependency
143
+ name: rails
144
+ requirement: !ruby/object:Gem::Requirement
145
+ requirements:
146
+ - - ">="
147
+ - !ruby/object:Gem::Version
148
+ version: 4.1.0
149
+ type: :development
150
+ prerelease: false
151
+ version_requirements: !ruby/object:Gem::Requirement
152
+ requirements:
153
+ - - ">="
154
+ - !ruby/object:Gem::Version
155
+ version: 4.1.0
156
+ - !ruby/object:Gem::Dependency
157
+ name: sqlite3
158
+ requirement: !ruby/object:Gem::Requirement
159
+ requirements:
160
+ - - ">="
161
+ - !ruby/object:Gem::Version
162
+ version: '0'
163
+ type: :development
164
+ prerelease: false
165
+ version_requirements: !ruby/object:Gem::Requirement
166
+ requirements:
167
+ - - ">="
168
+ - !ruby/object:Gem::Version
169
+ version: '0'
170
+ - !ruby/object:Gem::Dependency
171
+ name: minitest
172
+ requirement: !ruby/object:Gem::Requirement
173
+ requirements:
174
+ - - ">="
175
+ - !ruby/object:Gem::Version
176
+ version: '0'
177
+ type: :development
178
+ prerelease: false
179
+ version_requirements: !ruby/object:Gem::Requirement
180
+ requirements:
181
+ - - ">="
182
+ - !ruby/object:Gem::Version
183
+ version: '0'
184
+ - !ruby/object:Gem::Dependency
185
+ name: rake
186
+ requirement: !ruby/object:Gem::Requirement
187
+ requirements:
188
+ - - ">="
189
+ - !ruby/object:Gem::Version
190
+ version: '0'
191
+ type: :development
192
+ prerelease: false
193
+ version_requirements: !ruby/object:Gem::Requirement
194
+ requirements:
195
+ - - ">="
126
196
  - !ruby/object:Gem::Version
127
197
  version: '0'
128
198
  description: A Rails interface for Intuit's Quickbooks Web Connector that's OPEN SOURCE!
@@ -130,15 +200,16 @@ email:
130
200
  - rut216@gmail.com
131
201
  - russell@burningpony.com
132
202
  - geermc4@gmail.com
203
+ - jason.barnabe@gmail.com
133
204
  executables: []
134
205
  extensions: []
135
206
  extra_rdoc_files:
136
207
  - README.md
137
208
  files:
138
- - .gitignore
139
- - .rspec
209
+ - ".gitignore"
210
+ - ".rspec"
211
+ - ".travis.yml"
140
212
  - Gemfile
141
- - Gemfile.lock
142
213
  - Guardfile
143
214
  - LICENSE.txt
144
215
  - README.md
@@ -146,43 +217,50 @@ files:
146
217
  - lib/generators/qbwc/install/install_generator.rb
147
218
  - lib/generators/qbwc/install/templates/config/qbwc.rb
148
219
  - lib/generators/qbwc/install/templates/controllers/qbwc_controller.rb
220
+ - lib/generators/qbwc/install/templates/db/migrate/create_qbwc_jobs.rb
221
+ - lib/generators/qbwc/install/templates/db/migrate/create_qbwc_sessions.rb
149
222
  - lib/generators/qbwc/install/usage.md
150
223
  - lib/qbwc.rb
224
+ - lib/qbwc/active_record.rb
225
+ - lib/qbwc/active_record/job.rb
226
+ - lib/qbwc/active_record/session.rb
227
+ - lib/qbwc/controller.rb
151
228
  - lib/qbwc/job.rb
229
+ - lib/qbwc/railtie.rb
152
230
  - lib/qbwc/request.rb
153
231
  - lib/qbwc/session.rb
154
- - lib/qbwc/soap_wrapper.rb
155
- - lib/qbwc/soap_wrapper/QBWebConnectorSvc.rb
156
- - lib/qbwc/soap_wrapper/QBWebConnectorSvc.wsdl
157
- - lib/qbwc/soap_wrapper/default.rb
158
- - lib/qbwc/soap_wrapper/defaultMappingRegistry.rb
159
- - lib/qbwc/soap_wrapper/defaultServant.rb
160
232
  - lib/qbwc/version.rb
233
+ - lib/qbwc/worker.rb
161
234
  - qbwc.gemspec
162
- - spec/spec_helper.rb
235
+ - test/qbwc/controllers/controller_test.rb
236
+ - test/qbwc/integration/job_management_test.rb
237
+ - test/qbwc/integration/request_generation_test.rb
238
+ - test/qbwc/integration/response_test.rb
239
+ - test/qbwc/integration/routes_test.rb
240
+ - test/qbwc/integration/session_test.rb
241
+ - test/test_helper.rb
242
+ - test/wash_out_helper.rb
163
243
  homepage: ''
164
244
  licenses: []
245
+ metadata: {}
165
246
  post_install_message:
166
247
  rdoc_options: []
167
248
  require_paths:
168
249
  - lib
169
250
  required_ruby_version: !ruby/object:Gem::Requirement
170
- none: false
171
251
  requirements:
172
- - - ! '>='
252
+ - - ">="
173
253
  - !ruby/object:Gem::Version
174
254
  version: '0'
175
255
  required_rubygems_version: !ruby/object:Gem::Requirement
176
- none: false
177
256
  requirements:
178
- - - ! '>='
257
+ - - ">="
179
258
  - !ruby/object:Gem::Version
180
259
  version: '0'
181
260
  requirements: []
182
261
  rubyforge_project: qbwc
183
- rubygems_version: 1.8.24
262
+ rubygems_version: 2.4.6
184
263
  signing_key:
185
- specification_version: 3
264
+ specification_version: 4
186
265
  summary: A Rails interface for Intuit's Quickbooks Web Connector
187
- test_files:
188
- - spec/spec_helper.rb
266
+ test_files: []
@@ -1,72 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- qbwc (0.0.4)
5
- quickbooks_api (>= 0.1.6)
6
- rubyjedi-soap4r (>= 1.5.8.20100619003610)
7
-
8
- GEM
9
- remote: http://rubygems.org/
10
- specs:
11
- activesupport (3.2.8)
12
- i18n (~> 0.6)
13
- multi_json (~> 1.0)
14
- addressable (2.3.2)
15
- buffered_logger (0.1.3)
16
- activesupport
17
- i18n
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)
30
- httpclient (2.1.5.2)
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)
36
- nokogiri (1.5.5)
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)
42
- activesupport
43
- buffered_logger (>= 0.1.3)
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)
54
- rubyjedi-soap4r (1.5.8.20100619003610)
55
- httpclient (~> 2.1.5.2)
56
- slop (3.3.3)
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)
62
-
63
- PLATFORMS
64
- ruby
65
-
66
- DEPENDENCIES
67
- guard
68
- guard-rspec
69
- qbwc!
70
- rb-fsevent
71
- rspec
72
- webmock