Sha256: 3d5f558924c50d0dcab92aaa188edb7a10888026fda1883b872faafef599a1b2
Contents?: true
Size: 982 Bytes
Versions: 1
Compression:
Stored size: 982 Bytes
Contents
module InlineTemplates class BufferWrapper < BlankObject make_blank :respond_to? def initialize(object, buffer) @object = object @buffer = buffer end def __inline_templates_object; @object; end def ~ @buffer.append = @object @object end def method_missing(name, *args, &block) args.map! &BufferWrapper.method(:unwrap) BufferWrapper.wrap @object.__send__(name, *args, &block), @buffer end def respond_to_missing?(name, include_private = false) @object.respond_to?(name, include_private) end def self.wrap(result, buffer) if result.class == ::NilClass || result.class == ::TrueClass || result.class == ::FalseClass result else BufferWrapper.new(self.unwrap(result), buffer) end end def self.unwrap(obj) if obj.respond_to? :__inline_templates_object obj.__inline_templates_object else obj end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
inline_templates-0.0.1 | lib/inline_templates/buffer_wrapper.rb |