class Module
Core extension library
#####################################################################
def const_missing(const_name)
--classic-namespace command line option will define these
name, display a warning and return the proper object. Using the
Rake class names. If someone tries to reference the constant
Check for deprecated uses of top level (i.e. in Object) uses of
def const_missing(const_name) case const_name when :Task Rake.application.const_warning(const_name) Rake::Task when :FileTask Rake.application.const_warning(const_name) Rake::FileTask when :FileCreationTask Rake.application.const_warning(const_name) Rake::FileCreationTask when :RakeApp Rake.application.const_warning(const_name) Rake::Application else rake_original_const_missing(const_name) end end
def rake_extension(method)
end
end
end
...
def xyz
rake_extension("xyz") do
class String
Usage:
block will take effect.
not added. Otherwise the block is yielded and any definitions in the
the method already exists, then a warning is printed and the extension is
Check for an existing method in the current class before extending. IF
def rake_extension(method) if method_defined?(method) $stderr.puts "WARNING: Possible conflict with Rake extension: #{self}##{method} already exists" else yield end end