Sha256: f54650cc1344bc10276b73d2f62473fb027b3a2150be08eb396ef980f951e712

Contents?: true

Size: 573 Bytes

Versions: 7

Compression:

Stored size: 573 Bytes

Contents

require 'i_am_i_can/configs/config'

module IAmICan
  module Configs
    cattr_accessor :configs, default: { }

    def self.set_for(subject:, role:, permission:, role_group: nil, &block)
      config = Config.new(subject, role, permission, role_group)
      config.instance_eval(&block)
      configs.merge!(
          subject => config.dup,
          role => config.dup,
          permission => config.dup,
      )
      configs.merge!(role_group => config.dup) if role_group
      config
    end

    def self.get(class_name)
      configs[class_name]
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
i_am_i_can-4.3.3 lib/i_am_i_can/configs/configs.rb
i_am_i_can-4.3.2 lib/i_am_i_can/configs/configs.rb
i_am_i_can-4.3.1 lib/i_am_i_can/configs/configs.rb
i_am_i_can-4.3.0 lib/i_am_i_can/configs/configs.rb
i_am_i_can-4.2.0 lib/i_am_i_can/configs/configs.rb
i_am_i_can-4.1.0 lib/i_am_i_can/configs/configs.rb
i_am_i_can-4.0.0 lib/i_am_i_can/configs/configs.rb