Class: Kaisoku::Rails::Integration
- Inherits:
-
Object
- Object
- Kaisoku::Rails::Integration
- Defined in:
- lib/kaisoku/rails/integration.rb
Constant Summary collapse
- DB_PATTERNS =
%w[db/schema.rb db/structure.sql db/migrate/**].freeze
- ROUTE_PATTERNS =
%w[config/routes.rb config/routes/**].freeze
- DB_DEPENDENCY_PREFIXES =
%w[app/models db/ config/database].freeze
Instance Method Summary collapse
- #boot_impact_file?(path) ⇒ Boolean
- #database_change?(path) ⇒ Boolean
- #database_name(base_name, worker_index) ⇒ Object
- #db_dependency_prefixes ⇒ Object
-
#initialize(configuration: Configuration.new) ⇒ Integration
constructor
A new instance of Integration.
- #rails_project? ⇒ Boolean
- #route_change?(path) ⇒ Boolean
- #wrap_reloader ⇒ Object
Constructor Details
#initialize(configuration: Configuration.new) ⇒ Integration
Returns a new instance of Integration.
10 11 12 |
# File 'lib/kaisoku/rails/integration.rb', line 10 def initialize(configuration: Configuration.new) @configuration = configuration end |
Instance Method Details
#boot_impact_file?(path) ⇒ Boolean
18 19 20 21 |
# File 'lib/kaisoku/rails/integration.rb', line 18 def boot_impact_file?(path) relative = @configuration.relative_path(path) patterns.any? { |pattern| File.fnmatch?(pattern, relative, File::FNM_PATHNAME) } end |
#database_change?(path) ⇒ Boolean
23 24 25 26 |
# File 'lib/kaisoku/rails/integration.rb', line 23 def database_change?(path) relative = @configuration.relative_path(path) DB_PATTERNS.any? { |pattern| File.fnmatch?(pattern, relative, File::FNM_PATHNAME) } end |
#database_name(base_name, worker_index) ⇒ Object
37 38 39 40 41 |
# File 'lib/kaisoku/rails/integration.rb', line 37 def database_name(base_name, worker_index) return base_name if worker_index.to_i <= 0 "#{base_name}_#{worker_index}" end |
#db_dependency_prefixes ⇒ Object
33 34 35 |
# File 'lib/kaisoku/rails/integration.rb', line 33 def db_dependency_prefixes DB_DEPENDENCY_PREFIXES end |
#rails_project? ⇒ Boolean
14 15 16 |
# File 'lib/kaisoku/rails/integration.rb', line 14 def rails_project? File.file?(@configuration.absolute_path('config/application.rb')) end |
#route_change?(path) ⇒ Boolean
28 29 30 31 |
# File 'lib/kaisoku/rails/integration.rb', line 28 def route_change?(path) relative = @configuration.relative_path(path) ROUTE_PATTERNS.any? { |pattern| File.fnmatch?(pattern, relative, File::FNM_PATHNAME) } end |
#wrap_reloader ⇒ Object
43 44 45 46 47 |
# File 'lib/kaisoku/rails/integration.rb', line 43 def wrap_reloader(&) return yield unless defined?(::Rails) && ::Rails.respond_to?(:application) ::Rails.application.reloader.wrap(&) end |