Sha256: 4c1ceaf856632d8d31ac6b84f86369f9288b7e562df1f4a830b0c527f3e1e7c4

Contents?: true

Size: 1.35 KB

Versions: 4

Compression:

Stored size: 1.35 KB

Contents

class Dynomite::Migration::Dsl
  module ProvisionedThroughput
    def billing_mode(v)
      @billing_mode = v
      @provisioned_throughput = nil if @billing_mode.to_s.upcase == "PAY_PER_REQUEST"
    end

    # t.provisioned_throughput(1) # both
    # t.provisioned_throughput(1,1) # read, write
    # t.provisioned_throughput({
    #   read_capacity_units: 1,
    #   write_capacity_units: 1
    # }
    def provisioned_throughput(*args)
      if args.size == 0 # reader method
        @provisioned_throughput # early return
      elsif args.first.is_a?(Hash)
        # @provisioned_throughput_set_called useful for update_table
        # only provide a provisioned_throughput settings if explicitly called for update_table
        @provisioned_throughput_set_called = true
        # Case:
        # provisioned_throughput(
        #   read_capacity_units: 1,
        #   write_capacity_units: 1
        # )
        @provisioned_throughput = arg.first # set directly
      else  # assume parameter is an Integer or [Integer, Integer]
        # Case: provisioned_throughput(1)
        # Case: provisioned_throughput(1, 1)
        read_capacity_units, write_capacity_units = args
        @provisioned_throughput = {
          read_capacity_units: read_capacity_units,
          write_capacity_units: write_capacity_units || read_capacity_units,
        }
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
dynomite-2.0.3 lib/dynomite/migration/dsl/provisioned_throughput.rb
dynomite-2.0.2 lib/dynomite/migration/dsl/provisioned_throughput.rb
dynomite-2.0.1 lib/dynomite/migration/dsl/provisioned_throughput.rb
dynomite-2.0.0 lib/dynomite/migration/dsl/provisioned_throughput.rb