Method: Docman::DocrootConfig#initialize

Defined in:
lib/docman/docroot_config.rb

#initialize(docroot_dir, deploy_target_name = nil, options = nil) ⇒ DocrootConfig

Returns a new instance of DocrootConfig.



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/docman/docroot_config.rb', line 11

def initialize(docroot_dir, deploy_target_name = nil, options = nil)
  @override = {}
  if options && options['config']
    @override = JSON.parse(options['config'])
  end
  @docroot_dir = docroot_dir
  #@deploy_target = deploy_target
  @docroot_config_dir = File.join(docroot_dir, 'config')

  Dir.chdir @docroot_config_dir
  unless options.key? :config_dir
    update('origin')
  end
  config_files = Docman::Application.instance.config_dirs(options).collect{|item|
    File.join(@docroot_config_dir, item, 'config.{yaml,yml}')
  }
  config_file_path = Dir.glob(config_files).first

  raise "Configuration file config.{yaml,yml} not found." if config_file_path.nil?

  @config_dir = File.dirname(config_file_path)
  @config_file = File.basename(config_file_path)

  Docman::Application.instance.config.merge_config_from_file(docroot_dir, @config_dir, @config_file, options)

  if deploy_target_name
    @deploy_target = Application.instance.config['deploy_targets'][deploy_target_name]
    raise "Wrong deploy target: #{deploy_target_name}" if @deploy_target.nil?
    @deploy_target['name'] = deploy_target_name
  end

  @names = {}
  @raw_infos = {}
  master_file = File.join(@docroot_config_dir, 'master')
  if File.directory? master_file
    @structure = structure_build(File.join(@docroot_config_dir, 'master'))
  else
    @structure = structure_build_from_config_file(Docman::Application.instance.config)
  end
end