Class: Woro::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/woro/configuration.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Configuration

Initialize configuration.



10
11
12
13
14
# File 'lib/woro/configuration.rb', line 10

def initialize(options = {})
  @woro_task_dir = Configuration.woro_task_dir
  @adapter_settings = options['adapters'] || {}
  @app_name = options['app_name']
end

Instance Attribute Details

#adapter_settingsObject (readonly)

Returns the value of attribute adapter_settings.



7
8
9
# File 'lib/woro/configuration.rb', line 7

def adapter_settings
  @adapter_settings
end

#app_nameObject (readonly)

Returns the value of attribute app_name.



7
8
9
# File 'lib/woro/configuration.rb', line 7

def app_name
  @app_name
end

#woro_task_dirObject (readonly)

Returns the value of attribute woro_task_dir.



7
8
9
# File 'lib/woro/configuration.rb', line 7

def woro_task_dir
  @woro_task_dir
end

Class Method Details

.config_fileObject

Helpers



52
53
54
# File 'lib/woro/configuration.rb', line 52

def self.config_file
  File.join('config', 'woro.yml')
end

.default_optionsObject



64
65
66
67
# File 'lib/woro/configuration.rb', line 64

def self.default_options
  {
  }
end

.load(options = {}) ⇒ Object

Load configuration file or default_options. Passed options take precedence.



17
18
19
20
21
22
23
24
25
26
27
# File 'lib/woro/configuration.rb', line 17

def self.load(options = {})
  user_options = options.reject { |k, v| !['adapters', 'app_name'].include? k }

  unless File.exist? config_file
    File.open(config_file, 'w') { |file| YAML.dump(default_options, file) }
    say "Initialized default config file in `#{config_file}`. See 'woro help init' for options."
  end

  config_file_options = YAML.load_file(config_file)
  new(config_file_options.merge(user_options))
end

.rake_task_dirObject



60
61
62
# File 'lib/woro/configuration.rb', line 60

def self.rake_task_dir
  File.join('lib', 'tasks')
end

.save(options = {}) ⇒ Object

Save configuration. Passed options take precendence over default_options.



30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/woro/configuration.rb', line 30

def self.save(options = {})
  user_options = options.reject { |k, v| !['adapters', 'app_name'].include? k }
  force_save = options.delete :force

  if !File.exist?(config_file) || force_save
    File.open(config_file, 'w') do |file|
      YAML.dump(default_options.merge(user_options), file)
    end
    say "Initialized config file in `#{config_file}`"
  else
    say_error "Not overwriting existing config file `#{config_file}`, use --force to override. See 'woro help init'."
  end
  self
end

.woro_task_dirObject



56
57
58
# File 'lib/woro/configuration.rb', line 56

def self.woro_task_dir
  File.join('lib', 'woro_tasks')
end

Instance Method Details

#adapter(adapter_name) ⇒ Object



45
46
47
48
# File 'lib/woro/configuration.rb', line 45

def adapter(adapter_name)
  clazz = Object.const_get("Woro::Adapters::#{adapter_name.capitalize}")
  clazz.new adapter_settings[adapter_name.downcase]
end