Module: Crudable::Rails::Installer

Defined in:
lib/crudable/rails/installer.rb

Constant Summary collapse

CALLBACK_ACTIONS_FALSE =
/config\.action_controller\.raise_on_missing_callback_actions\s*=\s*false/

Class Method Summary collapse

Class Method Details

.postinstall(root: ::Rails.root) ⇒ Object



11
12
13
14
15
16
17
18
# File 'lib/crudable/rails/installer.rb', line 11

def postinstall(root: ::Rails.root)
  environments_path = root.join('config/environments')
  return [] unless environments_path.directory?

  environments_path.glob('*.rb').filter_map do |file|
    update_raise_on_missing_callback_actions(file)
  end
end

.update_raise_on_missing_callback_actions(file) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/crudable/rails/installer.rb', line 20

def update_raise_on_missing_callback_actions(file)
  contents = file.read
  return unless contents.match?(CALLBACK_ACTIONS_FALSE)

  updated_contents = contents.gsub(
    CALLBACK_ACTIONS_FALSE,
    'config.action_controller.raise_on_missing_callback_actions = true'
  )
  return if updated_contents == contents

  file.write(updated_contents)
  file.basename.to_s
end