class Object

class A

singleton_from :start

def initialize(arg1, arg2, &block)
        p block.call
        p "Initialize"
        p arg1
        p arg2
end

def start(&block)
        p block.call
        p "start"
end

end

A.start(“1”, “2”) do

puts "Hi, everyone... :-)"

end

Public Class Methods

singleton_from(*method_names) click to toggle source
# File lib/singleton_from.rb, line 25
def singleton_from(*method_names)
        self.class.send(:define_method, :instance) do
      @__instance__ ||= new
        end

        method_names.each do |method_name|
                self.class.send(:define_method, method_name) do |*args, &block|
                        self.instance.send(__method__, *args, &block)
                end
        end
end