Sha256: 236849ea7aade20e615b4ae99ee6a65f7d66a0cc2ac7c0aaae4cc83a8c3323c6
Contents?: true
Size: 1.18 KB
Versions: 3
Compression:
Stored size: 1.18 KB
Contents
class Object def returning(value) yield(value) value end def meta_class() class << self; self end end def meta_eval(&blk) meta_class.instance_eval( &blk ) end def meta_def(name, &blk) meta_eval { define_method name, &blk } end def class_def name, &blk self.class.class_eval { define_method name, &blk } end def blank? if respond_to? :empty? then empty? elsif respond_to? :zero? then zero? else !self end end def with_options(options) yield Merb::OptionMerger.new(self, options) end end module Merb class OptionMerger #:nodoc: instance_methods.each do |method| undef_method(method) if method !~ /^(__|instance_eval|class)/ end def initialize(context, options) @context, @options = context, options end private def method_missing(method, *arguments, &block) merge_argument_options! arguments @context.send(method, *arguments, &block) end def merge_argument_options!(arguments) arguments << if arguments.last.respond_to? :to_hash @options.merge(arguments.pop) else @options.dup end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
merb-0.3.1 | lib/merb/core_ext/merb_object.rb |
merb-0.3.3 | lib/merb/core_ext/merb_object.rb |
merb-0.3.4 | lib/merb/core_ext/merb_object.rb |