Module: Suspenders::Actions

Included in:
AppBuilder, Generators::Base
Defined in:
lib/suspenders/actions.rb

Defined Under Namespace

Classes: ExpandJson

Instance Method Summary collapse

Instance Method Details

#action_mailer_asset_host(rails_env, host) ⇒ Object


17
18
19
20
# File 'lib/suspenders/actions.rb', line 17

def action_mailer_asset_host(rails_env, host)
  config = "config.action_mailer.asset_host = #{host}"
  configure_environment(rails_env, config)
end

#action_mailer_host(rails_env, host) ⇒ Object


12
13
14
15
# File 'lib/suspenders/actions.rb', line 12

def action_mailer_host(rails_env, host)
  config = "config.action_mailer.default_url_options = { host: #{host} }"
  configure_environment(rails_env, config)
end

#configure_environment(rails_env, config) ⇒ Object


22
23
24
25
26
27
28
# File 'lib/suspenders/actions.rb', line 22

def configure_environment(rails_env, config)
  inject_into_file(
    "config/environments/#{rails_env}.rb",
    "\n  #{config}",
    before: "\nend"
  )
end

#expand_json(file, data) ⇒ Object


30
31
32
# File 'lib/suspenders/actions.rb', line 30

def expand_json(file, data)
  action ExpandJson.new(destination_root, file, data)
end

#replace_in_file(relative_path, find, replace) ⇒ Object


3
4
5
6
7
8
9
10
# File 'lib/suspenders/actions.rb', line 3

def replace_in_file(relative_path, find, replace)
  path = File.join(destination_root, relative_path)
  contents = IO.read(path)
  unless contents.gsub!(find, replace)
    raise "#{find.inspect} not found in #{relative_path}"
  end
  File.open(path, "w") { |file| file.write(contents) }
end