Module: Musa::Series::Serie::WithSource

Included in:
Constructors::ProxySerie, Operations::ComposerAsOperationSerie, Operations::Processor
Defined in:
lib/musa-dsl/series/base-series.rb

Overview

Mixin for series with single source dependency.

Provides source and source= accessors for series that depend on one upstream source serie.

Examples:

Usage

class ProcessorSerie
  include Serie::Base
  include Serie::WithSource

  def initialize(source)
    self.source = source
    init
  end
end

Custom accessor name using alias

class MyCustomSerie
  include Serie::Base
  include Serie::WithSource
  alias my_source source
  alias my_source= source=
end

See Also:

Instance Method Summary collapse

Instance Method Details

#sourceSerie?

Returns the upstream source serie.

Returns:

  • (Serie, nil)

    the upstream source serie



1182
1183
1184
# File 'lib/musa-dsl/series/base-series.rb', line 1182

def source
  @source
end

#source=(serie) ⇒ Object

Sets the source serie.

Parameters:

  • serie (Serie)

    source serie (must match current state)

Raises:

  • (ArgumentError)

    if state mismatch between source and this serie



1190
1191
1192
1193
1194
1195
1196
# File 'lib/musa-dsl/series/base-series.rb', line 1190

def source=(serie)
  unless @source.nil? || @source.undefined? || serie.state == @source.state
    raise ArgumentError, "New serie for source should be a #{@state} instead of a #{serie.state}"
  end
  @source = serie
  mark_regarding! @source
end