Class: AwDatapipe::Pipeline

Inherits:
Object
  • Object
show all
Defined in:
lib/aw_datapipe/pipeline.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(objects, parameter_metadata, parameter_values) ⇒ Pipeline

objects [Array]



11
12
13
14
15
# File 'lib/aw_datapipe/pipeline.rb', line 11

def initialize(objects, , parameter_values)
  objects.each { |object| object.pipeline = self }
  @objects ||= ObjectHash.new(*objects)
  @parameter_metadata, @parameter_values = , parameter_values
end

Instance Attribute Details

#idObject

AWS pipeline id



4
5
6
# File 'lib/aw_datapipe/pipeline.rb', line 4

def id
  @id
end

#objectsObject (readonly)

ObjectHash[:id => PipelineObject]



6
7
8
# File 'lib/aw_datapipe/pipeline.rb', line 6

def objects
  @objects
end

#parameter_metadataObject (readonly)

Hash[‘parameterName’ => Hash



7
8
9
# File 'lib/aw_datapipe/pipeline.rb', line 7

def 
  @parameter_metadata
end

#parameter_valuesObject (readonly)

Hash[‘parameterName’ => “value”]



8
9
10
# File 'lib/aw_datapipe/pipeline.rb', line 8

def parameter_values
  @parameter_values
end

#uuidObject

Unique id



5
6
7
# File 'lib/aw_datapipe/pipeline.rb', line 5

def uuid
  @uuid
end

Class Method Details

.build(config, activities, parameter_metadata, parameter_values) ⇒ Object



17
18
19
20
# File 'lib/aw_datapipe/pipeline.rb', line 17

def self.build(config, activities, , parameter_values)
  objects = [config, *activities].map { |obj| obj.dependencies.append(obj) }.flatten
  new(objects, , parameter_values)
end

Instance Method Details

#configurationObject



22
23
24
# File 'lib/aw_datapipe/pipeline.rb', line 22

def configuration
  objects.fetch(:default)
end

#referenced_object_idsObject



26
27
28
# File 'lib/aw_datapipe/pipeline.rb', line 26

def referenced_object_ids
  referenced_objects.map(&:id) << :default
end

#referenced_objectsArray

Collect dependencies for all objects, removing duplicates.

Returns:

  • (Array)

    referenced objects, with dependees before dependents.



32
33
34
# File 'lib/aw_datapipe/pipeline.rb', line 32

def referenced_objects
  objects.values.map(&:dependencies).flatten.uniq
end

#write_source(pathname) ⇒ Object



36
37
38
# File 'lib/aw_datapipe/pipeline.rb', line 36

def write_source(pathname)
  SourceWriter.call(self, pathname)
end