lib/dockly.rb in dockly-0.0.2 vs lib/dockly.rb in dockly-0.0.4
- old
+ new
@@ -14,31 +14,64 @@
require 'dockly/deb'
require 'dockly/util/tar'
require 'dockly/util/git'
module Dockly
- def setup(file = 'dockly.rb')
- git_sha rescue 'unknown'
- Dockly::Deb.instances
- Dockly::Docker.instances
- Dockly::Foreman.instances
- instance_eval(IO.read(file), file)
+ attr_reader :instance, :git_sha
+ attr_writer :load_file
+
+ LOAD_FILE = 'dockly.rb'
+
+ def load_file
+ @load_file || LOAD_FILE
end
+ def inst
+ @instance ||= load_inst
+ end
+
+ def load_inst
+ setup.tap do |state|
+ if File.exists?(load_file)
+ instance_eval(IO.read(load_file), load_file)
+ end
+ end
+ end
+
+ def setup
+ {
+ :debs => Dockly::Deb.instances,
+ :dockers => Dockly::Docker.instances,
+ :foremans => Dockly::Foreman.instances
+ }
+ end
+
{
:deb => Dockly::Deb,
:docker => Dockly::Docker,
:foreman => Dockly::Foreman
}.each do |method, klass|
define_method(method) do |sym, &block|
- klass.new!(:name => sym, &block)
+ if block.nil?
+ inst[:"#{method}s"][sym]
+ else
+ klass.new!(:name => sym, &block)
+ end
end
end
+ [:debs, :dockers, :foremans].each do |method|
+ define_method(method) do
+ inst[method]
+ end
+ end
+
def git_sha
@git_sha ||= Dockly::Util::Git.git_sha
end
- module_function :setup, :deb, :docker, :foreman, :git_sha
+ module_function :inst, :load_inst, :setup, :load_file, :load_file=,
+ :deb, :docker, :foreman, :git_sha,
+ :debs, :dockers, :foremans
end
require 'dockly/rake_task'