class AppEnvConfig::Generators::InstallGenerator

Public Instance Methods

copy_yml() click to toggle source
# File lib/generators/app_env_config/install_generator.rb, line 10
def copy_yml
  copy_file 'app_config.yml', 'config/app_config.yml'
end
create_constant() click to toggle source
# File lib/generators/app_env_config/install_generator.rb, line 14
def create_constant
  write_to_file(
    file: 'config/environment.rb',
    line: 'Rails.application.initialize!',
    content_before: "APP_CONFIG = AppEnvConfig.get('app_config')",
    shift: "\n" * 2
  )
end

Protected Instance Methods

file_contain_content?(options = {}) click to toggle source
# File lib/generators/app_env_config/install_generator.rb, line 25
def file_contain_content?(options = {})
  file_content = File.read(options[:file])

  (options[:content_before].blank? || file_content.include?(options[:content_before])) &&
    (options[:content_after].blank? || file_content.include?(options[:content_after]))
end
write_to_file(options = {}) click to toggle source
# File lib/generators/app_env_config/install_generator.rb, line 32
def write_to_file(options = {})
  return if file_contain_content?(options)

  gsub_file options[:file], /(#{Regexp.escape(options[:line])})/mi do |match|
    [
      options[:content_before].presence,
      match,
      options[:content_after].presence
    ].compact.join(options.fetch(:shift, "\n"))
  end
end