lib/core/facets/metaid.rb in facets-2.7.0 vs lib/core/facets/metaid.rb in facets-2.8.0
- old
+ new
@@ -1,94 +1,7 @@
-module Kernel
-
- # Alias a method defined in the metaclass (ie. singleton class).
- #
- # def X.y?; "y?" ; end
- # X.meta_alias "ynot?", "y?"
- # X.ynot? #=> y?
- #
- # CREDIT: Trans
-
- def meta_alias(*args)
- meta_class do
- alias_method(*args)
- end
- end
-
- # Evaluate code in a metaclass. This is equivalent to
- # 'meta_class.instance_eval'.
- #
- # CREDIT: WhyTheLuckyStiff
-
- def meta_eval(str=nil, &blk)
- if str
- meta_class.instance_eval(str)
- else
- meta_class.instance_eval(&blk)
- end
- end
-
- # Add method to a meta-class --i.e. a singleton method.
- #
- # class X; end
- # X.meta_def(:x){"x"}
- # X.x #=> "x"
- #
- # CREDIT: WhyTheLuckyStiff
-
- def meta_def( name, &block )
- meta_class do
- define_method( name, &block )
- end
- end
-
- # Easy access to an object's "special" class,
- # otherwise known as it's metaclass or singleton class.
-
- def meta_class(&block)
- if block_given?
- (class << self; self; end).class_eval(&block)
- else
- (class << self; self; end)
- end
- end
-
- alias_method :metaclass, :meta_class
-
- # During this trying time when no one can get their
- # techie catchwords to stick to the refrigerator no
- # matter how hard they slap it # with the enchanted
- # magnetic spatula, it’s good to know that the
- # contrived phrases really do fly, graceful and
- # unclasped and bearing north toward chilled shrimp.
- # I know what my Hallowe’en pumpkin is going to say.
- #
- # -- why the lucky stiff
- #
- # CREDIT: WhyTheLuckyStiff
-
- def eigenclass
- (class << self; self; end)
- end
-
-end
-
-
-class Module
-
- # Defines an instance method within a class.
- #
- # CREDIT: WhyTheLuckyStiff
-
- def class_def name, &blk
- class_eval { define_method name, &blk }
- end
-
- protected :attr
- protected :attr_reader
- protected :attr_writer
- protected :attr_accessor
- protected :remove_method
- protected :undef_method
-
-end
+require 'facets/kernel/meta_alias'
+require 'facets/kernel/meta_class'
+require 'facets/kernel/meta_def'
+require 'facets/kernel/meta_eval'
+require 'facets/kernel/eigenclass'
+require 'facets/module/class_def'