Sha256: d638e2c428e41f098c04b2de3bf1594851faa86bd37790fa570abcb73b4f62ad

Contents?: true

Size: 780 Bytes

Versions: 5

Compression:

Stored size: 780 Bytes

Contents

require 'facet/module/rename'
require 'facet/module/redef'
require 'facet/module/remove'
require 'facet/module/undef'
require 'facet/module/wrap'

#require 'facet/module/revisal'

class Module

  def integrate( mod, &blk )
    #include mod.revisal( &blk )
    m = Module.new { include mod }
    m.class_eval &blk
    include m 
  end

end



#  _____         _
# |_   _|__  ___| |_
#   | |/ _ \/ __| __|
#   | |  __/\__ \ |_
#   |_|\___||___/\__|
#

=begin testing

  require 'test/unit'

  class TCModule < Test::Unit::TestCase
    module M
      def x ; 1 ; end
    end
    class C
      integrate M do
        rename :y, :x
      end
    end

    def test_integrate
      c = C.new
      assert_raises( NoMethodError ) { c.x }
      assert_equal( 1, c.y )
    end
  end

=end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
facets-1.0.0 lib/facet/module/integrate.rb
facets-1.0.3 packages/core/lib/facet/module/integrate.rb
facets-1.1.0 lib/facet/module/integrate.rb
facets-1.2.0 lib/facets/core/module/integrate.rb
facets-1.2.1 lib/facets/core/module/integrate.rb