Class: Consent::DSL

Inherits:
Object
  • Object
show all
Defined in:
lib/consent/dsl.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(subject, defaults) ⇒ DSL

Returns a new instance of DSL.



8
9
10
11
# File 'lib/consent/dsl.rb', line 8

def initialize(subject, defaults)
  @subject = subject
  @defaults = defaults
end

Instance Attribute Details

#subjectObject (readonly)

:nodoc:



6
7
8
# File 'lib/consent/dsl.rb', line 6

def subject
  @subject
end

Class Method Details

.build(subject, defaults = {}, &block) ⇒ Object



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

def self.build(subject, defaults = {}, &block)
  DSL.new(subject, defaults).instance_eval(&block)
end

Instance Method Details

#action(key, label, options = {}) ⇒ Object



30
31
32
33
# File 'lib/consent/dsl.rb', line 30

def action(key, label, options = {})
  @subject.actions << Action.new(@subject, key, label,
                                 @defaults.merge(options))
end

#eval_view(key, label, collection_conditions) ⇒ Object

rubocop:disable Lint/UnusedBlockArgument, Security/Eval



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

def eval_view(key, label, collection_conditions)
  view key, label do |user|
    eval(collection_conditions)
  end
end

#view(key, label, instance = nil, collection = nil, &block) ⇒ Object

rubocop:enable Lint/UnusedBlockArgument, Security/Eval



25
26
27
28
# File 'lib/consent/dsl.rb', line 25

def view(key, label, instance = nil, collection = nil, &block)
  collection ||= block
  @subject.views[key] = View.new(key, label, instance, collection)
end

#with_defaults(new_defaults, &block) ⇒ Object



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

def with_defaults(new_defaults, &block)
  DSL.build(@subject, @defaults.merge(new_defaults), &block)
end