Class: FormTranslation::LanguagesFormBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/form_translation/languages_form_builder.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(form_builder) ⇒ LanguagesFormBuilder

Returns a new instance of LanguagesFormBuilder.



7
8
9
# File 'lib/form_translation/languages_form_builder.rb', line 7

def initialize(form_builder)
  @form_builder = form_builder
end

Instance Attribute Details

#form_builderObject

Returns the value of attribute form_builder.



4
5
6
# File 'lib/form_translation/languages_form_builder.rb', line 4

def form_builder
  @form_builder
end

#languageObject

Returns the value of attribute language.



4
5
6
# File 'lib/form_translation/languages_form_builder.rb', line 4

def language
  @language
end

Instance Method Details

#association(*args) ⇒ Object



26
27
28
# File 'lib/form_translation/languages_form_builder.rb', line 26

def association(*args)
  raise "not implemented!"
end

#input(attribute_name, options = {}, &block) ⇒ Object



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/form_translation/languages_form_builder.rb', line 30

def input(attribute_name, options={}, &block)
  # @language is set and not default.
  options = @defaults.deep_dup.deep_merge(options) if @defaults
  input   = form_builder.send(:find_input, attribute_name, options, &block)
  input.instance_variable_set("@attribute_name", "#{self.language}_#{input.attribute_name}".to_sym)

  chosen =
    if name = options[:wrapper] || form_builder.send(:find_wrapper_mapping, input.input_type)
      name.respond_to?(:render) ? name : SimpleForm.wrapper(name)
    else
      form_builder.wrapper
    end

  chosen.render input
end

#render(&block) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/form_translation/languages_form_builder.rb', line 11

def render(&block)
  rnd = SecureRandom.hex(8)
  template.(:div, '') do
    divs = ''
    divs += template.(:ul, class: 'nav nav-tabs') do
      li_content rnd
    end
    divs += template.(:div, class: 'tab-content') do
      language_tabs rnd, &block
    end
    divs.html_safe
  end
end