zuora_connect 2.0.5z → 2.0.5za
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 +4 -4
- data/app/models/zuora_connect/app_instance_base.rb +30 -28
- data/config/initializers/patches.rb +9 -0
- data/lib/middleware/json_parse_errors.rb +22 -0
- data/lib/zuora_connect/controllers/helpers.rb +2 -2
- data/lib/zuora_connect/railtie.rb +3 -1
- data/lib/zuora_connect/version.rb +2 -2
- metadata +27 -25
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bc2de03ab111d1b49a4ac3124b143d3c070f3854f365284b6fd0275d19b24373
|
4
|
+
data.tar.gz: 64a2e8fb4ff102e98c5d1850016d76d80e75f42bc1e9ae7c87512d465ca60786
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5ed88071768d563993ea4566233dfe988ad49332b70b02a4c7f864d060598564b52fbdf90c52987b2ab25d2bd114373286e8270192a5b2084311e0a3f7fef92f
|
7
|
+
data.tar.gz: ed5f16d9d65e78d7293c79478eabbd219b648424f746bf967b58d302978179ce7ff06844d62304223785fcc734cdade3c60e3370ffcac7ee60b83b413e83aeb7
|
@@ -89,7 +89,11 @@ module ZuoraConnect
|
|
89
89
|
Thread.current[:appinstance] = self
|
90
90
|
end
|
91
91
|
|
92
|
-
def
|
92
|
+
def default_ougai_items
|
93
|
+
return {app_instance_id: self.id}
|
94
|
+
end
|
95
|
+
|
96
|
+
def new_session(session: self.data_lookup, username: self.access_token, password: self.refresh_token, holding_pattern: false, **args)
|
93
97
|
self.api_version = "v2"
|
94
98
|
self.username = username
|
95
99
|
self.password = password
|
@@ -123,26 +127,26 @@ module ZuoraConnect
|
|
123
127
|
|
124
128
|
if session.empty?
|
125
129
|
self.new_session_message = "REFRESHING - Session Empty"
|
126
|
-
ZuoraConnect.logger.
|
130
|
+
ZuoraConnect.logger.debug(self.new_session_message, self.default_ougai_items)
|
127
131
|
raise ZuoraConnect::Exceptions::HoldingPattern if holding_pattern && !self.mark_for_refresh
|
128
132
|
self.refresh(session: session)
|
129
133
|
|
130
134
|
elsif (self.id != session["appInstance"].to_i)
|
131
135
|
self.new_session_message = "REFRESHING - AppInstance ID(#{self.id}) does not match session id(#{session["appInstance"].to_i})"
|
132
|
-
ZuoraConnect.logger.
|
136
|
+
ZuoraConnect.logger.debug(self.new_session_message, self.default_ougai_items)
|
133
137
|
raise ZuoraConnect::Exceptions::HoldingPattern if holding_pattern && !self.mark_for_refresh
|
134
138
|
self.refresh(session: session)
|
135
139
|
|
136
140
|
elsif session["#{self.id}::task_data"].blank?
|
137
141
|
self.new_session_message = "REFRESHING - Task Data Blank"
|
138
|
-
ZuoraConnect.logger.
|
142
|
+
ZuoraConnect.logger.debug(self.new_session_message, self.default_ougai_items)
|
139
143
|
raise ZuoraConnect::Exceptions::HoldingPattern if holding_pattern && !self.mark_for_refresh
|
140
144
|
self.refresh(session: session)
|
141
145
|
|
142
146
|
elsif session["#{self.id}::last_refresh"].blank?
|
143
147
|
self.new_session_message = "REFRESHING - No Time on Cookie"
|
144
148
|
recoverable_session = true
|
145
|
-
ZuoraConnect.logger.
|
149
|
+
ZuoraConnect.logger.debug(self.new_session_message, self.default_ougai_items)
|
146
150
|
raise ZuoraConnect::Exceptions::HoldingPattern if holding_pattern && !self.mark_for_refresh
|
147
151
|
self.refresh(session: session)
|
148
152
|
|
@@ -150,7 +154,7 @@ module ZuoraConnect
|
|
150
154
|
elsif (session["#{self.id}::last_refresh"].to_i < INSTANCE_REFRESH_WINDOW.ago.to_i) && self.mark_for_refresh
|
151
155
|
self.new_session_message = "REFRESHING - Session Old by #{time_expire.abs} second"
|
152
156
|
recoverable_session = true
|
153
|
-
ZuoraConnect.logger.
|
157
|
+
ZuoraConnect.logger.debug(self.new_session_message, self.default_ougai_items)
|
154
158
|
self.refresh(session: session)
|
155
159
|
|
156
160
|
else
|
@@ -159,14 +163,14 @@ module ZuoraConnect
|
|
159
163
|
else
|
160
164
|
self.new_session_message = "REBUILDING - Expires in #{time_expire} seconds"
|
161
165
|
end
|
162
|
-
ZuoraConnect.logger.
|
166
|
+
ZuoraConnect.logger.debug(self.new_session_message, self.default_ougai_items)
|
163
167
|
self.build_task(task_data: session["#{self.id}::task_data"], session: session)
|
164
168
|
end
|
165
169
|
end
|
166
170
|
return self
|
167
171
|
rescue ZuoraConnect::Exceptions::HoldingPattern => ex
|
168
172
|
while self.marked_for_refresh?
|
169
|
-
ZuoraConnect.logger.info("Holding - Expires in #{self.reset_mark_expires_at}. '#{self.new_session_message}'")
|
173
|
+
ZuoraConnect.logger.info("Holding - Expires in #{self.reset_mark_expires_at}. '#{self.new_session_message}'", self.default_ougai_items)
|
170
174
|
sleep(HOLDING_PATTERN_SLEEP)
|
171
175
|
end
|
172
176
|
self.reload_attributes([:refresh_token, :oauth_expires_at, :access_token])
|
@@ -174,7 +178,7 @@ module ZuoraConnect
|
|
174
178
|
retry
|
175
179
|
rescue => ex
|
176
180
|
if recoverable_session
|
177
|
-
ZuoraConnect.logger.warn("REBUILDING - Using backup expired cache")
|
181
|
+
ZuoraConnect.logger.warn("REBUILDING - Using backup expired cache", self.default_ougai_items)
|
178
182
|
self.build_task(task_data: session["#{self.id}::task_data"], session: session)
|
179
183
|
return self
|
180
184
|
else
|
@@ -212,7 +216,7 @@ module ZuoraConnect
|
|
212
216
|
response = HTTParty.get(ZuoraConnect.configuration.url + "/api/#{self.api_version}/tools/tasks/#{self.id}.json",:body => {:access_token => self.access_token})
|
213
217
|
response_time = Time.now - start
|
214
218
|
|
215
|
-
ZuoraConnect.logger.debug("
|
219
|
+
ZuoraConnect.logger.debug("REFRESH TASK - Connect Task Info Request Time #{response_time.round(2).to_s}", self.default_ougai_items)
|
216
220
|
if response.code == 200
|
217
221
|
self.build_task(task_data: JSON.parse(response.body), session: session)
|
218
222
|
self.last_refresh = Time.now.to_i
|
@@ -230,23 +234,23 @@ module ZuoraConnect
|
|
230
234
|
rescue *(ZuoraAPI::Login::CONNECTION_EXCEPTIONS).concat(ZuoraAPI::Login::CONNECTION_READ_EXCEPTIONS) => ex
|
231
235
|
if (refresh_count += 1) < 3
|
232
236
|
sleep(30)
|
233
|
-
ZuoraConnect.logger.info("
|
237
|
+
ZuoraConnect.logger.info("REFRESH TASK - #{ex.class} Retrying(#{refresh_count})", self.default_ougai_items)
|
234
238
|
retry
|
235
239
|
else
|
236
|
-
ZuoraConnect.logger.fatal("
|
240
|
+
ZuoraConnect.logger.fatal("REFRESH TASK - #{ex.class} Failed #{refresh_count}x", self.default_ougai_items)
|
237
241
|
raise
|
238
242
|
end
|
239
243
|
rescue ZuoraConnect::Exceptions::ConnectCommunicationError => ex
|
240
244
|
if (refresh_count += 1) < 3
|
241
245
|
if ex.code == 401
|
242
|
-
ZuoraConnect.logger.info("
|
246
|
+
ZuoraConnect.logger.info("REFRESH TASK - Failed #{ex.code} - Retrying(#{refresh_count})", self.default_ougai_items)
|
243
247
|
self.refresh_oauth
|
244
248
|
else
|
245
|
-
ZuoraConnect.logger.warn("
|
249
|
+
ZuoraConnect.logger.warn("REFRESH TASK - Failed #{ex.code} - Retrying(#{refresh_count})", self.default_ougai_items)
|
246
250
|
end
|
247
251
|
retry
|
248
252
|
else
|
249
|
-
ZuoraConnect.logger.fatal("
|
253
|
+
ZuoraConnect.logger.fatal("REFRESH TASK - Failed #{ex.code} - #{refresh_count}x", self.default_ougai_items)
|
250
254
|
raise
|
251
255
|
end
|
252
256
|
end
|
@@ -484,7 +488,7 @@ module ZuoraConnect
|
|
484
488
|
def check_oauth_state(method)
|
485
489
|
#Refresh token if already expired
|
486
490
|
if self.oauth_expired?
|
487
|
-
ZuoraConnect.logger.debug("
|
491
|
+
ZuoraConnect.logger.debug("Before '#{method}' method, Oauth expired", self.default_ougai_items)
|
488
492
|
self.refresh_oauth
|
489
493
|
end
|
490
494
|
end
|
@@ -503,7 +507,7 @@ module ZuoraConnect
|
|
503
507
|
}
|
504
508
|
response = HTTParty.post("#{ZuoraConnect.configuration.url}/oauth/token",:body => params)
|
505
509
|
response_time = Time.now - start
|
506
|
-
ZuoraConnect.logger.debug("
|
510
|
+
ZuoraConnect.logger.debug("REFRESH OAUTH - In #{response_time.round(2).to_s}", self.default_ougai_items)
|
507
511
|
|
508
512
|
if response.code == 200
|
509
513
|
response_body = JSON.parse(response.body)
|
@@ -517,10 +521,10 @@ module ZuoraConnect
|
|
517
521
|
end
|
518
522
|
rescue *(ZuoraAPI::Login::CONNECTION_EXCEPTIONS).concat(ZuoraAPI::Login::CONNECTION_READ_EXCEPTIONS) => ex
|
519
523
|
if (refresh_oauth_count += 1) < 3
|
520
|
-
ZuoraConnect.logger.info("
|
524
|
+
ZuoraConnect.logger.info("REFRESH OAUTH - #{ex.class} Retrying(#{refresh_oauth_count})", self.default_ougai_items)
|
521
525
|
retry
|
522
526
|
else
|
523
|
-
ZuoraConnect.logger.fatal("
|
527
|
+
ZuoraConnect.logger.fatal("REFRESH OAUTH - #{ex.class} Failed #{refresh_oauth_count}x", self.default_ougai_items)
|
524
528
|
raise
|
525
529
|
end
|
526
530
|
rescue ZuoraConnect::Exceptions::ConnectCommunicationError => ex
|
@@ -531,10 +535,10 @@ module ZuoraConnect
|
|
531
535
|
return if !self.oauth_expired?
|
532
536
|
|
533
537
|
if (refresh_oauth_count += 1) < 3
|
534
|
-
ZuoraConnect.logger.info("
|
538
|
+
ZuoraConnect.logger.info("REFRESH OAUTH - Failed #{ex.code} - Retrying(#{refresh_oauth_count})", self.default_ougai_items)
|
535
539
|
retry
|
536
540
|
else
|
537
|
-
ZuoraConnect.logger.fatal("
|
541
|
+
ZuoraConnect.logger.fatal("REFRESH OAUTH - Failed #{ex.code} - #{refresh_oauth_count}x", self.default_ougai_items)
|
538
542
|
raise
|
539
543
|
end
|
540
544
|
end
|
@@ -584,10 +588,10 @@ module ZuoraConnect
|
|
584
588
|
end
|
585
589
|
end
|
586
590
|
if cached_instance.blank?
|
587
|
-
ZuoraConnect.logger.debug("
|
591
|
+
ZuoraConnect.logger.debug("Cached AppInstance Missing", self.default_ougai_items)
|
588
592
|
return session
|
589
593
|
else
|
590
|
-
ZuoraConnect.logger.debug("
|
594
|
+
ZuoraConnect.logger.debug("Cached AppInstance Found", self.default_ougai_items)
|
591
595
|
return decrypt_data(data: cached_instance, rescue_return: session).merge(session)
|
592
596
|
end
|
593
597
|
else
|
@@ -599,7 +603,7 @@ module ZuoraConnect
|
|
599
603
|
if defined?(Redis.current)
|
600
604
|
#Task data must be present and the last refresh cannot be old. We dont want to overwite new cache data with old
|
601
605
|
if self.task_data.present? && (self.last_refresh.to_i > INSTANCE_REFRESH_WINDOW.ago.to_i)
|
602
|
-
ZuoraConnect.logger.debug("
|
606
|
+
ZuoraConnect.logger.debug("Caching AppInstance", self.default_ougai_items)
|
603
607
|
Redis.current.setex("AppInstance:#{self.id}", INSTANCE_REDIS_CACHE_PERIOD.to_i, self.encrypt_data(data: self.save_data))
|
604
608
|
end
|
605
609
|
end
|
@@ -660,7 +664,7 @@ module ZuoraConnect
|
|
660
664
|
begin
|
661
665
|
return JSON.parse(encryptor.decrypt_and_verify(CGI::unescape(data)))
|
662
666
|
rescue ActiveSupport::MessageVerifier::InvalidSignature => ex
|
663
|
-
ZuoraConnect.logger.
|
667
|
+
ZuoraConnect.logger.error("Error Decrypting", self.default_ougai_items) if log_fatal
|
664
668
|
return rescue_return
|
665
669
|
rescue JSON::ParserError => ex
|
666
670
|
return encryptor.decrypt_and_verify(CGI::unescape(data))
|
@@ -1029,9 +1033,7 @@ module ZuoraConnect
|
|
1029
1033
|
|
1030
1034
|
def method_missing(method_sym, *arguments, &block)
|
1031
1035
|
if method_sym.to_s.include?("login")
|
1032
|
-
ZuoraConnect.logger.fatal("Method Missing #{method_sym}")
|
1033
|
-
ZuoraConnect.logger.fatal("Instance Data: #{self.task_data}")
|
1034
|
-
ZuoraConnect.logger.fatal("Instance Logins: #{self.logins}")
|
1036
|
+
ZuoraConnect.logger.fatal("Method Missing #{method_sym}. Instance Data: #{self.task_data} Instance Logins: #{self.logins}", self.default_ougai_items)
|
1035
1037
|
end
|
1036
1038
|
super
|
1037
1039
|
end
|
@@ -0,0 +1,9 @@
|
|
1
|
+
#Used to ensure encode of UploadedFile for lograge does not dump entire file.
|
2
|
+
class ActionDispatch::Http::UploadedFile
|
3
|
+
def as_json(options = nil)
|
4
|
+
%w(headers).inject({}) do |hash, attr|
|
5
|
+
hash[attr] = send(attr).force_encoding('utf-8')
|
6
|
+
hash
|
7
|
+
end
|
8
|
+
end
|
9
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module ZuoraConnect
|
2
|
+
class JsonParseErrors
|
3
|
+
def initialize(app)
|
4
|
+
@app = app
|
5
|
+
end
|
6
|
+
|
7
|
+
def call(env)
|
8
|
+
begin
|
9
|
+
@app.call(env)
|
10
|
+
rescue ActionDispatch::ParamsParser::ParseError => error
|
11
|
+
if env['HTTP_ACCEPT'] =~ /application\/json/ || env['CONTENT_TYPE'] =~ /application\/json/
|
12
|
+
return [
|
13
|
+
400, { "Content-Type" => "application/json" },
|
14
|
+
[{"success": false, "reasons": [{"code": 50000090, "message": "Malformed json was submitted." }]}.to_json ]
|
15
|
+
]
|
16
|
+
else
|
17
|
+
raise error
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -211,7 +211,7 @@ module ZuoraConnect
|
|
211
211
|
client_describe = session["ZuoraCurrentUserInfo"]
|
212
212
|
end
|
213
213
|
|
214
|
-
available_entities = client_describe["accessibleEntities"].select {|entity| entity['id'] ==
|
214
|
+
available_entities = client_describe["accessibleEntities"].select {|entity| entity['id'] == zuora_entity_id}
|
215
215
|
task_data = {
|
216
216
|
"id": next_id,
|
217
217
|
"name": client_describe["tenantName"],
|
@@ -227,7 +227,7 @@ module ZuoraConnect
|
|
227
227
|
"authentication_type": "OAUTH",
|
228
228
|
"entities": available_entities.map {|e| e.merge({'displayName' => client_describe["tenantName"]})}
|
229
229
|
},
|
230
|
-
"tenant_ids": available_entities.map{|e| e['entityId']
|
230
|
+
"tenant_ids": available_entities.map{|e| e['entityId']}.uniq,
|
231
231
|
}
|
232
232
|
mapped_values = {:id => next_id, :api_token => rand(36**64).to_s(36), :token => rand(36**64).to_s(36), :zuora_logins => task_data, :oauth_expires_at => Time.now + 1000.years, :zuora_domain => zuora_client.rest_domain, :zuora_entity_ids => [zuora_entity_id]}
|
233
233
|
@appinstance = ZuoraConnect::AppInstance.new(mapped_values)
|
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'middleware/metrics_middleware'
|
2
2
|
require 'middleware/request_id_middleware'
|
3
|
+
require 'middleware/json_parse_errors'
|
3
4
|
|
4
5
|
module ZuoraConnect
|
5
6
|
class Railtie < Rails::Railtie
|
@@ -25,6 +26,7 @@ module ZuoraConnect
|
|
25
26
|
initializer "zuora_connect.configure_rails_initialization" do |app|
|
26
27
|
app.middleware.insert_after Rack::Sendfile, ZuoraConnect::MetricsMiddleware
|
27
28
|
app.middleware.insert_after ActionDispatch::RequestId, ZuoraConnect::RequestIdMiddleware
|
29
|
+
app.config.middleware.use ZuoraConnect::JsonParseErrors
|
28
30
|
end
|
29
31
|
|
30
32
|
# hook to process_action
|
@@ -52,7 +54,7 @@ module ZuoraConnect
|
|
52
54
|
exceptions = %w(controller action format id)
|
53
55
|
items = {
|
54
56
|
#time: event.time.strftime('%FT%T.%6N'),
|
55
|
-
params: event.payload[:params].except
|
57
|
+
params: event.payload[:params].as_json(except: exceptions).to_json.to_s
|
56
58
|
}
|
57
59
|
items.merge!({exception_object: event.payload[:exception_object]}) if event.payload[:exception_object].present?
|
58
60
|
items.merge!({exception: event.payload[:exception]}) if event.payload[:exception].present?
|
@@ -1,3 +1,3 @@
|
|
1
1
|
module ZuoraConnect
|
2
|
-
VERSION = "2.0.
|
3
|
-
end
|
2
|
+
VERSION = "2.0.5za"
|
3
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zuora_connect
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.5za
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Connect Team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-08-
|
11
|
+
date: 2019-08-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: apartment
|
@@ -58,20 +58,20 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 1.
|
61
|
+
version: 1.7.00
|
62
62
|
- - "~>"
|
63
63
|
- !ruby/object:Gem::Version
|
64
|
-
version: 1.
|
64
|
+
version: 1.7.00
|
65
65
|
type: :runtime
|
66
66
|
prerelease: false
|
67
67
|
version_requirements: !ruby/object:Gem::Requirement
|
68
68
|
requirements:
|
69
69
|
- - ">="
|
70
70
|
- !ruby/object:Gem::Version
|
71
|
-
version: 1.
|
71
|
+
version: 1.7.00
|
72
72
|
- - "~>"
|
73
73
|
- !ruby/object:Gem::Version
|
74
|
-
version: 1.
|
74
|
+
version: 1.7.00
|
75
75
|
- !ruby/object:Gem::Dependency
|
76
76
|
name: httparty
|
77
77
|
requirement: !ruby/object:Gem::Requirement
|
@@ -314,6 +314,7 @@ files:
|
|
314
314
|
- config/initializers/apartment.rb
|
315
315
|
- config/initializers/aws.rb
|
316
316
|
- config/initializers/object_method_hooks.rb
|
317
|
+
- config/initializers/patches.rb
|
317
318
|
- config/initializers/postgresql_adapter.rb
|
318
319
|
- config/initializers/prometheus.rb
|
319
320
|
- config/initializers/redis.rb
|
@@ -337,6 +338,7 @@ files:
|
|
337
338
|
- lib/logging/connect_formatter.rb
|
338
339
|
- lib/metrics/influx/point_value.rb
|
339
340
|
- lib/metrics/net.rb
|
341
|
+
- lib/middleware/json_parse_errors.rb
|
340
342
|
- lib/middleware/metrics_middleware.rb
|
341
343
|
- lib/middleware/request_id_middleware.rb
|
342
344
|
- lib/resque/additions.rb
|
@@ -416,44 +418,44 @@ signing_key:
|
|
416
418
|
specification_version: 4
|
417
419
|
summary: Summary of Connect.
|
418
420
|
test_files:
|
421
|
+
- test/integration/navigation_test.rb
|
422
|
+
- test/controllers/zuora_connect/api/v1/app_instance_controller_test.rb
|
423
|
+
- test/fixtures/zuora_connect/app_instances.yml
|
419
424
|
- test/dummy/app/controllers/application_controller.rb
|
420
425
|
- test/dummy/app/views/layouts/application.html.erb
|
421
|
-
- test/dummy/app/assets/javascripts/application.js
|
422
426
|
- test/dummy/app/assets/stylesheets/application.css
|
427
|
+
- test/dummy/app/assets/javascripts/application.js
|
423
428
|
- test/dummy/app/helpers/application_helper.rb
|
424
|
-
- test/dummy/bin/rake
|
425
429
|
- test/dummy/bin/setup
|
426
430
|
- test/dummy/bin/bundle
|
431
|
+
- test/dummy/bin/rake
|
427
432
|
- test/dummy/bin/rails
|
428
|
-
- test/dummy/config/secrets.yml
|
429
433
|
- test/dummy/config/routes.rb
|
430
|
-
- test/dummy/config/locales/en.yml
|
431
|
-
- test/dummy/config/environments/production.rb
|
432
|
-
- test/dummy/config/environments/development.rb
|
433
|
-
- test/dummy/config/environments/test.rb
|
434
434
|
- test/dummy/config/environment.rb
|
435
435
|
- test/dummy/config/application.rb
|
436
|
-
- test/dummy/config/database.yml
|
437
436
|
- test/dummy/config/boot.rb
|
437
|
+
- test/dummy/config/database.yml
|
438
|
+
- test/dummy/config/environments/production.rb
|
439
|
+
- test/dummy/config/environments/development.rb
|
440
|
+
- test/dummy/config/environments/test.rb
|
441
|
+
- test/dummy/config/secrets.yml
|
442
|
+
- test/dummy/config/locales/en.yml
|
443
|
+
- test/dummy/config/initializers/inflections.rb
|
438
444
|
- test/dummy/config/initializers/backtrace_silencers.rb
|
439
445
|
- test/dummy/config/initializers/mime_types.rb
|
440
446
|
- test/dummy/config/initializers/filter_parameter_logging.rb
|
441
|
-
- test/dummy/config/initializers/session_store.rb
|
442
|
-
- test/dummy/config/initializers/wrap_parameters.rb
|
443
447
|
- test/dummy/config/initializers/assets.rb
|
444
448
|
- test/dummy/config/initializers/cookies_serializer.rb
|
445
|
-
- test/dummy/config/initializers/
|
446
|
-
- test/dummy/config.
|
447
|
-
- test/dummy/Rakefile
|
449
|
+
- test/dummy/config/initializers/session_store.rb
|
450
|
+
- test/dummy/config/initializers/wrap_parameters.rb
|
448
451
|
- test/dummy/public/favicon.ico
|
449
|
-
- test/dummy/public/422.html
|
450
452
|
- test/dummy/public/500.html
|
451
453
|
- test/dummy/public/404.html
|
454
|
+
- test/dummy/public/422.html
|
455
|
+
- test/dummy/Rakefile
|
452
456
|
- test/dummy/README.rdoc
|
453
|
-
- test/
|
454
|
-
- test/zuora_connect_test.rb
|
455
|
-
- test/models/zuora_connect/app_instance_test.rb
|
457
|
+
- test/dummy/config.ru
|
456
458
|
- test/lib/generators/zuora_connect/datatable_generator_test.rb
|
457
|
-
- test/fixtures/zuora_connect/app_instances.yml
|
458
459
|
- test/test_helper.rb
|
459
|
-
- test/
|
460
|
+
- test/zuora_connect_test.rb
|
461
|
+
- test/models/zuora_connect/app_instance_test.rb
|