class Biran::Configurinator
Constants
- DEFAULT_ENV
Attributes
config[RW]
config[R]
db_config[R]
env[R]
Public Class Methods
configure() { |config| ... }
click to toggle source
# File lib/biran/configurinator.rb, line 12 def configure self.config ||= Config.instance yield config end
new(env: nil)
click to toggle source
# File lib/biran/configurinator.rb, line 18 def initialize(env: nil) @env = env || app_env @config = build_app_config end
Public Instance Methods
create(name:, extension:, output_dir: nil, output_name: nil, config_index_list: [])
click to toggle source
# File lib/biran/configurinator.rb, line 33 def create(name:, extension:, output_dir: nil, output_name: nil, config_index_list: []) output_dir ||= config_dir output_name ||= name generated_file = ERBConfig.new(filtered_config, name, extension, config_dir, output_dir, output_name) generated_file.bindings = bindings return generated_file.save! unless config_index_list.any? config_index_list.each do |config_index| generated_file.output_name = "#{output_name}-#{config_index}" generated_file.template_config_index = config_index generated_file.save! end end
file_tasks()
click to toggle source
# File lib/biran/configurinator.rb, line 23 def file_tasks files_to_generate.keys end
files_to_generate()
click to toggle source
# File lib/biran/configurinator.rb, line 27 def files_to_generate @files_to_generate ||= config.fetch(:app, {}) .fetch(:files_to_generate, configuration.files_to_generate) .tap { |files_list| files_list.each(&sanitize_config_files(files_list)) } end
Private Instance Methods
app_config_defaults()
click to toggle source
# File lib/biran/configurinator.rb, line 79 def app_config_defaults return @app_config_defaults if @app_config_defaults app_config_file = File.join(configuration.config_dirname, configuration.config_filename) app_defaults = app_defaults_init.dup config_properties = process_config_file(app_config_file) @app_config_defaults = app_defaults.deep_merge! config_properties end
base_db_config()
click to toggle source
# File lib/biran/configurinator.rb, line 73 def base_db_config return @base_db_config if @base_db_config return @base_db_config = {} unless File.exists? default_db_config_file @base_db_config ||= process_config_file(default_db_config_file) end
build_app_config()
click to toggle source
# File lib/biran/configurinator.rb, line 48 def build_app_config raise 'Environment not set to build the application config' unless @env app_config = { app_root_dir: app_root, app_shared_dir: app_shared_dir, app_base_dir: app_base, env: env, local_config_file: local_config_file, secrets_file_path: secrets_file, vhost: config_vhost_dirs } app_config.deep_merge! app_config_defaults app_config[:secrets].deep_merge! get_secrets_content(app_config[:secrets_file_path]) app_config[:db_config].deep_merge! build_db_config app_config.deep_merge! local_config_file_contents end
build_db_config()
click to toggle source
# File lib/biran/configurinator.rb, line 67 def build_db_config default_db_config = base_db_config return default_db_config unless File.exist? db_config_override_file default_db_config.deep_merge! process_config_file(db_config_override_file) end
config_vhost_dirs()
click to toggle source
# File lib/biran/configurinator.rb, line 96 def config_vhost_dirs { public_dir: File.join(app_root, vhost_public_dirname), shared_dir: app_shared_dir.to_s, log_dir: File.join(app_root, 'log'), pids_dir: File.join(app_root, 'tmp', 'pids') } end
filtered_config()
click to toggle source
# File lib/biran/configurinator.rb, line 125 def filtered_config @filtered_config ||= config.except(*configuration.app_setup_blocks) end
get_secrets_content(secrets_file)
click to toggle source
# File lib/biran/configurinator.rb, line 111 def get_secrets_content(secrets_file) return {} unless File.exists? secrets_file process_config_file secrets_file end
local_config_file_contents()
click to toggle source
# File lib/biran/configurinator.rb, line 105 def local_config_file_contents return @local_config_contents if @local_config_contents return @local_config_conents = {} unless File.exists? local_config_file @local_config_contents = process_config_file(local_config_file) end
process_config_file(config_file)
click to toggle source
# File lib/biran/configurinator.rb, line 87 def process_config_file(config_file) config_file_contents = File.read(config_file) config_file_contents = ERB.new(config_file_contents).result config_file_contents = YAML.safe_load(config_file_contents, [], [], true) config_file_contents[env].deep_symbolize_keys! rescue Errno::ENOENT raise "Missing config file: #{config_file}" end
sanitize_config_files(files_list)
click to toggle source
# File lib/biran/configurinator.rb, line 116 def sanitize_config_files files_list lambda do |(file, _)| files_list[file] ||= {extension: ''} ext = files_list[file].fetch(:extension, '').strip ext.prepend('.') unless ext.start_with?('.') || ext.empty? files_list[file][:extension] = ext end end
use_capistrano?()
click to toggle source
# File lib/biran/configurinator.rb, line 129 def use_capistrano? app_config_defaults[:app][:use_capistrano] end