Sha256: de9cfa4532d4f3a117b9ad7ef4553937a8b868e46ae19f42397df3375b024bf8

Contents?: true

Size: 815 Bytes

Versions: 1

Compression:

Stored size: 815 Bytes

Contents

require 'active_record'

module ActiveRecordViews
  class ChecksumCache
    class Model < ActiveRecord::Base
      self.table_name = 'active_record_views'
      self.primary_key = 'name'
    end

    def initialize(connection)
      @connection = connection
      init_state_table!
    end

    def init_state_table!
      unless @connection.table_exists?('active_record_views')
        @connection.execute 'CREATE TABLE active_record_views(name text PRIMARY KEY, checksum text NOT NULL);'
      end
    end

    def get(name)
      Model.where(:name => name).first_or_initialize.checksum
    end

    def set(name, checksum)
      row = Model.where(:name => name).first_or_initialize
      if checksum
        row.update_attributes! :checksum => checksum
      else
        row.destroy
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
activerecord_views-0.0.1 lib/active_record_views/checksum_cache.rb