Sha256: df3a0d38c2e72cebffcc868ea25af699fb3af04a7f117217d5d0f4a5b9990983

Contents?: true

Size: 905 Bytes

Versions: 4

Compression:

Stored size: 905 Bytes

Contents

module ActiveScaffold
  class Registry
    thread_mattr_accessor :current_user_proc, :current_ability_proc, :marked_records

    def self.user_settings
      RequestStore.store[:attr_Registry_user_settings] ||= {}
    end

    def self.constraint_columns
      RequestStore.store[:attr_Registry_constraint_columns] ||= Hash.new { |h, k| h[k] = [] }
    end

    def self.unauthorized_columns
      RequestStore.store[:attr_Registry_unauthorized_columns] ||= Hash.new { |h, k| h[k] = [] }
    end

    def self.column_links
      RequestStore.store[:column_links] ||= {}
    end

    def self.cache(kind, key = nil, &block)
      unless key
        key = kind
        kind = :cache
      end
      RequestStore.store[:attr_Registry_cache] ||= {}
      cache = RequestStore.store[:attr_Registry_cache][kind] ||= {}
      return cache[key] if cache.include? key

      cache[key] ||= yield
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
active_scaffold-4.0.0 lib/active_scaffold/registry.rb
active_scaffold-4.0.0.rc3 lib/active_scaffold/registry.rb
active_scaffold-4.0.0.rc2 lib/active_scaffold/registry.rb
active_scaffold-4.0.0.rc1 lib/active_scaffold/registry.rb