Class: Foobara::Callback::Block
- Inherits:
-
Object
- Object
- Foobara::Callback::Block
show all
- Includes:
- Concerns::Type
- Defined in:
- foobara-0.0.110/projects/callback/src/block.rb,
foobara-0.0.110/projects/callback/src/block/after.rb,
foobara-0.0.110/projects/callback/src/block/error.rb,
foobara-0.0.110/projects/callback/src/block/around.rb,
foobara-0.0.110/projects/callback/src/block/before.rb,
foobara-0.0.110/projects/callback/src/block/concerns/type.rb,
foobara-0.0.110/projects/callback/src/block/concerns/single_argument_block.rb,
foobara-0.0.110/projects/callback/src/block/concerns/block_parameter_required.rb,
foobara-0.0.110/projects/callback/src/block/concerns/keyword_argumentable_block.rb,
foobara-0.0.110/projects/callback/src/block/concerns/block_parameter_not_allowed.rb
Defined Under Namespace
Modules: Concerns
Classes: After, Around, Before, Error
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
foobara_class_methods_module_for, foobara_concern?, included
Constructor Details
#initialize(original_block) ⇒ Block
Returns a new instance of Block.
24
25
26
27
|
# File 'foobara-0.0.110/projects/callback/src/block.rb', line 24
def initialize(original_block)
self.original_block = original_block
validate_original_block!
end
|
Instance Attribute Details
#original_block ⇒ Object
Returns the value of attribute original_block.
22
23
24
|
# File 'foobara-0.0.110/projects/callback/src/block.rb', line 22
def original_block
@original_block
end
|
Class Method Details
.for(type, callback) ⇒ Object
17
18
19
|
# File 'foobara-0.0.110/projects/callback/src/block.rb', line 17
def for(type, callback)
const_get(Util.classify(type)).new(callback)
end
|
.types ⇒ Object
13
14
15
|
# File 'foobara-0.0.110/projects/callback/src/block.rb', line 13
def types
@types ||= types_to_subclasses.keys
end
|
.types_to_subclasses ⇒ Object
9
10
11
|
# File 'foobara-0.0.110/projects/callback/src/block.rb', line 9
def types_to_subclasses
@types_to_subclasses ||= subclasses.to_h { |klass| [klass.type, klass] }
end
|
Instance Method Details
#call ⇒ Object
31
32
33
|
# File 'foobara-0.0.110/projects/callback/src/block.rb', line 31
def call(...)
to_proc.call(...)
end
|
#to_proc ⇒ Object
35
36
37
|
# File 'foobara-0.0.110/projects/callback/src/block.rb', line 35
def to_proc
@to_proc ||= original_block
end
|