Sha256: d8e4ba8690634885e3fac5164b69d866bd055d099c37487f6a9233c5e015b513

Contents?: true

Size: 1.07 KB

Versions: 8

Compression:

Stored size: 1.07 KB

Contents

module Deface
  module OriginalValidator

    def original_source
      return nil unless @args[:original].present?

      Deface::Parser.convert(@args[:original].clone)
    end

    # logs if original source has changed
    def validate_original(match)
      match = match.map(&:to_s).join if match.is_a? Array

      hashed_original = Digest::SHA1.hexdigest(match.to_s.gsub(/\s/, ''))

      if @args[:original].present?
        valid = @args[:original] == hashed_original

        unless valid
          valid = self.original_source.to_s.gsub(/\s/, '') == match.to_s.gsub(/\s/, '')
        end

        if !valid && defined?(Rails.logger)
          Rails.logger.error "\e[1;32mDeface: [ERROR]\e[0m The original source for '#{self.name}' has changed, this override should be reviewed to ensure it's still valid."
        end

        return valid
      else
        Rails.logger.info "\e[1;32mDeface: [WARNING]\e[0m No :original defined for '#{self.name}', you should change its definition to include:\n :original => '#{hashed_original}' "

        return nil
      end
    end

  end
end

Version data entries

8 entries across 8 versions & 2 rubygems

Version Path
deface-1.3.0 lib/deface/original_validator.rb
deface-1.2.0 lib/deface/original_validator.rb
deface-1.1.0 lib/deface/original_validator.rb
deface-1.0.2 lib/deface/original_validator.rb
solidus_backend-1.0.0.pre3 vendor/bundle/gems/deface-1.0.1/lib/deface/original_validator.rb
solidus_backend-1.0.0.pre2 vendor/bundle/gems/deface-1.0.1/lib/deface/original_validator.rb
solidus_backend-1.0.0.pre vendor/bundle/gems/deface-1.0.1/lib/deface/original_validator.rb
deface-1.0.1 lib/deface/original_validator.rb