Module: Dynamoid::Persistence::ClassMethods
- Defined in:
- lib/dynamoid/persistence.rb
Instance Method Summary (collapse)
-
- (Object) create_table(options = {})
Creates a table.
-
- (Boolean) table_exists?(table_name)
Does a table with this name exist?.
-
- (Object) table_name
Returns the name of the table the class is for.
-
- (Object) undump(incoming = nil)
Undump an object into a hash, converting each type from a string representation of itself into the type specified by the field.
-
- (Object) undump_field(value, type)
Undump a value for a given type.
Instance Method Details
- (Object) create_table(options = {})
Creates a table.
33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/dynamoid/persistence.rb', line 33 def create_table( = {}) = { :id => self.hash_key, :table_name => self.table_name, :write_capacity => self.write_capacity, :read_capacity => self.read_capacity, :range_key => self.range_key ? {range_key => attributes[range_key][:type]} : nil }.merge() return true if table_exists?([:table_name]) Dynamoid::Adapter.tables << [:table_name] if Dynamoid::Adapter.create_table([:table_name], [:id], ) end |
- (Boolean) table_exists?(table_name)
Does a table with this name exist?
50 51 52 |
# File 'lib/dynamoid/persistence.rb', line 50 def table_exists?(table_name) Dynamoid::Adapter.tables.include?(table_name) end |
- (Object) table_name
Returns the name of the table the class is for.
19 20 21 |
# File 'lib/dynamoid/persistence.rb', line 19 def table_name "#{Dynamoid::Config.namespace}_#{[:name] ? [:name] : self.name.downcase.pluralize}" end |
- (Object) undump(incoming = nil)
Undump an object into a hash, converting each type from a string representation of itself into the type specified by the field.
57 58 59 60 61 62 63 64 65 |
# File 'lib/dynamoid/persistence.rb', line 57 def undump(incoming = nil) incoming = (incoming || {}).symbolize_keys Hash.new.tap do |hash| self.attributes.each do |attribute, | hash[attribute] = undump_field(incoming[attribute], [:type]) end incoming.each {|attribute, value| hash[attribute] ||= value } end end |
- (Object) undump_field(value, type)
Undump a value for a given type. Given a string, it'll determine (based on the type provided) whether to turn it into a string, integer, float, set, array, datetime, or serialized return value.
71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
# File 'lib/dynamoid/persistence.rb', line 71 def undump_field(value, type) return if value.nil? || (value.respond_to?(:empty?) && value.empty?) case type when :string value.to_s when :integer value.to_i when :float value.to_f when :set, :array if value.is_a?(Set) || value.is_a?(Array) value else Set[value] end when :datetime if value.is_a?(Date) || value.is_a?(DateTime) || value.is_a?(Time) value else Time.at(value).to_datetime end when :serialized if value.is_a?(String) YAML.load(value) else value end end end |