Sha256: b7fbf39e69f577468ef94f2954432153fdbf60ecca556d837049122feeb730e3
Contents?: true
Size: 1.95 KB
Versions: 2
Compression:
Stored size: 1.95 KB
Contents
module Loofah # # Loofah can scrub ActiveRecord attributes in a before_validation callback: # # # in environment.rb # Rails::Initializer.run do |config| # config.gem 'loofah' # end # # # db/schema.rb # create_table "posts" do |t| # t.string "title" # t.string "body" # end # # # app/model/post.rb # class Post < ActiveRecord::Base # html_fragment :body, :scrub => :prune # scrubs 'body' in a before_validation # end # module ActiveRecordExtension # # :call-seq: # html_fragment(attribute, :scrub => sanitization_method) # # Scrub an ActiveRecord attribute +attribute+ as an HTML *fragment* # using the method specified by +sanitization_method+. # # +sanitization_method+ must be one of: # # * :string # * :prune # * :escape # * :whitewash # # See Loofah for an explanation of each sanitization method. # def html_fragment(attr, options={}) raise ArgumentError, "html_fragment requires :scrub option" unless method = options[:scrub] before_validation do |record| record[attr] = Loofah.scrub_fragment(record[attr], method).to_s end end # # :call-seq: # model.html_document(attribute, :scrub => sanitization_method) # # Scrub an ActiveRecord attribute +attribute+ as an HTML *document* # using the method specified by +sanitization_method+. # # +sanitization_method+ must be one of: # # * :string # * :prune # * :escape # * :whitewash # # See Loofah for an explanation of each sanitization method. # def html_document(attr, options={}) raise ArgumentError, "html_document requires :scrub option" unless method = options[:scrub] before_validation do |record| record[attr] = Loofah.scrub_document(record[attr], method).to_s end end end end ActiveRecord::Base.extend(Loofah::ActiveRecordExtension)
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
loofah-0.3.1 | lib/loofah/active_record.rb |
loofah-0.3.0 | lib/loofah/active_record.rb |