Sha256: eea691ee825c96a5876aa0e69f98ecb01a13243a84ce0cf3e150731f331e6836

Contents?: true

Size: 984 Bytes

Versions: 7

Compression:

Stored size: 984 Bytes

Contents

class Bootstrap
  # shared methods for OldComponent and TagMethod
  module Content
    private

    def process_collected_content tag_name, opts
      collected_content = @content.pop
      tag_name = opts.delete(:tag) if tag_name == :yield
      add_content content_tag(tag_name, collected_content, opts, false)
    end

    def process_content &content_block
      content, opts = yield
      wrappers = @wrap.pop
      if wrappers.present?
        process_wrappers wrappers, content, &content_block
      else
        add_content content
      end
      opts
    end

    def process_append
      @append.pop.each do |block|
        add_content instance_exec(&block)
      end
    end

    def process_wrappers wrappers, content, &content_block
      while wrappers.present?
        wrapper = wrappers.shift
        if wrapper.is_a? Symbol
          send wrapper, &content_block
        else
          instance_exec content, &wrappers.shift
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
card-mod-bootstrap-0.11.7 lib/bootstrap/content.rb
card-mod-bootstrap-0.11.6 lib/bootstrap/content.rb
card-mod-bootstrap-0.11.5 lib/bootstrap/content.rb
card-mod-bootstrap-0.11.4 lib/bootstrap/content.rb
card-mod-bootstrap-0.11.3 lib/bootstrap/content.rb
card-mod-bootstrap-0.11.2 lib/bootstrap/content.rb
card-mod-bootstrap-0.11.1 lib/bootstrap/content.rb