Method: Wee::HtmlDocument#divert

Defined in:
lib/wee/html_document.rb

#divert(tag, txt = nil, &block) ⇒ Object

Raises:

  • (ArgumentError)


17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/wee/html_document.rb', line 17

def divert(tag, txt=nil, &block)
  raise ArgumentError if txt and block
  @divert ||= {}

  unless divert = @divert[tag]
    @divert[tag] = divert = []
    @port << divert
  end

  if txt
    divert << txt
  end

  if block
    old_port = @port
    begin
      @port = divert
      block.call
    ensure
      @port = old_port
    end
  end
end