module ActiverecordReadonly

Constants

VERSION

Public Class Methods

current() click to toggle source
# File lib/activerecord_readonly.rb, line 24
def current
  RequestStore[:activerecord_readonly]
end
except_class_names() click to toggle source
# File lib/activerecord_readonly.rb, line 32
def except_class_names
  current&.excepts || []
end
only_class_names() click to toggle source
# File lib/activerecord_readonly.rb, line 36
def only_class_names
  current&.only || []
end
readonly?() click to toggle source
# File lib/activerecord_readonly.rb, line 28
def readonly?
  current&.be_readonly || false
end
reset_readonly!() click to toggle source
# File lib/activerecord_readonly.rb, line 18
def reset_readonly!
  RequestStore[:activerecord_readonly] = ActiverecordReadonly::Current.new(false,
                                                                           [],
                                                                           [])
end
switch!(be_readonly = false, excepts: [], only: []) click to toggle source
# File lib/activerecord_readonly.rb, line 12
def switch!(be_readonly = false, excepts: [], only: [])
  RequestStore[:activerecord_readonly] = ActiverecordReadonly::Current.new(be_readonly,
                                                                           excepts.map(&:to_s),
                                                                           only.map(&:to_s))
end
with(be_readonly) { || ... } click to toggle source
# File lib/activerecord_readonly.rb, line 40
def with(be_readonly)
  old = readonly?

  switch!(be_readonly)
  yield
  switch!(old)
end