Module: FormtasticBootstrap::Inputs::Base::Wrapping

Includes:
Formtastic::Inputs::Base::Wrapping
Included in:
FormtasticBootstrap::Inputs::Base
Defined in:
lib/formtastic-bootstrap/inputs/base/wrapping.rb

Instance Method Summary collapse

Instance Method Details

#add_on_content(content) ⇒ Object



39
40
41
42
# File 'lib/formtastic-bootstrap/inputs/base/wrapping.rb', line 39

def add_on_content(content)
  return nil unless content
  template.(:span, content, :class => 'input-group-addon')
end

#add_on_wrapper_classes(options) ⇒ Object



58
59
60
61
62
# File 'lib/formtastic-bootstrap/inputs/base/wrapping.rb', line 58

def add_on_wrapper_classes(options)
  [:prepend, :append, :prepend_content, :append_content].find do |key|
    options.has_key?(key)
  end ? ['input-group'] : []
end

#bootstrap_wrapping(&block) ⇒ Object



8
9
10
11
12
13
14
15
16
17
# File 'lib/formtastic-bootstrap/inputs/base/wrapping.rb', line 8

def bootstrap_wrapping(&block)
  form_group_wrapping do
    label_html <<
    template.(:span, :class => 'form-wrapper') do
      input_content(&block) <<
      hint_html(:block) <<
      error_html(:block)
    end
  end
end

#form_group_wrapping(&block) ⇒ Object



44
45
46
47
48
49
# File 'lib/formtastic-bootstrap/inputs/base/wrapping.rb', line 44

def form_group_wrapping(&block)
  template.(:div,
    template.capture(&block).html_safe,
    wrapper_html_options
  )
end

#input_content(&block) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/formtastic-bootstrap/inputs/base/wrapping.rb', line 19

def input_content(&block)
  content = [
    add_on_content(options[:prepend]),
    options[:prepend_content],
    yield,
    add_on_content(options[:append]),
    options[:append_content]
  ].compact.join("\n").html_safe

  if prepended_or_appended?(options)
    template.(:div, content, :class => add_on_wrapper_classes(options).join(" "))
  else
    content
  end
end

#prepended_or_appended?(options) ⇒ Boolean

Returns:

  • (Boolean)


35
36
37
# File 'lib/formtastic-bootstrap/inputs/base/wrapping.rb', line 35

def prepended_or_appended?(options)
  options[:prepend] || options[:prepend_content] || options[:append] || options[:append_content]
end

#wrapper_html_optionsObject



51
52
53
54
55
56
# File 'lib/formtastic-bootstrap/inputs/base/wrapping.rb', line 51

def wrapper_html_options
  super.tap do |options|
    options[:class] << " form-group"
    options[:class] << " has-error" if errors?
  end
end