Sha256: 02a491fc8ed1880d78f3fea7c1cf4ce4a61b7d5b30a77b61f3c20611071d32cc
Contents?: true
Size: 1.6 KB
Versions: 2
Compression:
Stored size: 1.6 KB
Contents
=begin rdoc Basic, add an alias_method to the object class Add returning to the object =end class Object def my_methods self.methods.sort - (self.class.methods + self.class.superclass.methods) end def to_os self end def alias_method(new_id, original_id) original = self.method(original_id).to_proc define_method(new_id){|*args| original.call(*args)} end def with_options(opts={}, parent=self, &block) @p = parent.clone @p.options.merge!(opts) @p.instance_eval &block if block end def returning(receiver) yield receiver receiver end def extended(&block) block.in_context(self).call self end def send_if_method(v, *args) if (v.nil? || v.to_s.empty? || v.is_a?(Array) || v.is_a?(Integer)) v else vs = v.to_s.to_sym respond_to?(vs) ? self.send(vs, *args) : v end end def to_option_string case self.class when String self.to_option_string when Array self.each {|a| a.to_option_string }.join(" ") else "#{self}" end end def block_instance_eval(*args, &block) return instance_eval(*args,&block) unless block_given? && !block.arity.zero? old_method = (self.class.instance_method(:__) rescue nil) self.class.send(:define_method, :__, &block) block_method = self.class.instance_method(:__) if old_method self.class.send(:define_method, :__, old_method) else self.class.send(:remove_method, :__) end block_method.bind(self).call(*args) end def meta_def name, &blk (class << self; self; end).instance_eval { define_method name, &blk } end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
auser-poolparty-0.2.20 | lib/poolparty/core/object.rb |
auser-poolparty-0.2.21 | lib/poolparty/core/object.rb |