class PipeFitter::Pipeline::PipelineDescription

Constants

DESCRIPTION_KEYS

Public Class Methods

create(api_res) click to toggle source
# File lib/pipe_fitter/pipeline.rb, line 217
def self.create(api_res)
  objs = {
    pipeline_id: api_res[:pipeline_id],
    name: api_res[:name],
    description: api_res[:description],
    tags: (api_res[:tags] || []).map { |e| { e[:key].to_sym => e[:value] } },
  }
  (api_res[:fields] || []).inject(objs) do |a, e|
    a.update(e[:key].to_sym => (e[:string_value] || { ref: e[:ref_value] } ))
  end
  new(objs)
end
new(objs, filepath = nil) click to toggle source
# File lib/pipe_fitter/pipeline.rb, line 230
def initialize(objs, filepath = nil)
  @objs = symbolize_keys(objs || {}).sort_by do |k, v|
    [DESCRIPTION_KEYS.index(k) || DESCRIPTION_KEYS.size + 1, k.to_s, v.to_s]
  end.to_h
  @filepath = filepath
end

Public Instance Methods

name() click to toggle source
# File lib/pipe_fitter/pipeline.rb, line 264
def name
  @objs[:name]
end
tag_keys() click to toggle source
# File lib/pipe_fitter/pipeline.rb, line 260
def tag_keys
  @objs[:tags].map(&:keys).flatten
end
tags() click to toggle source
# File lib/pipe_fitter/pipeline.rb, line 252
def tags
  @objs[:tags]
end
tags_opts() click to toggle source
# File lib/pipe_fitter/pipeline.rb, line 256
def tags_opts
  @objs[:tags].map { |e| e.map { |k, v| { key: k, value: v } } }.flatten
end
to_api_opts() click to toggle source
# File lib/pipe_fitter/pipeline.rb, line 243
def to_api_opts
  @objs.select { |k, _| DESCRIPTION_KEYS.include?(k) }.tap do |obj|
    obj[:unique_id] = obj.delete(:uniqueId)
    obj[:tags] = obj[:tags].map do |tag|
      tag.map { |k, v| { key: k, value: v } }
    end.flatten
  end
end
to_objs() click to toggle source
# File lib/pipe_fitter/pipeline.rb, line 239
def to_objs
  stringify_keys(@objs.select { |k, _| DESCRIPTION_KEYS.include?(k) })
end
unique_id() click to toggle source
# File lib/pipe_fitter/pipeline.rb, line 268
def unique_id
  @objs[:uniqueId]
end