Module: Consent

Defined in:
lib/consent.rb,
lib/consent/dsl.rb,
lib/consent/view.rb,
lib/consent/rspec.rb,
lib/consent/action.rb,
lib/consent/ability.rb,
lib/consent/railtie.rb,
lib/consent/subject.rb,
lib/consent/version.rb,
lib/consent/permission.rb,
lib/consent/permissions.rb,
lib/generators/consent/permissions_generator.rb

Defined Under Namespace

Modules: Rspec Classes: Ability, Action, DSL, Permission, Permissions, PermissionsGenerator, Railtie, Subject, View

Constant Summary collapse

FULL_ACCESS =
%w(1 true).freeze
VERSION =
'0.3.1'.freeze

Class Method Summary collapse

Class Method Details

.default_viewsObject



14
15
16
# File 'lib/consent.rb', line 14

def self.default_views
  @default_views ||= {}
end

.define(key, label, options = {}, &block) ⇒ Object



27
28
29
30
31
32
# File 'lib/consent.rb', line 27

def self.define(key, label, options = {}, &block)
  defaults = options.fetch(:defaults, {})
  subjects[key] = Subject.new(key, label).tap do |subject|
    DSL.build(subject, defaults, &block)
  end
end

.load_subjects!(paths) ⇒ Object



22
23
24
25
# File 'lib/consent.rb', line 22

def self.load_subjects!(paths)
  permission_files = paths.map { |dir| dir.join('*.rb') }
  Dir[*permission_files].each(&Kernel.method(:load))
end

.permissions(permissions) ⇒ Object



34
35
36
# File 'lib/consent.rb', line 34

def self.permissions(permissions)
  Permissions.new(permissions)
end

.subjectsObject



18
19
20
# File 'lib/consent.rb', line 18

def self.subjects
  @subjects ||= {}
end