endpoint_base 0.0.1 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (80) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.travis.yml +1 -2
  4. data/Rakefile +18 -1
  5. data/app/views/application/500.json.jbuilder +2 -0
  6. data/app/views/application/response.json.jbuilder +21 -0
  7. data/endpoint_base.gemspec +17 -6
  8. data/lib/endpoint_base.rb +29 -8
  9. data/lib/endpoint_base/concerns.rb +7 -0
  10. data/lib/endpoint_base/concerns/all.rb +15 -0
  11. data/lib/endpoint_base/concerns/exception_handler.rb +26 -0
  12. data/lib/endpoint_base/concerns/param_processor.rb +54 -0
  13. data/lib/endpoint_base/concerns/rails_responder.rb +20 -0
  14. data/lib/endpoint_base/concerns/response_dsl.rb +44 -0
  15. data/lib/endpoint_base/concerns/sinatra_responder.rb +38 -0
  16. data/lib/endpoint_base/concerns/token_authorization.rb +28 -0
  17. data/lib/endpoint_base/rails.rb +1 -0
  18. data/lib/endpoint_base/rails/engine.rb +5 -0
  19. data/lib/endpoint_base/sinatra.rb +2 -0
  20. data/lib/endpoint_base/sinatra/base.rb +11 -0
  21. data/lib/endpoint_base/sinatra/integrator_utils.rb +17 -0
  22. data/spec/rails/controllers/failing_controller_spec.rb +29 -0
  23. data/spec/rails/controllers/happy_controller_spec.rb +35 -0
  24. data/spec/rails/dummy/.gitignore +16 -0
  25. data/spec/rails/dummy/Gemfile +46 -0
  26. data/spec/rails/dummy/README.rdoc +28 -0
  27. data/spec/rails/dummy/Rakefile +6 -0
  28. data/spec/rails/dummy/app/assets/images/.keep +0 -0
  29. data/spec/rails/dummy/app/assets/javascripts/application.js +16 -0
  30. data/spec/rails/dummy/app/assets/stylesheets/application.css +13 -0
  31. data/spec/rails/dummy/app/controllers/application_controller.rb +5 -0
  32. data/spec/rails/dummy/app/controllers/concerns/.keep +0 -0
  33. data/spec/rails/dummy/app/controllers/failing_controller.rb +7 -0
  34. data/spec/rails/dummy/app/controllers/happy_controller.rb +13 -0
  35. data/spec/rails/dummy/app/helpers/application_helper.rb +2 -0
  36. data/spec/rails/dummy/app/mailers/.keep +0 -0
  37. data/spec/rails/dummy/app/models/.keep +0 -0
  38. data/spec/rails/dummy/app/models/concerns/.keep +0 -0
  39. data/spec/rails/dummy/app/views/layouts/application.html.erb +14 -0
  40. data/spec/rails/dummy/bin/bundle +3 -0
  41. data/spec/rails/dummy/bin/rails +4 -0
  42. data/spec/rails/dummy/bin/rake +4 -0
  43. data/spec/rails/dummy/config.ru +4 -0
  44. data/spec/rails/dummy/config/application.rb +28 -0
  45. data/spec/rails/dummy/config/boot.rb +4 -0
  46. data/spec/rails/dummy/config/database.yml +25 -0
  47. data/spec/rails/dummy/config/environment.rb +5 -0
  48. data/spec/rails/dummy/config/environments/development.rb +29 -0
  49. data/spec/rails/dummy/config/environments/production.rb +80 -0
  50. data/spec/rails/dummy/config/environments/test.rb +36 -0
  51. data/spec/rails/dummy/config/initializers/backtrace_silencers.rb +7 -0
  52. data/spec/rails/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  53. data/spec/rails/dummy/config/initializers/inflections.rb +16 -0
  54. data/spec/rails/dummy/config/initializers/mime_types.rb +5 -0
  55. data/spec/rails/dummy/config/initializers/secret_token.rb +12 -0
  56. data/spec/rails/dummy/config/initializers/session_store.rb +3 -0
  57. data/spec/rails/dummy/config/initializers/wrap_parameters.rb +14 -0
  58. data/spec/rails/dummy/config/locales/en.yml +23 -0
  59. data/spec/rails/dummy/config/routes.rb +4 -0
  60. data/spec/rails/dummy/db/seeds.rb +7 -0
  61. data/spec/rails/dummy/lib/assets/.keep +0 -0
  62. data/spec/rails/dummy/lib/tasks/.keep +0 -0
  63. data/spec/rails/dummy/log/.keep +0 -0
  64. data/spec/rails/dummy/public/404.html +58 -0
  65. data/spec/rails/dummy/public/422.html +58 -0
  66. data/spec/rails/dummy/public/500.html +57 -0
  67. data/spec/rails/dummy/public/favicon.ico +0 -0
  68. data/spec/rails/dummy/public/robots.txt +5 -0
  69. data/spec/rails/dummy/vendor/assets/javascripts/.keep +0 -0
  70. data/spec/rails/dummy/vendor/assets/stylesheets/.keep +0 -0
  71. data/spec/rails/spec_helper.rb +13 -0
  72. data/spec/rails/support/controllers.rb +17 -0
  73. data/spec/sinatra/endpoint_base_spec.rb +55 -0
  74. data/spec/sinatra/spec_helper.rb +55 -0
  75. data/spec/spec_helper.rb +3 -32
  76. metadata +217 -18
  77. data/lib/cross_origin.rb +0 -49
  78. data/lib/integrator_utils.rb +0 -58
  79. data/spec/cross_origin_spec.rb +0 -20
  80. data/spec/integrator_utils_spec.rb +0 -52
@@ -1,34 +1,5 @@
1
- require 'rubygems'
2
- require 'bundler'
3
- require 'vcr'
4
-
5
- Bundler.require(:default, :test)
6
- require 'rack/test'
7
-
8
- require File.join(File.dirname(__FILE__), '..', 'lib', 'endpoint_base.rb')
9
- Dir["./spec/support/**/*.rb"].each {|f| require f}
10
-
11
- Sinatra::Base.environment = 'test'
12
-
13
- def app
14
- TestEndpoint
15
- end
16
-
17
- RSpec.configure do |config|
18
- config.include Rack::Test::Methods
1
+ if ENV['FROM_RAKE'].nil?
2
+ puts "Please run specs with `bundle exec rake spec`"
3
+ exit 1
19
4
  end
20
5
 
21
- ENV['ENDPOINT_KEY'] = 'x123'
22
-
23
- class TestEndpoint < EndpointBase
24
-
25
- set :logging, true
26
-
27
- post '/' do
28
- process_result(200, @message)
29
- end
30
-
31
- post '/config' do
32
- process_result(200, config(@message))
33
- end
34
- end
metadata CHANGED
@@ -1,15 +1,57 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: endpoint_base
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Hooker
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-11-27 00:00:00.000000000 Z
11
+ date: 2013-11-28 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: json
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: jbuilder
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: activesupport
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
13
55
  - !ruby/object:Gem::Dependency
14
56
  name: sinatra
15
57
  requirement: !ruby/object:Gem::Requirement
@@ -17,7 +59,7 @@ dependencies:
17
59
  - - '='
18
60
  - !ruby/object:Gem::Version
19
61
  version: 1.4.3
20
- type: :runtime
62
+ type: :development
21
63
  prerelease: false
22
64
  version_requirements: !ruby/object:Gem::Requirement
23
65
  requirements:
@@ -31,7 +73,7 @@ dependencies:
31
73
  - - '>='
32
74
  - !ruby/object:Gem::Version
33
75
  version: '0'
34
- type: :runtime
76
+ type: :development
35
77
  prerelease: false
36
78
  version_requirements: !ruby/object:Gem::Requirement
37
79
  requirements:
@@ -39,13 +81,13 @@ dependencies:
39
81
  - !ruby/object:Gem::Version
40
82
  version: '0'
41
83
  - !ruby/object:Gem::Dependency
42
- name: json
84
+ name: tilt-jbuilder
43
85
  requirement: !ruby/object:Gem::Requirement
44
86
  requirements:
45
87
  - - '>='
46
88
  - !ruby/object:Gem::Version
47
89
  version: '0'
48
- type: :runtime
90
+ type: :development
49
91
  prerelease: false
50
92
  version_requirements: !ruby/object:Gem::Requirement
51
93
  requirements:
@@ -53,13 +95,55 @@ dependencies:
53
95
  - !ruby/object:Gem::Version
54
96
  version: '0'
55
97
  - !ruby/object:Gem::Dependency
56
- name: activesupport
98
+ name: rack-test
57
99
  requirement: !ruby/object:Gem::Requirement
58
100
  requirements:
59
101
  - - '>='
60
102
  - !ruby/object:Gem::Version
61
103
  version: '0'
62
- type: :runtime
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: rails
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ~>
116
+ - !ruby/object:Gem::Version
117
+ version: 4.0.0
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ~>
123
+ - !ruby/object:Gem::Version
124
+ version: 4.0.0
125
+ - !ruby/object:Gem::Dependency
126
+ name: rspec-rails
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - '>='
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - '>='
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: sqlite3
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - '>='
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
63
147
  prerelease: false
64
148
  version_requirements: !ruby/object:Gem::Requirement
65
149
  requirements:
@@ -95,7 +179,7 @@ dependencies:
95
179
  - !ruby/object:Gem::Version
96
180
  version: '0'
97
181
  - !ruby/object:Gem::Dependency
98
- name: rack-test
182
+ name: vcr
99
183
  requirement: !ruby/object:Gem::Requirement
100
184
  requirements:
101
185
  - - '>='
@@ -109,7 +193,7 @@ dependencies:
109
193
  - !ruby/object:Gem::Version
110
194
  version: '0'
111
195
  - !ruby/object:Gem::Dependency
112
- name: vcr
196
+ name: simplecov
113
197
  requirement: !ruby/object:Gem::Requirement
114
198
  requirements:
115
199
  - - '>='
@@ -122,7 +206,7 @@ dependencies:
122
206
  - - '>='
123
207
  - !ruby/object:Gem::Version
124
208
  version: '0'
125
- description: Shared functionality for spree professional endpoints
209
+ description: Shared functionality for SpreeCommerce hub endpoints
126
210
  email:
127
211
  - andrew@spreecommerce.com
128
212
  executables: []
@@ -137,13 +221,77 @@ files:
137
221
  - LICENSE.txt
138
222
  - README.md
139
223
  - Rakefile
224
+ - app/views/application/500.json.jbuilder
225
+ - app/views/application/response.json.jbuilder
140
226
  - endpoint_base.gemspec
141
- - lib/cross_origin.rb
142
227
  - lib/endpoint_base.rb
143
- - lib/integrator_utils.rb
228
+ - lib/endpoint_base/concerns.rb
229
+ - lib/endpoint_base/concerns/all.rb
230
+ - lib/endpoint_base/concerns/exception_handler.rb
231
+ - lib/endpoint_base/concerns/param_processor.rb
232
+ - lib/endpoint_base/concerns/rails_responder.rb
233
+ - lib/endpoint_base/concerns/response_dsl.rb
234
+ - lib/endpoint_base/concerns/sinatra_responder.rb
235
+ - lib/endpoint_base/concerns/token_authorization.rb
236
+ - lib/endpoint_base/rails.rb
237
+ - lib/endpoint_base/rails/engine.rb
238
+ - lib/endpoint_base/sinatra.rb
239
+ - lib/endpoint_base/sinatra/base.rb
240
+ - lib/endpoint_base/sinatra/integrator_utils.rb
144
241
  - lib/spree/testing_support/controllers.rb
145
- - spec/cross_origin_spec.rb
146
- - spec/integrator_utils_spec.rb
242
+ - spec/rails/controllers/failing_controller_spec.rb
243
+ - spec/rails/controllers/happy_controller_spec.rb
244
+ - spec/rails/dummy/.gitignore
245
+ - spec/rails/dummy/Gemfile
246
+ - spec/rails/dummy/README.rdoc
247
+ - spec/rails/dummy/Rakefile
248
+ - spec/rails/dummy/app/assets/images/.keep
249
+ - spec/rails/dummy/app/assets/javascripts/application.js
250
+ - spec/rails/dummy/app/assets/stylesheets/application.css
251
+ - spec/rails/dummy/app/controllers/application_controller.rb
252
+ - spec/rails/dummy/app/controllers/concerns/.keep
253
+ - spec/rails/dummy/app/controllers/failing_controller.rb
254
+ - spec/rails/dummy/app/controllers/happy_controller.rb
255
+ - spec/rails/dummy/app/helpers/application_helper.rb
256
+ - spec/rails/dummy/app/mailers/.keep
257
+ - spec/rails/dummy/app/models/.keep
258
+ - spec/rails/dummy/app/models/concerns/.keep
259
+ - spec/rails/dummy/app/views/layouts/application.html.erb
260
+ - spec/rails/dummy/bin/bundle
261
+ - spec/rails/dummy/bin/rails
262
+ - spec/rails/dummy/bin/rake
263
+ - spec/rails/dummy/config.ru
264
+ - spec/rails/dummy/config/application.rb
265
+ - spec/rails/dummy/config/boot.rb
266
+ - spec/rails/dummy/config/database.yml
267
+ - spec/rails/dummy/config/environment.rb
268
+ - spec/rails/dummy/config/environments/development.rb
269
+ - spec/rails/dummy/config/environments/production.rb
270
+ - spec/rails/dummy/config/environments/test.rb
271
+ - spec/rails/dummy/config/initializers/backtrace_silencers.rb
272
+ - spec/rails/dummy/config/initializers/filter_parameter_logging.rb
273
+ - spec/rails/dummy/config/initializers/inflections.rb
274
+ - spec/rails/dummy/config/initializers/mime_types.rb
275
+ - spec/rails/dummy/config/initializers/secret_token.rb
276
+ - spec/rails/dummy/config/initializers/session_store.rb
277
+ - spec/rails/dummy/config/initializers/wrap_parameters.rb
278
+ - spec/rails/dummy/config/locales/en.yml
279
+ - spec/rails/dummy/config/routes.rb
280
+ - spec/rails/dummy/db/seeds.rb
281
+ - spec/rails/dummy/lib/assets/.keep
282
+ - spec/rails/dummy/lib/tasks/.keep
283
+ - spec/rails/dummy/log/.keep
284
+ - spec/rails/dummy/public/404.html
285
+ - spec/rails/dummy/public/422.html
286
+ - spec/rails/dummy/public/500.html
287
+ - spec/rails/dummy/public/favicon.ico
288
+ - spec/rails/dummy/public/robots.txt
289
+ - spec/rails/dummy/vendor/assets/javascripts/.keep
290
+ - spec/rails/dummy/vendor/assets/stylesheets/.keep
291
+ - spec/rails/spec_helper.rb
292
+ - spec/rails/support/controllers.rb
293
+ - spec/sinatra/endpoint_base_spec.rb
294
+ - spec/sinatra/spec_helper.rb
147
295
  - spec/spec_helper.rb
148
296
  homepage: http://www.spreecommerce.com
149
297
  licenses: []
@@ -167,8 +315,59 @@ rubyforge_project:
167
315
  rubygems_version: 2.0.14
168
316
  signing_key:
169
317
  specification_version: 4
170
- summary: Spree Endpoints
318
+ summary: SpreeCommerce hub endpoints base library
171
319
  test_files:
172
- - spec/cross_origin_spec.rb
173
- - spec/integrator_utils_spec.rb
320
+ - spec/rails/controllers/failing_controller_spec.rb
321
+ - spec/rails/controllers/happy_controller_spec.rb
322
+ - spec/rails/dummy/.gitignore
323
+ - spec/rails/dummy/Gemfile
324
+ - spec/rails/dummy/README.rdoc
325
+ - spec/rails/dummy/Rakefile
326
+ - spec/rails/dummy/app/assets/images/.keep
327
+ - spec/rails/dummy/app/assets/javascripts/application.js
328
+ - spec/rails/dummy/app/assets/stylesheets/application.css
329
+ - spec/rails/dummy/app/controllers/application_controller.rb
330
+ - spec/rails/dummy/app/controllers/concerns/.keep
331
+ - spec/rails/dummy/app/controllers/failing_controller.rb
332
+ - spec/rails/dummy/app/controllers/happy_controller.rb
333
+ - spec/rails/dummy/app/helpers/application_helper.rb
334
+ - spec/rails/dummy/app/mailers/.keep
335
+ - spec/rails/dummy/app/models/.keep
336
+ - spec/rails/dummy/app/models/concerns/.keep
337
+ - spec/rails/dummy/app/views/layouts/application.html.erb
338
+ - spec/rails/dummy/bin/bundle
339
+ - spec/rails/dummy/bin/rails
340
+ - spec/rails/dummy/bin/rake
341
+ - spec/rails/dummy/config.ru
342
+ - spec/rails/dummy/config/application.rb
343
+ - spec/rails/dummy/config/boot.rb
344
+ - spec/rails/dummy/config/database.yml
345
+ - spec/rails/dummy/config/environment.rb
346
+ - spec/rails/dummy/config/environments/development.rb
347
+ - spec/rails/dummy/config/environments/production.rb
348
+ - spec/rails/dummy/config/environments/test.rb
349
+ - spec/rails/dummy/config/initializers/backtrace_silencers.rb
350
+ - spec/rails/dummy/config/initializers/filter_parameter_logging.rb
351
+ - spec/rails/dummy/config/initializers/inflections.rb
352
+ - spec/rails/dummy/config/initializers/mime_types.rb
353
+ - spec/rails/dummy/config/initializers/secret_token.rb
354
+ - spec/rails/dummy/config/initializers/session_store.rb
355
+ - spec/rails/dummy/config/initializers/wrap_parameters.rb
356
+ - spec/rails/dummy/config/locales/en.yml
357
+ - spec/rails/dummy/config/routes.rb
358
+ - spec/rails/dummy/db/seeds.rb
359
+ - spec/rails/dummy/lib/assets/.keep
360
+ - spec/rails/dummy/lib/tasks/.keep
361
+ - spec/rails/dummy/log/.keep
362
+ - spec/rails/dummy/public/404.html
363
+ - spec/rails/dummy/public/422.html
364
+ - spec/rails/dummy/public/500.html
365
+ - spec/rails/dummy/public/favicon.ico
366
+ - spec/rails/dummy/public/robots.txt
367
+ - spec/rails/dummy/vendor/assets/javascripts/.keep
368
+ - spec/rails/dummy/vendor/assets/stylesheets/.keep
369
+ - spec/rails/spec_helper.rb
370
+ - spec/rails/support/controllers.rb
371
+ - spec/sinatra/endpoint_base_spec.rb
372
+ - spec/sinatra/spec_helper.rb
174
373
  - spec/spec_helper.rb
@@ -1,49 +0,0 @@
1
- require 'sinatra/base'
2
-
3
- module Sinatra
4
- module CrossOrigin
5
- module Helpers
6
-
7
- # Apply cross origin headers either
8
- # from global config or custom config passed
9
- # as a hash
10
- def cross_origin(hash=nil)
11
- return unless request.env['HTTP_ORIGIN']
12
- settings.set hash if hash
13
-
14
- origin = settings.allow_origin == :any ? request.env['HTTP_ORIGIN'] : settings.allow_origin
15
- methods = settings.allow_methods.map{ |m| m.to_s.upcase! }.join(', ')
16
-
17
- headers_list = {
18
- 'Access-Control-Allow-Origin' => origin,
19
- 'Access-Control-Allow-Methods' => methods,
20
- 'Access-Control-Allow-Headers' => settings.allow_headers.map(&:to_s).join(', '),
21
- 'Access-Control-Allow-Credentials' => settings.allow_credentials.to_s,
22
- 'Access-Control-Max-Age' => settings.max_age.to_s
23
- }
24
-
25
- headers headers_list
26
- end
27
- end
28
-
29
- def self.registered(app)
30
-
31
- app.helpers CrossOrigin::Helpers
32
-
33
- app.set :cross_origin, false
34
- app.set :allow_origin, :any
35
- app.set :allow_methods, [:post, :get, :options]
36
- app.set :allow_credentials, true
37
- app.set :allow_headers, ["*", "Content-Type", "Accept", "AUTHORIZATION", "Cache-Control"]
38
- app.set :max_age, 1728000
39
-
40
- app.before do
41
- cross_origin if settings.cross_origin
42
- end
43
-
44
- end
45
- end
46
-
47
- register CrossOrigin
48
-
49
- end
@@ -1,58 +0,0 @@
1
- require 'sinatra/base'
2
- require 'sinatra/json'
3
- require 'json'
4
- require 'active_support/core_ext/hash'
5
- require 'multi_json'
6
-
7
- module Sinatra
8
- module IntegratorUtils
9
-
10
- module Helpers
11
- def config(message)
12
- conf = message[:payload]['parameters'] || []
13
-
14
- conf.inject(HashWithIndifferentAccess.new) do |result, param|
15
- result[param[:name]] = param[:value]
16
- result
17
- end
18
- end
19
-
20
- def process_result(code, response)
21
- status code
22
- json response
23
- end
24
- end
25
-
26
- def self.registered(app)
27
-
28
- app.helpers Sinatra::JSON
29
- app.helpers IntegratorUtils::Helpers
30
-
31
- app.set :public_folder, './public'
32
-
33
- app.before do
34
- if request.get? && request.path_info == '/'
35
- redirect '/endpoint.json'
36
- else
37
- halt 401 if request.env["HTTP_X_AUGURY_TOKEN"] != ENV['ENDPOINT_KEY']
38
- end
39
-
40
- if request.post?
41
- begin
42
- @message = ::JSON.parse(request.body.read).with_indifferent_access
43
- @config = config(@message)
44
- rescue Exception => e
45
- halt 406
46
- end
47
- end
48
- end
49
-
50
- app.get '/auth' do
51
- status 200
52
- end
53
- end
54
-
55
- end
56
-
57
- register IntegratorUtils
58
- end