Sha256: 92889f68859ce99fce89b7cde0d62fa98861d7ab821bd81862265d81c3a82eef

Contents?: true

Size: 1.53 KB

Versions: 29

Compression:

Stored size: 1.53 KB

Contents

class ActiveRecord::Base
  after_save :expire_redis_timestamp
  after_touch :expire_redis_timestamp
  cattr_accessor :_enable_redis_tracking

  def urls
    self.class.urls
  end

  def self.urls
    Rails.application.routes.url_helpers
  end

  def virgo_urls
    self.class.urls
  end

  def self.virgo_urls
    Virgo::Engine.routes.url_helpers
  end

  def expire_site_key
    Rails.cache.write "site_key", "site_key_#{Time.now.to_i}"
  end

  def redis_timestamp
    if enable_redis_tracking
      Rails.cache.fetch(redis_key) do
        "#{redis_key}-#{Time.now.to_i}"
      end
    end
  end

  def redis_key
    if enable_redis_tracking
      if respond_to?(:slug) && slug.present?
        _id = slug
      else
        _id = id
      end

      self.class.redis_timestamp_key_for(self.class, _id)
    end
  end

  def self.redis_timestamp_key_for(klass, record_id)
    "r-#{klass.to_s.underscore}-#{record_id}"
  end

  def expire_redis_timestamp
    if enable_redis_tracking
      Rails.cache.write(redis_key, Time.now.to_i)
    end
  end

  def enable_redis_tracking
    _enable_redis_tracking || false
  end

  def self.enable_redis_tracking
    self._enable_redis_tracking = true
  end

  def view_help
    @view_help ||= ViewHelp.new
  end

  def self.kill_pg_connections!
    db_name = Rails.configuration.database_configuration[Rails.env]['database']
    sql = "
SELECT
  pg_terminate_backend(pg_stat_activity.pid)
FROM
  pg_stat_activity
WHERE
  pg_stat_activity.datname = '#{db_name}' AND pid <> pg_backend_pid();
"
    connection.execute sql
  end
end

Version data entries

29 entries across 29 versions & 1 rubygems

Version Path
virgo-0.3.17 config/initializers/active_record.rb
virgo-0.3.16 config/initializers/active_record.rb
virgo-0.3.15 config/initializers/active_record.rb
virgo-0.3.14 config/initializers/active_record.rb
virgo-0.3.13 config/initializers/active_record.rb
virgo-0.3.12 config/initializers/active_record.rb
virgo-0.3.11 config/initializers/active_record.rb
virgo-0.3.10 config/initializers/active_record.rb
virgo-0.3.9 config/initializers/active_record.rb
virgo-0.3.8 config/initializers/active_record.rb
virgo-0.3.7 config/initializers/active_record.rb
virgo-0.3.6 config/initializers/active_record.rb
virgo-0.3.4 config/initializers/active_record.rb
virgo-0.3.3 config/initializers/active_record.rb
virgo-0.3.2 config/initializers/active_record.rb
virgo-0.3.1 config/initializers/active_record.rb
virgo-0.3 config/initializers/active_record.rb
virgo-0.2.9 config/initializers/active_record.rb
virgo-0.2.8 config/initializers/active_record.rb
virgo-0.2.7 config/initializers/active_record.rb