module FluentdServer::WebHelper

Public Instance Methods

active_if(cond) click to toggle source
# File lib/fluentd_server/web_helper.rb, line 76
def active_if(cond)
  'active' if cond
end
bootstrap_flash() click to toggle source
# File lib/fluentd_server/web_helper.rb, line 84
  def bootstrap_flash
    slim <<-EOF
- if flash[:notice]
  p.alert.alert-success
    == flash[:notice]
- if flash[:error]
  p.alert.alert-danger
    == flash[:error]
EOF
  end
disabled_if(cond) click to toggle source
# File lib/fluentd_server/web_helper.rb, line 80
def disabled_if(cond)
  'disabled="disabled"' if cond
end
escape_url(str) click to toggle source
# File lib/fluentd_server/web_helper.rb, line 72
def escape_url(str)
  CGI.escape(str)
end
parse_query(qs, d=nil) click to toggle source

override RackUtil.parse_query @param qs query string @param d delimiter @return

# File lib/fluentd_server/web_helper.rb, line 12
def parse_query(qs, d=nil)
  params = {}
  (qs || '').split(d ? /[#{d}] */n : DEFAULT_SEP).each do |p|
    k, v = p.split('=', 2).map { |x| unescape(x) }
    if k.ends_with?('[]')
      k1 = k[0..-3]
      if params[k1] and params[k1].class == Array
        params[k1] << v
      else
        params[k1] = [v]
      end
    elsif k.ends_with?(']') and md = k.match(/^([^\[]+)\[([^\]]+)\]$/)
      k1, k2 = md[1], md[2]
      if params[k1] and params[k1].class == Hash
        params[k1][k2] = v
      else
        params[k1] = { k2 => v }
      end
    else
      params[k] = v
    end
  end
  params
end
url_for(url_fragment, mode=nil, options = nil) click to toggle source
# File lib/fluentd_server/web_helper.rb, line 37
def url_for(url_fragment, mode=nil, options = nil)
  if mode.is_a? Hash
    options = mode
    mode = nil
  end

  if mode.nil?
    mode = :path_only
  end

  mode = mode.to_sym unless mode.is_a? Symbol
  optstring = nil

  if options.is_a? Hash
    optstring = '?' + options.map { |k,v| "#{k}=#{URI.escape(v.to_s, /[^#{URI::PATTERN::UNRESERVED}]/)}" }.join('&')
  end

  case mode
  when :path_only
    base = request.script_name
  when :full
    scheme = request.scheme
    if (scheme == 'http' && request.port == 80 ||
        scheme == 'https' && request.port == 443)
      port = ""
    else
      port = ":#{request.port}"
    end
    base = "#{scheme}://#{request.host}#{port}#{request.script_name}"
  else
    raise TypeError, "Unknown url_for mode #{mode.inspect}"
  end
  "#{base}#{url_fragment}#{optstring}"
end