Sha256: 3a507bdc63ebb8f4758133798a876da9def555bf599a174aa49586e4f2170f5f

Contents?: true

Size: 611 Bytes

Versions: 9

Compression:

Stored size: 611 Bytes

Contents

# encoding: utf-8
module Dynamoid #:nodoc:

  module Fields
    extend ActiveSupport::Concern

    included do
      class_attribute :fields
      
      self.fields = []
      field :id
    end
    
    module ClassMethods
      def field(name, options = {})
        named = name.to_s
        self.fields << name
        define_method(named) do
          read_attribute(named)
        end
        define_method("#{named}=") do |value|
          write_attribute(named, value)
        end
        define_method("#{named}?") do
          !read_attribute(named).nil?
        end
      end
    end
    
  end
  
end

Version data entries

9 entries across 9 versions & 2 rubygems

Version Path
dynamoid-0.1.1 lib/dynamoid/fields.rb
dynamoid-0.1.0 lib/dynamoid/fields.rb
dynamoid-0.0.7 lib/dynamoid/fields.rb
dynamoid-0.0.6 lib/dynamoid/fields.rb
dynamoid-0.0.5 lib/dynamoid/fields.rb
dynamoid-0.0.4 lib/dynamoid/fields.rb
dynamoid-0.0.3 lib/dynamoid/fields.rb
dynamoid-0.0.2 lib/dynamoid/fields.rb
Dynamoid-0.0.1 lib/dynamoid/fields.rb