Module: Bixby::Provision
- Defined in:
- lib/bixby/provision.rb,
lib/bixby/provision/app.rb,
lib/bixby/provision/dsl/dir.rb,
lib/bixby/provision/dsl/npm.rb,
lib/bixby/provision/dsl/ntp.rb,
lib/bixby/provision/dsl/scm.rb,
lib/bixby/provision/dsl/base.rb,
lib/bixby/provision/dsl/file.rb,
lib/bixby/provision/dsl/ruby.rb,
lib/bixby/provision/manifest.rb,
lib/bixby/provision/dsl/config.rb,
lib/bixby/provision/dsl/meteor.rb,
lib/bixby/provision/dsl/nodejs.rb,
lib/bixby/provision/dsl/system.rb,
lib/bixby/provision/dsl/bundler.rb,
lib/bixby/provision/dsl/scm/git.rb,
lib/bixby/provision/dsl/scm/svn.rb,
lib/bixby/provision/dsl/service.rb,
lib/bixby/provision/dsl/scm/base.rb,
lib/bixby/provision/dsl/variable.rb,
lib/bixby/provision/dsl/inventory.rb,
lib/bixby/provision/dsl/util/file.rb,
lib/bixby/provision/dsl/run_control.rb,
lib/bixby/provision/dsl/packager/apt.rb,
lib/bixby/provision/dsl/packager/npm.rb,
lib/bixby/provision/dsl/packager/yum.rb,
lib/bixby/provision/dsl/packager/base.rb,
lib/bixby/provision/dsl/services/base.rb,
lib/bixby/provision/dsl/services/init.rb,
lib/bixby/provision/manifest/dsl_proxy.rb,
lib/bixby/provision/dsl/packager/yum/epel.rb,
lib/bixby/provision/dsl/packager/yum/mongodb.rb
Defined Under Namespace
Modules: Packager, Services, Util Classes: App, Base, Bundler, Config, DirDSL, FileDSL, Inventory, Manifest, Meteor, NPM, NTP, NodeJS, Ruby, RunControl, SCM, Service, System, Variable
Class Method Summary collapse
Class Method Details
.register_dsl(obj, name = nil) ⇒ Object
8 9 10 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 |
# File 'lib/bixby/provision.rb', line 8 def self.register_dsl(obj, name=nil) # create a simple name if none given # "Bixby::Provision::Config" > :config if name.nil? then name = obj.name.split(/::/).last.downcase end name = name.to_sym # return the dsl object via its name # always returns the same instance Manifest::DSLProxy.class_eval <<-EOF def #{name} return @#{name} if @#{name} # return already created instance @#{name} = #{obj.name}.new @#{name}.manifest = self.manifest @#{name}.proxy = self @#{name} end EOF if obj.const_defined? :EXPORTS then obj::EXPORTS.each do |e| Manifest::DSLProxy.class_eval do def_delegator name, e.to_sym end end end # add accessors for each DSL object Base.class_eval <<-EOF def #{name} self.proxy.send(:#{name}) end EOF end |