Class: Biran::Configurinator

Inherits:
Object
  • Object
show all
Includes:
ConfigDefaults
Defined in:
lib/biran/configurinator.rb

Constant Summary collapse

DEFAULT_ENV =
'development'

Class Attribute Summary collapse

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from ConfigDefaults

#app_base, #app_defaults_init, #app_env, #app_root, #app_shared_dir, #bindings, #config_dir, #configuration, #db_config_filename, #db_config_override_file, #default_db_config_file, #local_config_file, #local_config_filename, #secrets_file, #secrets_filename, #vhost_public_dirname

Constructor Details

#initialize(env: nil) ⇒ Configurinator

Returns a new instance of Configurinator.



18
19
20
21
# File 'lib/biran/configurinator.rb', line 18

def initialize(env: nil)
  @env = env || app_env
  @config = build_app_config
end

Class Attribute Details

.configObject

Returns the value of attribute config.



10
11
12
# File 'lib/biran/configurinator.rb', line 10

def config
  @config
end

Instance Attribute Details

#configObject (readonly)

Returns the value of attribute config.



7
8
9
# File 'lib/biran/configurinator.rb', line 7

def config
  @config
end

#db_configObject (readonly)

Returns the value of attribute db_config.



7
8
9
# File 'lib/biran/configurinator.rb', line 7

def db_config
  @db_config
end

#envObject (readonly)

Returns the value of attribute env.



7
8
9
# File 'lib/biran/configurinator.rb', line 7

def env
  @env
end

Class Method Details

.configure {|config| ... } ⇒ Object

Yields:



12
13
14
15
# File 'lib/biran/configurinator.rb', line 12

def configure
  self.config ||= Config.instance
  yield config
end

Instance Method Details

#create(name:, extension:, output_dir: nil, output_name: nil, config_index_list: []) ⇒ Object



33
34
35
36
37
38
39
40
41
42
43
44
# 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_tasksObject



23
24
25
# File 'lib/biran/configurinator.rb', line 23

def file_tasks
  files_to_generate.keys
end

#files_to_generateObject



27
28
29
30
31
# 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