Sha256: 63bffbc51008fa6cdf381407485accc34c1a8c2ac31ac9450b106c2151bdf05a

Contents?: true

Size: 979 Bytes

Versions: 53

Compression:

Stored size: 979 Bytes

Contents

require 'tins/xt/string_version'

class Object
  if RUBY_VERSION.version >= '1.9'.version
    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.version >= '1.9'.version
    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

53 entries across 52 versions & 3 rubygems

Version Path
tins-0.3.12 lib/tins/xt/named.rb
tins-0.3.11 lib/tins/xt/named.rb
tins-0.3.10 lib/tins/xt/named.rb
tins-0.3.9 lib/tins/xt/named.rb
tins-0.3.8 lib/tins/xt/named.rb
tins-0.3.7 lib/tins/xt/named.rb
tins-0.3.6 lib/tins/xt/named.rb
tins-0.3.5 lib/tins/xt/named.rb
tins-0.3.4 lib/tins/xt/named.rb
tins-0.3.3 lib/tins/xt/named.rb
tins-0.3.2 lib/tins/xt/named.rb
tins-0.3.1 lib/tins/xt/named.rb
tins-0.3.0 lib/tins/xt/named.rb