module Topkit::Actions

Public Instance Methods

action_mailer_host(rails_env, host) click to toggle source
# File lib/topkit/actions.rb, line 17
def action_mailer_host(rails_env, host)
  host_config = "config.action_mailer.default_url_option = { host: '#{host}' }"
  configure_environment(rails_env, host_config)
end
concat_file(source, destination) click to toggle source
# File lib/topkit/actions.rb, line 3
def concat_file(source, destination)
  contents = IO.read(find_in_source_paths(source))
  append_file destination, contents
end
configure_environment(rails_env, config) click to toggle source
# File lib/topkit/actions.rb, line 22
def configure_environment(rails_env, config)
  inject_into_file(
    "config/environments/#{rails_env}.rb",
    "\n\n  #{config}",
    before: "\nend"
  )
end
download_file(uri_string, destination) click to toggle source
# File lib/topkit/actions.rb, line 30
def download_file(uri_string, destination)
  require 'net/http'
  uri = URI.parse(uri_string)
  http = ::Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = true if uri_string =~ /^https/
  request = ::Net::HTTP::Get.new(uri.path)
  contents = http.request(request).body
  path = File.join(destination_root, destination)
  File.open(path, "w") { |file| file.write(contents) }
end
replace_in_file(relative_path, find, replace) click to toggle source
# File lib/topkit/actions.rb, line 8
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