class Mincer::Processors::CacheDigest::Processor

Public Class Methods

new(mincer) click to toggle source
# File lib/mincer/processors/cache_digest/processor.rb, line 6
def initialize(mincer)
  @mincer, @args, @relation = mincer, mincer.args, mincer.relation
end

Public Instance Methods

apply() click to toggle source
# File lib/mincer/processors/cache_digest/processor.rb, line 10
def apply
  @relation
end
digest() click to toggle source
# File lib/mincer/processors/cache_digest/processor.rb, line 14
def digest
  Mincer.connection.execute(digest_sql).first.values.first
end

Private Instance Methods

digest_columns_as_sql() click to toggle source
# File lib/mincer/processors/cache_digest/processor.rb, line 27
def digest_columns_as_sql
  @mincer.class.digest_columns.map { |column| "string_agg(digest_q.#{column}::text, '')" }.join(' || ')
end
digest_sql() click to toggle source
# File lib/mincer/processors/cache_digest/processor.rb, line 20
        def digest_sql
          <<-SQL
          SELECT digest(#{digest_columns_as_sql}, 'md5') as digest
          FROM (#{@relation.connection.unprepared_statement { @relation.to_sql }}) as digest_q
          SQL
        end