Module: DockerBuilder::Config
- Defined in:
- lib/docker_builder/config.rb,
lib/docker_builder/config/dsl.rb,
lib/docker_builder/config/helpers.rb
Defined Under Namespace
Modules: Helpers Classes: DSL, Defaults
Constant Summary collapse
- DEFAULTS =
class Error < DockerBuilder::Error; end
{ :config_file => 'config.rb', :tmp_path => 'temp' }
Class Attribute Summary collapse
-
.config_file ⇒ Object
readonly
include Utilities::Helpers.
-
.options ⇒ Object
readonly
include Utilities::Helpers.
-
.root_path ⇒ Object
readonly
include Utilities::Helpers.
-
.servers ⇒ Object
readonly
include Utilities::Helpers.
-
.tmp_path ⇒ Object
readonly
include Utilities::Helpers.
Class Method Summary collapse
- .dir_gem_root ⇒ Object
-
.load(opts = {}) ⇒ Object
Loads the user’s
config.rband all model files. - .load_servers(opts) ⇒ Object
-
.method_missing(method_sym, *arguments, &block) ⇒ Object
Define on self, since it’s a class method.
Class Attribute Details
.config_file ⇒ Object (readonly)
include Utilities::Helpers
19 20 21 |
# File 'lib/docker_builder/config.rb', line 19 def config_file @config_file end |
.options ⇒ Object (readonly)
include Utilities::Helpers
19 20 21 |
# File 'lib/docker_builder/config.rb', line 19 def @options end |
.root_path ⇒ Object (readonly)
include Utilities::Helpers
19 20 21 |
# File 'lib/docker_builder/config.rb', line 19 def root_path @root_path end |
.servers ⇒ Object (readonly)
include Utilities::Helpers
19 20 21 |
# File 'lib/docker_builder/config.rb', line 19 def servers @servers end |
.tmp_path ⇒ Object (readonly)
include Utilities::Helpers
19 20 21 |
# File 'lib/docker_builder/config.rb', line 19 def tmp_path @tmp_path end |
Class Method Details
.dir_gem_root ⇒ Object
74 75 76 77 78 79 80 81 82 |
# File 'lib/docker_builder/config.rb', line 74 def dir_gem_root return @dir_gem_root unless @dir_gem_root.nil? # spec = Gem::Specification.find_by_name("docker-builder") @dir_gem_root = spec.gem_dir @dir_gem_root end |
.load(opts = {}) ⇒ Object
Loads the user’s config.rb and all model files.
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/docker_builder/config.rb', line 38 def load(opts = {}) puts "update opts from #{opts}" update(opts) # from the command line puts "config file: #{config_file}" unless File.exist?(config_file) #raise Error, "Could not find configuration file: '#{config_file}'." raise "Could not find configuration file: '#{config_file}'." end config = File.read(config_file) #version = DockerBuilder::VERSION.split('.').first #unless config =~ /^# Backup v#{ version }\.x Configuration$/ # raise Error, <<-EOS # Invalid Configuration File # EOS #end dsl = DSL.new dsl.instance_eval(config, config_file) update(dsl.) # from config.rb update(opts) # command line takes precedence #Dir[File.join(File.dirname(config_file), 'models', '*.rb')].each do |model| # dsl.instance_eval(File.read(model), model) #end # servers load_servers(opts) end |
.load_servers(opts) ⇒ Object
95 96 97 98 99 100 101 102 103 104 105 106 |
# File 'lib/docker_builder/config.rb', line 95 def load_servers(opts) # Identify all servers if opts[:server] server_name = opts[:server] [:servers] = {server_name=>[:servers][server_name] } else # get from config #options[:servers] = options[:servers] end end |
.method_missing(method_sym, *arguments, &block) ⇒ Object
Define on self, since it’s a class method
23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/docker_builder/config.rb', line 23 def method_missing(method_sym, *arguments, &block) # the first argument is a Symbol, so you need to_s it if you want to pattern match if .has_key?(method_sym) return [method_sym] else super end #if method_sym.to_s =~ /^find_by_(.*)$/ # find($1.to_sym => arguments.first) end |