Module: Pipeable
- Defined in:
- lib/pipeable.rb,
lib/pipeable/pipe.rb,
lib/pipeable/builder.rb,
lib/pipeable/steps/as.rb,
lib/pipeable/steps/or.rb,
lib/pipeable/steps/to.rb,
lib/pipeable/steps/map.rb,
lib/pipeable/steps/tee.rb,
lib/pipeable/steps/try.rb,
lib/pipeable/steps/use.rb,
lib/pipeable/composable.rb,
lib/pipeable/steps/amap.rb,
lib/pipeable/steps/bind.rb,
lib/pipeable/steps/fmap.rb,
lib/pipeable/steps/check.rb,
lib/pipeable/steps/merge.rb,
lib/pipeable/steps/insert.rb,
lib/pipeable/steps/abstract.rb,
lib/pipeable/steps/validate.rb,
lib/pipeable/steps/container.rb
Overview
Main namespace.
Defined Under Namespace
Modules: Composable, Steps Classes: Builder
Constant Summary collapse
- Pipe =
Provids low-level functionality processing a sequence of steps.
lambda do |input, *steps| fail ArgumentError, "Pipe must have at least one step." if steps.empty? result = input.is_a?(Dry::Monads::Result) ? input : Dry::Monads::Success(input) steps.reduce(&:>>).call result rescue NoMethodError raise TypeError, "Step must be functionally composable and answer a monad." end
Class Method Summary collapse
- .[](container) ⇒ Object
- .included(descendant) ⇒ Object
- .loader(registry = Zeitwerk::Registry) ⇒ Object
Class Method Details
.[](container) ⇒ Object
13 |
# File 'lib/pipeable.rb', line 13 def self.[](container) = Builder.new(container) |
.included(descendant) ⇒ Object
15 |
# File 'lib/pipeable.rb', line 15 def self.included(descendant) = descendant.include Builder.new |
.loader(registry = Zeitwerk::Registry) ⇒ Object
17 18 19 |
# File 'lib/pipeable.rb', line 17 def self.loader registry = Zeitwerk::Registry @loader ||= registry.loaders.each.find { |loader| loader.tag == File.basename(__FILE__, ".rb") } end |