class Accessly::PermittedActions::Base

Public Class Methods

new(actors, segment_id) click to toggle source
# File lib/accessly/permitted_actions/base.rb, line 7
def initialize(actors, segment_id)
  @actors = actors
  @segment_id = segment_id
end

Protected Instance Methods

find_or_set_value(*keys, &query) click to toggle source
# File lib/accessly/permitted_actions/base.rb, line 18
def find_or_set_value(*keys, &query)
  found_value = past_lookups.dig(*keys)

  if found_value.nil?
    found_value = query.call
    set_value(*keys, value: found_value)
  end

  found_value
end
past_lookups() click to toggle source
# File lib/accessly/permitted_actions/base.rb, line 14
def past_lookups
  @_past_lookups ||= {}
end
set_value(*keys, value:) click to toggle source
# File lib/accessly/permitted_actions/base.rb, line 29
def set_value(*keys, value:)
  lookup = past_lookups
  keys[0..-2].each do |key|
    lookup[key] ||= {}
    lookup = lookup[key]
  end

  lookup[keys[-1]] = value
end