Module: Hancock::HtmlField::ClassMethods

Defined in:
app/models/concerns/hancock/html_field.rb

Instance Method Summary collapse

Instance Method Details

#hancock_cms_html_field(name, opts = {}) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'app/models/concerns/hancock/html_field.rb', line 6

def hancock_cms_html_field(name, opts = {})
  clear_by_default = opts.delete(:clear_by_default)
  clear_by_default = false unless clear_by_default == true

  _html_field_name = "#{name}_html".freeze

  field _html_field_name, opts
  field "#{name}_clear", type: Boolean, default: clear_by_default, localize: opts[:localize]

  class_eval <<-EVAL
    def #{name}
      self.#{_html_field_name} ||= ""
      return self.#{_html_field_name} unless self.#{name}_clear
      clean_#{name}
    end
    def #{name}=(val)
      self.#{_html_field_name} = val
    end

    def clean_#{name}
      self.#{_html_field_name} ||= ""
      Rails::Html::FullSanitizer.new.sanitize(self.#{_html_field_name}.strip)
    end
  EVAL
end