Class: RSpecTracer::Rails::Preset Private
- Inherits:
-
Object
- Object
- RSpecTracer::Rails::Preset
- Defined in:
- lib/rspec_tracer/rails/preset.rb
Overview
This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.
Default Rails glob preset - the Coverage-invisible surface that
rspec-tracer cannot auto-observe via its standard Ruby-execution
tracking. Enabled by track_rails_defaults in .rspec-tracer.
Covered categories (each toggleable via the except: kwarg):
:views - app/views/**/* (ERB / Slim / Haml / JBuilder)
:helpers - app/helpers/**/*.rb (tracked as declared so helper
files re-invalidate even before Zeitwerk loads them)
:locales - config/locales/**/*.yml (I18n data files)
:config - config/*.yml + config/routes.rb (database.yml,
cable.yml, storage.yml, routes - the YAML + routes
dispatcher are all config surface)
:schema - db/schema.rb + db/structure.sql
:factories - spec/factories/**/*.rb + test/factories/**/*.rb
:fixtures - spec/fixtures/**/*.{yml,yaml,json} + same under test/
Intentionally omitted:
- Gemfile.lock, .ruby-version, .rspec-tracer: already tracked as
whole-suite invalidators (Tracker::WholeSuiteInvalidators).
Listing them as :declared would cross input-kind categories.
- config/environments/*.rb, config/app_constants.rb: loaded as
Ruby at Rails boot, so LoadedFilesTracker.@boot_set captures
them already as transitive-load inputs.
Unknown except: keys raise Configuration::InvalidUsageError, same
pattern as storage_backend(:bogus).
Constant Summary collapse
- DEFAULTS =
This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.
Internal constant.
{ views: %w[app/views/**/*].freeze, helpers: %w[app/helpers/**/*.rb].freeze, locales: %w[config/locales/**/*.yml].freeze, config: %w[config/*.yml config/routes.rb].freeze, schema: %w[db/schema.rb db/structure.sql].freeze, factories: %w[spec/factories/**/*.rb test/factories/**/*.rb].freeze, fixtures: %w[ spec/fixtures/**/*.{yml,yaml,json} test/fixtures/**/*.{yml,yaml,json} ].freeze }.freeze
- ALLOWED_KEYS =
This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.
Internal constant.
DEFAULTS.keys.to_set.freeze
Class Method Summary collapse
-
.globs(except: []) ⇒ Object
private
Internal helper for the tracer pipeline.
-
.normalize_excluded(except) ⇒ Object
private
Internal helper for the tracer pipeline.
-
.validate_excluded!(excluded) ⇒ Object
private
Internal helper for the tracer pipeline.
Class Method Details
.globs(except: []) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Internal helper for the tracer pipeline.
64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/rspec_tracer/rails/preset.rb', line 64 def self.globs(except: []) excluded = normalize_excluded(except) validate_excluded!(excluded) DEFAULTS .except(*excluded) .values .flatten .uniq .freeze end |
.normalize_excluded(except) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Internal helper for the tracer pipeline.
78 79 80 |
# File 'lib/rspec_tracer/rails/preset.rb', line 78 def self.normalize_excluded(except) Array(except).compact end |
.validate_excluded!(excluded) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Internal helper for the tracer pipeline.
84 85 86 87 88 89 90 91 |
# File 'lib/rspec_tracer/rails/preset.rb', line 84 def self.validate_excluded!(excluded) unknown = excluded.reject { |key| ALLOWED_KEYS.include?(key) } return if unknown.empty? raise RSpecTracer::Configuration::InvalidUsageError, "unknown track_rails_defaults keys: #{unknown.inspect}; " \ "allowed: #{ALLOWED_KEYS.to_a.inspect}" end |