class Ufo::Stack::Builder::Resources::TaskDefinition::Reconstructor

Public Class Methods

new(task_definition, rollback=false) click to toggle source
# File lib/ufo/stack/builder/resources/task_definition/reconstructor.rb, line 5
def initialize(task_definition, rollback=false)
  @task_definition, @rollback = task_definition, rollback
end

Public Instance Methods

camelize(value, parent_keys=[]) click to toggle source

non-destructive

# File lib/ufo/stack/builder/resources/task_definition/reconstructor.rb, line 24
def camelize(value, parent_keys=[])
  case value
  when Array
    value.map { |v| camelize(v, parent_keys) }
  when Hash
    initializer = value.map do |k, v|
      new_key = camelize_key(k, parent_keys)
      [new_key, camelize(v, parent_keys+[new_key])]
    end
    Hash[initializer]
  else
    value # do not camelize values
  end
end
camelize_key(k, parent_keys=[]) click to toggle source
# File lib/ufo/stack/builder/resources/task_definition/reconstructor.rb, line 39
def camelize_key(k, parent_keys=[])
  k = k.to_s
  special = %w[Options] & parent_keys.map(&:to_s)
  if special.empty?
    k.camelize
  else
    k # pass through untouch
  end
end
data() click to toggle source
# File lib/ufo/stack/builder/resources/task_definition/reconstructor.rb, line 13
def data
  if @rollback
    resp = ecs.describe_task_definition(task_definition: @task_definition)
    resp.task_definition.to_h
  else
    path = "#{Ufo.root}/.ufo/output/#{@task_definition}.json"
    JSON.load(IO.read(path))
  end
end
reconstruct() click to toggle source
# File lib/ufo/stack/builder/resources/task_definition/reconstructor.rb, line 9
def reconstruct
  camelize(data)
end