module PlainSite::Tpl::ExtMethods

Public Instance Methods

echo_block(&block) click to toggle source
# File lib/PlainSite/Tpl/ExtMethods.rb, line 11
def echo_block(&block)
  old=@_erbout_buf
  @_erbout_buf=""
  block.call
  block_content=@_erbout_buf.strip
  @_erbout_buf=old
  block_content
end
iframe(attrs={},&block) click to toggle source
# File lib/PlainSite/Tpl/ExtMethods.rb, line 25
def iframe(attrs={},&block)
  attrs[:width]=attrs[:width] || "100%"
  attrs[:height]=attrs[:height] || "100%"
  attrs= attrs.to_a.map do |a|
    k,v=a
    "#{k}=\"#{v}\""
  end.join " "
  html=echo_block &block
  html="
  <!DOCTYPE html>
  <html>
  <head>
    <title>IFrame</title>
  </head>
  <body>#{html}</body>
  </html>
  "

  html=html.to_json
  id='ID_'+(SecureRandom.uuid.gsub '-','')
  @_erbout_buf << "
  <iframe #{attrs} src='about:blank' id='#{id}'></iframe>
  <script>
    setTimeout(function () {
      document.getElementById('#{id}').contentWindow.document.write(#{html})
    },0);
  </script>
  "
end
raw(&block) click to toggle source
# File lib/PlainSite/Tpl/ExtMethods.rb, line 20
def raw(&block)
  code=echo_block &block
  @_erbout_buf << (html_escape code)
end
your_custom_template_method(&block) click to toggle source
# File lib/PlainSite/_scaffold/_src/extensions/TplExt.rb, line 6
def your_custom_template_method(&block)
  """
  <% your_custom_template_method do %>
    Echo!
  <% end %>
  """
  code=echo_block &block
  @_erbout_buf << code
end
your_mystery_tpl_method() click to toggle source
# File lib/PlainSite/_scaffold/_src/extensions/TplExt.rb, line 16
def your_mystery_tpl_method
  """
    <%=your_mystery_tpl_method%>
  """
  "Mystery!"
end