module Omnibus::Sugarable

Public Class Methods

extended(base) click to toggle source
# File lib/omnibus/sugarable.rb, line 21
def self.extended(base)
  base.send(:extend, ChefUtils)
  base.send(:extend, Omnibus::Sugar)
end
included(base) click to toggle source
# File lib/omnibus/sugarable.rb, line 26
def self.included(base)
  base.send(:include, ChefUtils)
  base.send(:include, Omnibus::Sugar)

  if base < Cleanroom
    # Make all the "sugars" available in the cleanroom (DSL)
    ChefUtils.instance_methods.each do |instance_method|
      base.send(:expose, instance_method)
    end

    # Make all the common "sugars" available in the cleanroom (DSL)
    Omnibus::Sugar.instance_methods.each do |instance_method|
      base.send(:expose, instance_method)
    end
  end
end

Public Instance Methods

node() click to toggle source

This method is used by Chef Sugar to easily add the DSL. By mimicing Chef’s node object, we can easily include the existing DSL into Omnibus project as if it were Chef. Otherwise, we would need to rewrite all the DSL methods.

# File lib/omnibus/sugarable.rb, line 47
def node
  Ohai
end