Sha256: 708730d9880f74dc6099580f77d127fca0beccb63c7ad37a1385cce9070a62fd

Contents?: true

Size: 692 Bytes

Versions: 4

Compression:

Stored size: 692 Bytes

Contents

require "uber/builder"

# http://trailblazer.to/gems/operation/2.0/builder.html
class Trailblazer::Operation
  module Builder
    def self.import!(operation, import, user_builder)
      import.(:>>, user_builder,
        name:   "builder.call",
        before: "operation.new")

      false # suppress inheritance. dislike. FIXME at some point.
    end

    # Include this when you want the ::builds DSL.
    def self.included(includer)
      includer.extend DSL # ::builds, ::builders
      includer.| includer.Builder( includer.builders ) # pass class Builders object to our ::import!.
    end

    DSL = Uber::Builder::DSL
  end

  DSL.macro!(:Builder, Builder) # Operation::Builder()
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
trailblazer-2.0.0 lib/trailblazer/operation/builder.rb
trailblazer-2.0.0.rc1 lib/trailblazer/operation/builder.rb
trailblazer-2.0.0.beta3 lib/trailblazer/operation/builder.rb
trailblazer-2.0.0.beta2 lib/trailblazer/operation/builder.rb