Sha256: 285fcbf2e24f744c9120ccaa3e495bf5d2c1cadfe7956cb34201dfb2149cd8f2

Contents?: true

Size: 834 Bytes

Versions: 3

Compression:

Stored size: 834 Bytes

Contents

module ActiveRecordReadOnlyExtension
  extend ActiveSupport::Concern
  
  def destroy
    raise 'Read-Only Mode' if readonly?
    super
  end
  
  module ClassMethods
    def read_only_mode?
      # Read only mode only applies to the web server, not the console or rake tasks,
      # since they are used for maintenance during read-only mode.
      #
      @@read_only_mode = (read_only_trigger? and not console? and not rake_task?) if not defined?(@@read_only_mode)
      @@read_only_mode
    end
    def read_only_trigger?
      File.exist?(File.join(Rails.root, 'tmp/read_only_mode'))
    end
    def console?
      defined?(Rails::Console)
    end
    def rake_task?
      File.basename($0) == 'rake'
    end
  end
end

module ActiveRecord
  class Base
    def readonly?
      ActiveRecord::Base.read_only_mode?
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
your_platform-1.0.1 app/models/active_record_read_only_extension.rb
your_platform-1.0.0 app/models/active_record_read_only_extension.rb
your_platform-0.0.2 app/models/active_record_read_only_extension.rb