Operation 0

Implements the blablabla pattern

Manfred, Feb 29 at 11:48

Did you ever hear someone say, “Oh! But that’s the ___ pattern!”

class Object
  def using(object, &block)
    object.instance_eval(&block); object
  end

  def returning(value)
    yield(value)
    value
  end
end

class Index
  def build
  end

  def self.build
    index = new
    index.build
    index
  end

  def self.build2
    using(new) { build }
  end

  def self.build3
    using new do
      build
    end
  end

  def self.build4
    returning new do |index|
      index.build
    end
  end

  def self.build5
    (index = new).build; index
  end
end