openstax_utilities 4.3.0 → 4.5.1

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 (66) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/app/controllers/openstax/utilities/status_controller.rb +82 -0
  4. data/app/views/layouts/openstax/utilities/status.html.erb +24 -0
  5. data/app/views/openstax/utilities/status/index.html.erb +52 -0
  6. data/config/routes.rb +3 -0
  7. data/lib/openstax/utilities/assets/manifest.rb +4 -0
  8. data/lib/openstax/utilities/engine.rb +8 -3
  9. data/lib/openstax/utilities/version.rb +1 -1
  10. data/lib/openstax_utilities.rb +2 -0
  11. metadata +31 -117
  12. data/spec/cassettes/OpenStax_Utilities_Assets/loading_remote_manifest/uses_remote_json.yml +0 -353
  13. data/spec/dummy/README.md +0 -1
  14. data/spec/dummy/Rakefile +0 -6
  15. data/spec/dummy/app/access_policies/dummier_access_policy.rb +0 -10
  16. data/spec/dummy/app/access_policies/dummy_access_policy.rb +0 -10
  17. data/spec/dummy/app/assets/config/manifest.js +0 -3
  18. data/spec/dummy/app/assets/javascripts/application.js +0 -13
  19. data/spec/dummy/app/assets/stylesheets/application.css +0 -15
  20. data/spec/dummy/app/controllers/application_controller.rb +0 -5
  21. data/spec/dummy/app/helpers/application_helper.rb +0 -2
  22. data/spec/dummy/app/models/user.rb +0 -2
  23. data/spec/dummy/app/views/layouts/application.html.erb +0 -14
  24. data/spec/dummy/bin/bundle +0 -3
  25. data/spec/dummy/bin/rails +0 -4
  26. data/spec/dummy/bin/rake +0 -4
  27. data/spec/dummy/config.ru +0 -4
  28. data/spec/dummy/config/application.rb +0 -18
  29. data/spec/dummy/config/boot.rb +0 -5
  30. data/spec/dummy/config/database.yml +0 -25
  31. data/spec/dummy/config/environment.rb +0 -5
  32. data/spec/dummy/config/environments/development.rb +0 -37
  33. data/spec/dummy/config/environments/production.rb +0 -78
  34. data/spec/dummy/config/environments/test.rb +0 -39
  35. data/spec/dummy/config/initializers/access_policies.rb +0 -1
  36. data/spec/dummy/config/initializers/assets.rb +0 -8
  37. data/spec/dummy/config/initializers/backtrace_silencers.rb +0 -7
  38. data/spec/dummy/config/initializers/cookies_serializer.rb +0 -3
  39. data/spec/dummy/config/initializers/filter_parameter_logging.rb +0 -4
  40. data/spec/dummy/config/initializers/inflections.rb +0 -16
  41. data/spec/dummy/config/initializers/mime_types.rb +0 -4
  42. data/spec/dummy/config/initializers/search_users.rb +0 -26
  43. data/spec/dummy/config/initializers/session_store.rb +0 -3
  44. data/spec/dummy/config/initializers/wrap_parameters.rb +0 -14
  45. data/spec/dummy/config/locales/en.yml +0 -23
  46. data/spec/dummy/config/routes.rb +0 -2
  47. data/spec/dummy/config/secrets.yml +0 -19
  48. data/spec/dummy/db/migrate/0_create_users.rb +0 -16
  49. data/spec/dummy/db/schema.rb +0 -29
  50. data/spec/dummy/db/test.sqlite3 +0 -0
  51. data/spec/dummy/log/test.log +0 -32144
  52. data/spec/dummy/public/404.html +0 -67
  53. data/spec/dummy/public/422.html +0 -67
  54. data/spec/dummy/public/500.html +0 -66
  55. data/spec/dummy/public/favicon.ico +0 -0
  56. data/spec/dummy/tmp/cache/C09/760/6da7b2a29da9cb0f80ef102c7effb91fab3374db +0 -0
  57. data/spec/factories/user.rb +0 -8
  58. data/spec/lib/openstax/utilities/access_policy_spec.rb +0 -68
  59. data/spec/lib/openstax/utilities/assets_spec.rb +0 -40
  60. data/spec/rails_helper.rb +0 -53
  61. data/spec/routines/openstax/utilities/limit_and_paginate_relation_spec.rb +0 -72
  62. data/spec/routines/openstax/utilities/order_relation_spec.rb +0 -55
  63. data/spec/routines/openstax/utilities/search_and_organize_relation_spec.rb +0 -139
  64. data/spec/routines/openstax/utilities/search_relation_spec.rb +0 -81
  65. data/spec/spec_helper.rb +0 -85
  66. data/spec/vcr_helper.rb +0 -18
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fc7366a73ada7f334bd42ca06e41c0043f92e0d2aff08969f5ec1759275b1885
4
- data.tar.gz: 86fa1a1dbe2f4c8521afb1b6ce635b63c8c2140e6656de3028887fd22d7872d1
3
+ metadata.gz: 23e87d67c828892be99027a2ab746eb1399cbf8a806705fa985e462d9d42d7fd
4
+ data.tar.gz: 25567a40d96ad15ebb84d0d9a2f8902bc3d702a2248ea1ce0e72274f56489355
5
5
  SHA512:
6
- metadata.gz: 26555b0e6c39c6cc7c3615d6e948849cce15aa9ff67ebafb5fad260ddb408a8003598b2e588f10ea1c2ed55256ade08a223ad92517b8fcc45adfeb8976583322
7
- data.tar.gz: c36765470b6f808e37e2145538b49b56312568ea9ddc73f8329c94e7eb593ecaa8fa5bd09f999db6e7deda74a6792a8c85fdfa4bd2e850a63239de85fbaebd4d
6
+ metadata.gz: 8cb88e2b59504aa7eadea2a6fad09fc6b1e33250c790781ca99a953218c0a4e2192207279c4a0d9a3153d0d1532eac31ce4c4e7fe96363c3ea2be797dcb9b6c5
7
+ data.tar.gz: d7da39d27d6f853a6d92c19d79011b742b4e5e3429b7ebbbcb5fa6e321484265df3339c12299f8c92f0a327470b7cbc76b62903286d581a4d65543386548b3b1
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  OpenStax Utilities
2
2
  ==================
3
3
 
4
- [![Build Status](https://travis-ci.org/openstax/openstax_utilities.svg?branch=master)](https://travis-ci.org/openstax/openstax_utilities)
4
+ [![Tests](https://github.com/openstax/openstax_utilities/workflows/Tests/badge.svg)](https://github.com/openstax/openstax_utilities/actions?query=workflow:Tests)
5
5
  [![Code Climate](https://codeclimate.com/github/openstax/openstax_utilities.png)](https://codeclimate.com/github/openstax/openstax_utilities)
6
6
 
7
7
  A set of common utilities for the various OpenStax projects.
@@ -0,0 +1,82 @@
1
+ require 'aws-sdk-autoscaling'
2
+
3
+ class OpenStax::Utilities::StatusController < ActionController::Base
4
+ before_action :authenticate
5
+
6
+ layout 'openstax/utilities/status'
7
+
8
+ def index
9
+ @application_name = Rails.application.class.parent_name
10
+ @environment_name = Rails.application.secrets.environment_name
11
+
12
+ @statuses = if @environment_name == 'development'
13
+ [ [ 'local', 1, 1, :ok ] ]
14
+ else
15
+ queues = Module.const_defined?(:Delayed) && Delayed.const_defined?(:Worker) ?
16
+ Delayed::Worker.queue_attributes.keys.map(&:to_s) - [ 'migration' ] : []
17
+ asgs = [ 'migration', 'web', 'cron', 'background' ] + queues.map do |queue|
18
+ "background-#{queue}"
19
+ end
20
+
21
+ Aws::AutoScaling::Client.new.describe_auto_scaling_groups(
22
+ auto_scaling_group_names: asgs.map do |asg|
23
+ "#{@environment_name}-#{@application_name.downcase}-#{asg}-asg"
24
+ end
25
+ ).auto_scaling_groups.map do |asg|
26
+ name = asg.auto_scaling_group_name.sub(
27
+ "#{@environment_name}-#{@application_name.downcase}-", ''
28
+ ).chomp('-asg')
29
+
30
+ status = if asg.desired_capacity == 0
31
+ if [ 'web', 'background', 'cron' ].include?(name)
32
+ :configuration_error
33
+ elsif asg.instances.size > 0
34
+ :shutting_down
35
+ else
36
+ :sleeping
37
+ end
38
+ elsif asg.instances.all? do |instance|
39
+ instance.health_status != 'Healthy' || instance.lifecycle_state != 'InService'
40
+ end
41
+ case name
42
+ when 'web'
43
+ :down
44
+ when 'background', 'cron'
45
+ :impacted
46
+ else
47
+ :offline
48
+ end
49
+ elsif name == 'migration'
50
+ :migrating
51
+ elsif asg.max_size > 1 && asg.desired_capacity == asg.max_size
52
+ :at_capacity
53
+ elsif asg.instances.size < asg.desired_capacity
54
+ :scaling_up
55
+ elsif asg.instances.size > asg.desired_capacity
56
+ :scaling_down
57
+ else
58
+ :ok
59
+ end
60
+
61
+ [ name, asg.instances.size, asg.max_size, status ]
62
+ end.sort_by do |name, _, _, _|
63
+ case name
64
+ when 'migration'
65
+ '0'
66
+ when 'web'
67
+ '1'
68
+ when 'cron'
69
+ '2'
70
+ else
71
+ "3#{name}"
72
+ end
73
+ end
74
+ end
75
+ end
76
+
77
+ protected
78
+
79
+ def authenticate
80
+ instance_exec &OpenStax::Utilities.configuration.status_authenticate
81
+ end
82
+ end
@@ -0,0 +1,24 @@
1
+ <% title = "OpenStax #{@application_name} (#{@environment_name}) Status" %>
2
+
3
+ <!DOCTYPE html>
4
+ <html>
5
+ <head>
6
+ <title><%= title %></title>
7
+ <meta name="robots" content="noindex">
8
+ <meta http-equiv="content-type" content="text/html; charset=UTF8" />
9
+
10
+ <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
11
+ <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
12
+ <%= csrf_meta_tags %>
13
+ </head>
14
+
15
+ <body id="status" class="status">
16
+ <div class="body">
17
+ <div class="body-container" style="margin-left: 16px;">
18
+ <header><h2><%= title %></h2></header>
19
+
20
+ <%= yield %>
21
+ </div>
22
+ </div>
23
+ </body>
24
+ </html>
@@ -0,0 +1,52 @@
1
+ <%
2
+ status_icons = {
3
+ configuration_error: '💀',
4
+ down: '💥',
5
+ impacted: '⚠️',
6
+ at_capacity: '🥵',
7
+ migrating: '💾',
8
+ scaling_down: '📉',
9
+ scaling_up: '📈',
10
+ ok: '✅',
11
+ shutting_down: '😪',
12
+ offline: '🔌',
13
+ sleeping: '💤'
14
+ }
15
+
16
+ backend = @application_name == 'Tutor' ? 'tutor-server' : @application_name.downcase
17
+ %>
18
+
19
+ <h3>Versions</h3>
20
+
21
+ <ul>
22
+ <li>
23
+ Backend (<%= backend %>): <%= Rails.application.secrets.release_version || 'not deployed' %>
24
+ </li>
25
+ <li>
26
+ Frontend (tutor-js): <%= OpenStax::Utilities::Assets.manifest.version || 'not deployed' %>
27
+ </li>
28
+ <li>
29
+ Deployment (tutor-deployment): <%=
30
+ Rails.application.secrets.deployment_version || 'not deployed'
31
+ %>
32
+ </li>
33
+ </ul>
34
+
35
+ <% status = status_icons.find { |key, _| @statuses.any? { |_, _, _, status| status == key } } %>
36
+ <h3>Status: <% unless status.nil? %><span title="<%=
37
+ status.first.to_s.humanize
38
+ %>"><%= status.second %></span><% end %></h3>
39
+
40
+ <ul>
41
+ <% @statuses.map do |name, num_instances, max_size, status| %>
42
+ <% title = status.to_s.humanize %>
43
+ <li>
44
+ <%= name.to_s.underscore.humanize %>: <%= num_instances %>/<%= max_size %>
45
+ <% if status_icons.has_key? status %>
46
+ <span title="<%= title %>"><%= status_icons[status] %></span>
47
+ <% else %>
48
+ (<%= title %>)
49
+ <% end %>
50
+ </li>
51
+ <% end %>
52
+ </ul>
@@ -0,0 +1,3 @@
1
+ OpenStax::Utilities::Engine.routes.draw do
2
+ root to: 'status#index'
3
+ end
@@ -5,6 +5,8 @@ module OpenStax::Utilities
5
5
  module Assets
6
6
  # Reads and parses the assets manifest
7
7
  class Manifest
8
+ attr_reader :version
9
+
8
10
  def initialize
9
11
  @assets = HashWithIndifferentAccess.new
10
12
 
@@ -16,6 +18,8 @@ module OpenStax::Utilities
16
18
  if response.success?
17
19
  contents = JSON.parse response.body
18
20
 
21
+ @version = contents['version']
22
+
19
23
  if contents['entrypoints'].blank?
20
24
  Rails.logger.error { "failed to parse manifest from #{url}" }
21
25
  else
@@ -2,6 +2,7 @@ require "openstax/utilities/action_list"
2
2
 
3
3
  ActiveSupport::Inflector.inflections do |inflect|
4
4
  inflect.acronym 'OpenStax'
5
+ inflect.acronym 'OSU'
5
6
  end
6
7
 
7
8
  module OpenStax
@@ -10,14 +11,18 @@ module OpenStax
10
11
  isolate_namespace OpenStax::Utilities
11
12
 
12
13
  config.after_initialize do
13
- OSU::SITE_NAME = ::Rails.application.class.parent_name.underscore
14
+ if Rails::VERSION::MAJOR == 6
15
+ OSU::SITE_NAME = ::Rails.application.class.module_parent_name.underscore
16
+ else
17
+ OSU::SITE_NAME = ::Rails.application.class.parent_name.underscore
18
+ end
14
19
  end
15
20
 
16
21
  config.generators do |g|
17
- g.test_framework :rspec, :fixture => false
22
+ g.test_framework :rspec, fixture: false
18
23
  g.assets false
19
24
  g.helper false
20
25
  end
21
26
  end
22
27
  end
23
- end
28
+ end
@@ -1,5 +1,5 @@
1
1
  module OpenStax
2
2
  module Utilities
3
- VERSION = '4.3.0'
3
+ VERSION = '4.5.1'
4
4
  end
5
5
  end
@@ -57,11 +57,13 @@ module OpenStax
57
57
  attr_accessor :standard_date_format
58
58
  attr_accessor :standard_datetime_format
59
59
  attr_accessor :standard_time_format
60
+ attr_accessor :status_authenticate
60
61
 
61
62
  def initialize
62
63
  @standard_date_format = "%b %d, %Y"
63
64
  @standard_datetime_format = "%b %d, %Y %l:%M %p %Z"
64
65
  @standard_time_format = "%l:%M %p %Z"
66
+ @status_authenticate = -> { head :forbidden }
65
67
  super
66
68
  end
67
69
  end
metadata CHANGED
@@ -1,29 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openstax_utilities
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.3.0
4
+ version: 4.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - JP Slavinsky
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-09-28 00:00:00.000000000 Z
11
+ date: 2021-01-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '5.0'
20
+ - - "<"
18
21
  - !ruby/object:Gem::Version
19
- version: '5.2'
22
+ version: '7.0'
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - "~>"
27
+ - - ">="
25
28
  - !ruby/object:Gem::Version
26
- version: '5.2'
29
+ version: '5.0'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '7.0'
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: lev
29
35
  requirement: !ruby/object:Gem::Requirement
@@ -94,6 +100,20 @@ dependencies:
94
100
  - - ">="
95
101
  - !ruby/object:Gem::Version
96
102
  version: '0'
103
+ - !ruby/object:Gem::Dependency
104
+ name: aws-sdk-autoscaling
105
+ requirement: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ type: :runtime
111
+ prerelease: false
112
+ version_requirements: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ version: '0'
97
117
  - !ruby/object:Gem::Dependency
98
118
  name: sqlite3
99
119
  requirement: !ruby/object:Gem::Requirement
@@ -188,11 +208,15 @@ files:
188
208
  - MIT-LICENSE
189
209
  - README.md
190
210
  - Rakefile
211
+ - app/controllers/openstax/utilities/status_controller.rb
191
212
  - app/routines/openstax/utilities/limit_and_paginate_relation.rb
192
213
  - app/routines/openstax/utilities/order_relation.rb
193
214
  - app/routines/openstax/utilities/search_and_organize_relation.rb
194
215
  - app/routines/openstax/utilities/search_relation.rb
216
+ - app/views/layouts/openstax/utilities/status.html.erb
217
+ - app/views/openstax/utilities/status/index.html.erb
195
218
  - app/views/osu/shared/_action_list.html.erb
219
+ - config/routes.rb
196
220
  - lib/openstax/utilities/access.rb
197
221
  - lib/openstax/utilities/access_policy.rb
198
222
  - lib/openstax/utilities/action_list.rb
@@ -216,61 +240,6 @@ files:
216
240
  - lib/openstax/utilities/text.rb
217
241
  - lib/openstax/utilities/version.rb
218
242
  - lib/openstax_utilities.rb
219
- - spec/cassettes/OpenStax_Utilities_Assets/loading_remote_manifest/uses_remote_json.yml
220
- - spec/dummy/README.md
221
- - spec/dummy/Rakefile
222
- - spec/dummy/app/access_policies/dummier_access_policy.rb
223
- - spec/dummy/app/access_policies/dummy_access_policy.rb
224
- - spec/dummy/app/assets/config/manifest.js
225
- - spec/dummy/app/assets/javascripts/application.js
226
- - spec/dummy/app/assets/stylesheets/application.css
227
- - spec/dummy/app/controllers/application_controller.rb
228
- - spec/dummy/app/helpers/application_helper.rb
229
- - spec/dummy/app/models/user.rb
230
- - spec/dummy/app/views/layouts/application.html.erb
231
- - spec/dummy/bin/bundle
232
- - spec/dummy/bin/rails
233
- - spec/dummy/bin/rake
234
- - spec/dummy/config.ru
235
- - spec/dummy/config/application.rb
236
- - spec/dummy/config/boot.rb
237
- - spec/dummy/config/database.yml
238
- - spec/dummy/config/environment.rb
239
- - spec/dummy/config/environments/development.rb
240
- - spec/dummy/config/environments/production.rb
241
- - spec/dummy/config/environments/test.rb
242
- - spec/dummy/config/initializers/access_policies.rb
243
- - spec/dummy/config/initializers/assets.rb
244
- - spec/dummy/config/initializers/backtrace_silencers.rb
245
- - spec/dummy/config/initializers/cookies_serializer.rb
246
- - spec/dummy/config/initializers/filter_parameter_logging.rb
247
- - spec/dummy/config/initializers/inflections.rb
248
- - spec/dummy/config/initializers/mime_types.rb
249
- - spec/dummy/config/initializers/search_users.rb
250
- - spec/dummy/config/initializers/session_store.rb
251
- - spec/dummy/config/initializers/wrap_parameters.rb
252
- - spec/dummy/config/locales/en.yml
253
- - spec/dummy/config/routes.rb
254
- - spec/dummy/config/secrets.yml
255
- - spec/dummy/db/migrate/0_create_users.rb
256
- - spec/dummy/db/schema.rb
257
- - spec/dummy/db/test.sqlite3
258
- - spec/dummy/log/test.log
259
- - spec/dummy/public/404.html
260
- - spec/dummy/public/422.html
261
- - spec/dummy/public/500.html
262
- - spec/dummy/public/favicon.ico
263
- - spec/dummy/tmp/cache/C09/760/6da7b2a29da9cb0f80ef102c7effb91fab3374db
264
- - spec/factories/user.rb
265
- - spec/lib/openstax/utilities/access_policy_spec.rb
266
- - spec/lib/openstax/utilities/assets_spec.rb
267
- - spec/rails_helper.rb
268
- - spec/routines/openstax/utilities/limit_and_paginate_relation_spec.rb
269
- - spec/routines/openstax/utilities/order_relation_spec.rb
270
- - spec/routines/openstax/utilities/search_and_organize_relation_spec.rb
271
- - spec/routines/openstax/utilities/search_relation_spec.rb
272
- - spec/spec_helper.rb
273
- - spec/vcr_helper.rb
274
243
  homepage: http://github.com/openstax/openstax_utilities
275
244
  licenses:
276
245
  - MIT
@@ -294,59 +263,4 @@ rubygems_version: 3.1.4
294
263
  signing_key:
295
264
  specification_version: 4
296
265
  summary: Utilities for OpenStax web sites
297
- test_files:
298
- - spec/rails_helper.rb
299
- - spec/spec_helper.rb
300
- - spec/vcr_helper.rb
301
- - spec/factories/user.rb
302
- - spec/dummy/app/models/user.rb
303
- - spec/dummy/app/assets/javascripts/application.js
304
- - spec/dummy/app/assets/stylesheets/application.css
305
- - spec/dummy/app/assets/config/manifest.js
306
- - spec/dummy/app/views/layouts/application.html.erb
307
- - spec/dummy/app/access_policies/dummier_access_policy.rb
308
- - spec/dummy/app/access_policies/dummy_access_policy.rb
309
- - spec/dummy/app/controllers/application_controller.rb
310
- - spec/dummy/app/helpers/application_helper.rb
311
- - spec/dummy/tmp/cache/C09/760/6da7b2a29da9cb0f80ef102c7effb91fab3374db
312
- - spec/dummy/db/migrate/0_create_users.rb
313
- - spec/dummy/db/test.sqlite3
314
- - spec/dummy/db/schema.rb
315
- - spec/dummy/log/test.log
316
- - spec/dummy/README.md
317
- - spec/dummy/public/favicon.ico
318
- - spec/dummy/public/422.html
319
- - spec/dummy/public/404.html
320
- - spec/dummy/public/500.html
321
- - spec/dummy/config.ru
322
- - spec/dummy/bin/rails
323
- - spec/dummy/bin/rake
324
- - spec/dummy/bin/bundle
325
- - spec/dummy/config/application.rb
326
- - spec/dummy/config/initializers/filter_parameter_logging.rb
327
- - spec/dummy/config/initializers/search_users.rb
328
- - spec/dummy/config/initializers/assets.rb
329
- - spec/dummy/config/initializers/cookies_serializer.rb
330
- - spec/dummy/config/initializers/inflections.rb
331
- - spec/dummy/config/initializers/backtrace_silencers.rb
332
- - spec/dummy/config/initializers/wrap_parameters.rb
333
- - spec/dummy/config/initializers/access_policies.rb
334
- - spec/dummy/config/initializers/session_store.rb
335
- - spec/dummy/config/initializers/mime_types.rb
336
- - spec/dummy/config/locales/en.yml
337
- - spec/dummy/config/routes.rb
338
- - spec/dummy/config/database.yml
339
- - spec/dummy/config/environment.rb
340
- - spec/dummy/config/boot.rb
341
- - spec/dummy/config/environments/production.rb
342
- - spec/dummy/config/environments/test.rb
343
- - spec/dummy/config/environments/development.rb
344
- - spec/dummy/config/secrets.yml
345
- - spec/dummy/Rakefile
346
- - spec/lib/openstax/utilities/access_policy_spec.rb
347
- - spec/lib/openstax/utilities/assets_spec.rb
348
- - spec/routines/openstax/utilities/limit_and_paginate_relation_spec.rb
349
- - spec/routines/openstax/utilities/search_relation_spec.rb
350
- - spec/routines/openstax/utilities/order_relation_spec.rb
351
- - spec/routines/openstax/utilities/search_and_organize_relation_spec.rb
352
- - spec/cassettes/OpenStax_Utilities_Assets/loading_remote_manifest/uses_remote_json.yml
266
+ test_files: []