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 " def \#{name}\n return @\#{name} if @\#{name} # return already created instance\n\n @\#{name} = \#{obj.name}.new\n @\#{name}.manifest = self.manifest\n @\#{name}.proxy = self\n @\#{name}\n end\n EOF\n\n if obj.const_defined? :EXPORTS then\n obj::EXPORTS.each do |e|\n\n Manifest::DSLProxy.class_eval do\n def_delegator name, e.to_sym\n end\n\n end\n end\n\n # add accessors for each DSL object\n Base.class_eval <<-EOF\n def \#{name}\n self.proxy.send(:\#{name})\n end\n EOF\n\nend\n" |