class AwsRecord::Generators::SecondaryIndex
def initialize(name, opts)
def initialize(name, opts) raise ArgumentError, 'You must provide a name' unless name raise ArgumentError, 'You must provide a hash key' unless opts[:hash_key] if opts.key? :projection_type unless PROJ_TYPES.include? opts[:projection_type] raise ArgumentError, "Invalid projection type #{opts[:projection_type]}" end if opts[:projection_type] != 'ALL' raise NotImplementedError, 'ALL is the only projection type currently supported' end else opts[:projection_type] = 'ALL' end if opts[:hash_key] == opts[:range_key] raise ArgumentError, "#{opts[:hash_key]} cannot be both the rkey and hkey for gsi #{name}" end @name = name @hash_key = opts[:hash_key] @range_key = opts[:range_key] @projection_type = "\"#{opts[:projection_type]}\"" end