Class: Verifly::ClassBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/verifly/class_builder.rb

Overview

ClassBuilder is similar to Uber::Builder, but it allows child classes to decide whether they will be used. I find it much more object-oriented

Defined Under Namespace

Modules: Mixin

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(klasses) ⇒ ClassBuilder

Returns a new instance of ClassBuilder.

Parameters:

  • klasses ([Class])


44
45
46
# File 'lib/verifly/class_builder.rb', line 44

def initialize(klasses)
  self.klasses = klasses
end

Instance Attribute Details

#klasses[Class]

classes to iterate during search of most suitable

Returns:

  • ([Class])

    the current value of klasses



9
10
11
# File 'lib/verifly/class_builder.rb', line 9

def klasses
  @klasses
end

Instance Method Details

#call(*arguments, &block) ⇒ Class

Returns first nonzero class returned by .build_class.

Returns:

  • (Class)

    first nonzero class returned by .build_class



49
50
51
52
53
54
# File 'lib/verifly/class_builder.rb', line 49

def call(*arguments, &block)
  klasses.each do |klass|
    result = klass.build_class(*arguments, &block)
    return result if result
  end
end