class OmniAuth::Form

Constants

DEFAULT_CSS

Attributes

options[RW]

Public Class Methods

build(options = {}) { |form| ... } click to toggle source
# File lib/omniauth/form.rb, line 18
def self.build(options = {}, &block)
  form = OmniAuth::Form.new(options)
  if block.arity > 0
    yield form
  else
    form.instance_eval(&block)
  end
  form
end
new(options = {}) click to toggle source
# File lib/omniauth/form.rb, line 7
def initialize(options = {})
  options[:title] ||= 'Authentication Info Required'
  options[:header_info] ||= ''
  self.options = options

  @html = ''
  @with_custom_button = false
  @footer = nil
  header(options[:title], options[:header_info])
end

Public Instance Methods

button(text) click to toggle source
# File lib/omniauth/form.rb, line 50
def button(text)
  @with_custom_button = true
  @html << "\n<button type='submit'>#{text}</button>"
end
fieldset(legend, options = {}, &block) click to toggle source
# File lib/omniauth/form.rb, line 59
def fieldset(legend, options = {}, &block)
  @html << "\n<fieldset#{" style='#{options[:style]}'" if options[:style]}#{" id='#{options[:id]}'" if options[:id]}>\n  <legend>#{legend}</legend>\n"
  instance_eval(&block)
  @html << "\n</fieldset>"
  self
end
header(title, header_info) click to toggle source
# File lib/omniauth/form.rb, line 66
    def header(title, header_info)
      @html << <<-HTML
      <!DOCTYPE html>
      <html>
      <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>#{title}</title>
        #{css}
        #{header_info}
      </head>
      <body>
      <h1>#{title}</h1>
      <form method='post' #{"action='#{options[:url]}' " if options[:url]}noValidate='noValidate'>
      HTML
      self
    end
html(html) click to toggle source
# File lib/omniauth/form.rb, line 55
def html(html)
  @html << html
end
input_field(type, name) click to toggle source
# File lib/omniauth/form.rb, line 33
def input_field(type, name)
  @html << "\n<input type='#{type}' id='#{name}' name='#{name}'/>"
  self
end
label_field(text, target) click to toggle source
# File lib/omniauth/form.rb, line 28
def label_field(text, target)
  @html << "\n<label for='#{target}'>#{text}:</label>"
  self
end
password_field(label, name) click to toggle source
# File lib/omniauth/form.rb, line 44
def password_field(label, name)
  label_field(label, name)
  input_field('password', name)
  self
end
text_field(label, name) click to toggle source
# File lib/omniauth/form.rb, line 38
def text_field(label, name)
  label_field(label, name)
  input_field('text', name)
  self
end
to_html() click to toggle source
# File lib/omniauth/form.rb, line 95
def to_html
  footer
  @html
end
to_response() click to toggle source
# File lib/omniauth/form.rb, line 100
def to_response
  footer
  Rack::Response.new(@html, 200, 'content-type' => 'text/html').finish
end

Protected Instance Methods

css() click to toggle source
# File lib/omniauth/form.rb, line 107
def css
  "\n<style type='text/css'>#{OmniAuth.config.form_css}</style>"
end