Sha256: 1e8c7f8d59b3305993e50b8f540bbea45991bc23d3d3bc9c6a80e13009f42b47

Contents?: true

Size: 477 Bytes

Versions: 9

Compression:

Stored size: 477 Bytes

Contents

module Trailblazer::Macro
  module Policy
    def self.Guard(proc, name: :default, &block)
      Policy.step(Guard.build(proc), name: name)
    end

    module Guard
      def self.build(callable)
        option = Trailblazer::Option::KW(callable)

        # this gets wrapped in a Operation::Result object.
        ->((options, *), circuit_args) do
          Trailblazer::Operation::Result.new(!!option.call(options, circuit_args), {})
        end
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
trailblazer-macro-2.1.4 lib/trailblazer/macro/guard.rb
trailblazer-macro-2.1.3 lib/trailblazer/macro/guard.rb
trailblazer-macro-2.1.2 lib/trailblazer/macro/guard.rb
trailblazer-macro-2.1.1 lib/trailblazer/macro/guard.rb
trailblazer-macro-2.1.0 lib/trailblazer/macro/guard.rb
trailblazer-macro-2.1.0.rc14 lib/trailblazer/macro/guard.rb
trailblazer-macro-2.1.0.rc13 lib/trailblazer/macro/guard.rb
trailblazer-macro-2.1.0.rc12 lib/trailblazer/macro/guard.rb
trailblazer-macro-2.1.0.rc11 lib/trailblazer/macro/guard.rb