module Stunted::Defn

Public Class Methods

defn(name, fn = nil, &block) click to toggle source

Note: if you use a block with defn, you get block semantics. In particular, don't try to return from such a block.

# File lib/stunted/chaining.rb, line 7
def defn(name, fn = nil, &block)
  if fn
    define_method(name) { fn }
  else
    puts "Lambda rigamarole could be just { block }"
    define_method(name) { lambda(&block) }  # Todo: why is this lambda rigamarole required?
  end
  module_function name if respond_to?(:module_function, true) 
end

Public Instance Methods

defn(name, fn = nil, &block) click to toggle source

Note: if you use a block with defn, you get block semantics. In particular, don't try to return from such a block.

# File lib/stunted/chaining.rb, line 7
def defn(name, fn = nil, &block)
  if fn
    define_method(name) { fn }
  else
    puts "Lambda rigamarole could be just { block }"
    define_method(name) { lambda(&block) }  # Todo: why is this lambda rigamarole required?
  end
  module_function name if respond_to?(:module_function, true) 
end