Sha256: 97742bb1e43698bce3813280277c7f5e680b9b4f530baf1b7b0af70e0c398384

Contents?: true

Size: 593 Bytes

Versions: 11

Compression:

Stored size: 593 Bytes

Contents

require "uber/builder"

# Allows to add builders via ::builds.
module Trailblazer::Operation::Builder
  def self.extended(extender)
    extender.send(:include, Uber::Builder)
  end

  def builder_class
    @builders
  end

  def builder_class=(constant)
    @builders = constant
  end

private
  # Runs the builders for this operation class to figure out the actual class.
  def build_operation_class(*args)
    class_builder(self).(*args) # Uber::Builder::class_builder(context)
  end

  def build_operation(params, options={})
    build_operation_class(params).new(params, options)
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
trailblazer-1.1.2 lib/trailblazer/operation/builder.rb
trailblazer-1.1.1 lib/trailblazer/operation/builder.rb
trailblazer-1.1.0 lib/trailblazer/operation/builder.rb
trailblazer-1.1.0.rc1 lib/trailblazer/operation/builder.rb
trailblazer-1.0.4 lib/trailblazer/operation/builder.rb
trailblazer-1.0.3 lib/trailblazer/operation/builder.rb
trailblazer-1.0.2 lib/trailblazer/operation/builder.rb
trailblazer-1.0.1 lib/trailblazer/operation/builder.rb
trailblazer-1.0.0 lib/trailblazer/operation/builder.rb
trailblazer-1.0.0.rc2 lib/trailblazer/operation/builder.rb
trailblazer-1.0.0.rc1 lib/trailblazer/operation/builder.rb