Sha256: 506e4f40c48637008d630b39791c6a454b8fdee872cf3b9b5e15bce1c22fd759

Contents?: true

Size: 918 Bytes

Versions: 3

Compression:

Stored size: 918 Bytes

Contents

class Object
  if RUBY_VERSION >= '1.9'
    def named(name, method, *args, &named_block) 
      extend Module.new {
        define_method(name) do |*rest, &block|
          block = named_block if named_block
          __send__(method, *(args + rest), &block) 
        end
      }
    end
  else
    def named(name, method, *args, &block) 
      extend Module.new { define_method(name) { |*rest| __send__(method, *(args + rest), &block) } }
    end
  end
end

class Module
  if RUBY_VERSION >= '1.9'
    def named(name, method, *args, &named_block) 
      include Module.new {
        define_method(name) do |*rest, &block|
          block = named_block if named_block
          __send__(method, *(args + rest), &block)
        end
      }
    end
  else
    def named(name, method, *args, &block) 
      include Module.new { define_method(name) { |*rest| __send__(method, *(args + rest), &block) } }
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
spruz-0.2.11 lib/spruz/xt/named.rb
spruz-0.2.10 lib/spruz/xt/named.rb
spruz-0.2.9 lib/spruz/xt/named.rb