Sha256: 1a462747f99a9e18a3ec124479949cdb6b66013025cc3fcc602db4f0a3b9f05c

Contents?: true

Size: 1.17 KB

Versions: 36

Compression:

Stored size: 1.17 KB

Contents

class Ufo::Cfn::Stack::Builder::Resources::TaskDefinition
  class Reconstructor
    include Ufo::AwsServices

    def initialize(task_definition, rollback=false)
      @task_definition, @rollback = task_definition, rollback
    end

    def reconstruct
      camelize(data)
    end

    def data
      if @rollback
        resp = ecs.describe_task_definition(task_definition: @task_definition.name)
        resp.task_definition.to_h
      else
        path = "#{Ufo.root}/.ufo/output/task_definition.json"
        JSON.load(IO.read(path))
      end
    end

    # non-destructive
    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

    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
  end
end

Version data entries

36 entries across 36 versions & 1 rubygems

Version Path
ufo-6.3.13 lib/ufo/cfn/stack/builder/resources/task_definition/reconstructor.rb
ufo-6.3.12 lib/ufo/cfn/stack/builder/resources/task_definition/reconstructor.rb
ufo-6.3.11 lib/ufo/cfn/stack/builder/resources/task_definition/reconstructor.rb
ufo-6.3.10 lib/ufo/cfn/stack/builder/resources/task_definition/reconstructor.rb
ufo-6.3.9 lib/ufo/cfn/stack/builder/resources/task_definition/reconstructor.rb
ufo-6.3.8 lib/ufo/cfn/stack/builder/resources/task_definition/reconstructor.rb
ufo-6.3.7 lib/ufo/cfn/stack/builder/resources/task_definition/reconstructor.rb
ufo-6.3.6 lib/ufo/cfn/stack/builder/resources/task_definition/reconstructor.rb
ufo-6.3.5 lib/ufo/cfn/stack/builder/resources/task_definition/reconstructor.rb
ufo-6.3.4 lib/ufo/cfn/stack/builder/resources/task_definition/reconstructor.rb
ufo-6.3.3 lib/ufo/cfn/stack/builder/resources/task_definition/reconstructor.rb
ufo-6.3.2 lib/ufo/cfn/stack/builder/resources/task_definition/reconstructor.rb
ufo-6.3.1 lib/ufo/cfn/stack/builder/resources/task_definition/reconstructor.rb
ufo-6.3.0 lib/ufo/cfn/stack/builder/resources/task_definition/reconstructor.rb
ufo-6.2.5 lib/ufo/cfn/stack/builder/resources/task_definition/reconstructor.rb
ufo-6.2.4 lib/ufo/cfn/stack/builder/resources/task_definition/reconstructor.rb
ufo-6.2.3 lib/ufo/cfn/stack/builder/resources/task_definition/reconstructor.rb
ufo-6.2.2 lib/ufo/cfn/stack/builder/resources/task_definition/reconstructor.rb
ufo-6.2.1 lib/ufo/cfn/stack/builder/resources/task_definition/reconstructor.rb
ufo-6.2.0 lib/ufo/cfn/stack/builder/resources/task_definition/reconstructor.rb