Sha256: 928f0b069efa6a333bfdfeb28fa829453f9fb073b4f982df9312b63051543371

Contents?: true

Size: 968 Bytes

Versions: 8

Compression:

Stored size: 968 Bytes

Contents

if Hancock.mongoid?
  module Hancock::HtmlField
    extend ActiveSupport::Concern

    module ClassMethods
      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
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
hancock_cms-1.0.1 app/models/concerns/hancock/html_field.rb
hancock_cms-2.0.0.2 app/models/concerns/hancock/html_field.rb
hancock_cms-1.0.0.4 app/models/concerns/hancock/html_field.rb
hancock_cms-1.0.0.3 app/models/concerns/hancock/html_field.rb
hancock_cms-2.0.0.1 app/models/concerns/hancock/html_field.rb
hancock_cms-1.0.0.2 app/models/concerns/hancock/html_field.rb
hancock_cms-2.0.0 app/models/concerns/hancock/html_field.rb
hancock_cms-1.0.0 app/models/concerns/hancock/html_field.rb