Class: StimulusPlumbers::Plumber::Slots

Inherits:
Object
  • Object
show all
Defined in:
lib/stimulus_plumbers/plumber/slots.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(template = nil) ⇒ Slots

Returns a new instance of Slots.



14
15
16
17
# File 'lib/stimulus_plumbers/plumber/slots.rb', line 14

def initialize(template = nil)
  @slots = {}
  @template = template
end

Class Method Details

.slot(*names, by: nil) ⇒ Object



6
7
8
9
10
11
12
# File 'lib/stimulus_plumbers/plumber/slots.rb', line 6

def self.slot(*names, by: nil)
  names.each do |name|
    by ? define_by_slot(name, by) : define_flat_slot(name)
    define_reader(name)
    define_predicate(name)
  end
end

Instance Method Details

#any?Boolean

Returns:

  • (Boolean)


32
33
34
# File 'lib/stimulus_plumbers/plumber/slots.rb', line 32

def any?
  @slots.any?
end

#none?Boolean

Returns:

  • (Boolean)


36
37
38
# File 'lib/stimulus_plumbers/plumber/slots.rb', line 36

def none?
  @slots.empty?
end

#options_for(name) ⇒ Object



28
29
30
# File 'lib/stimulus_plumbers/plumber/slots.rb', line 28

def options_for(name)
  (@slots[name] || {})[:options] || {}
end

#resolve(name) ⇒ Object



19
20
21
22
23
24
25
26
# File 'lib/stimulus_plumbers/plumber/slots.rb', line 19

def resolve(name)
  entry = @slots[name]
  return unless entry

  value = entry[:value]
  value = capture_block(value) if value.is_a?(Proc)
  block_given? ? yield(value) : value
end