module Dynamoid::Fields::ClassMethods

Public Instance Methods

field(name, type = :string, options = {}) click to toggle source

Specify a field for a document. Its type determines how it is coerced when read in and out of the datastore: default is string, but you can also specify :integer, :float, :set, :array, :datetime, and :serialized.

@param [Symbol] name the name of the field @param [Symbol] type the type of the field (one of :integer, :float, :set, :array, :datetime, or :serialized) @param [Hash] options any additional options for the field

@since 0.2.0

# File lib/dynamoid/fields.rb, line 29
def field(name, type = :string, options = {})
  named = name.to_s
  self.attributes[name] = {:type => type}.merge(options)

  define_method(named) { read_attribute(named) }
  define_method("#{named}?") { !read_attribute(named).nil? }
  define_method("#{named}=") {|value| write_attribute(named, value) }
end
range(name, type = :string) click to toggle source
# File lib/dynamoid/fields.rb, line 38
def range(name, type = :string)
  field(name, type)
  self.range_key = name
end