Sha256: 9395aeda2b31d94bd2276403497e9d85ff4bbd0134fd31a40abb4fb4f3a87980

Contents?: true

Size: 1.26 KB

Versions: 4

Compression:

Stored size: 1.26 KB

Contents

##
# MongoMapper adapter to Sencha::Model mixin
#
    
module Sencha
  module Model
    ##
    # ClassMethods
    #
    module ClassMethods

      def sencha_primary_key
        :id
      end

      def sencha_column_names
        self.column_names
      end

      def sencha_columns_hash
        self.keys
      end

      def sencha_associations
        @sencha_associations ||= self.associations.inject({}) do |memo, (key, assn)|
          memo[key.to_sym] = {
            :name => key.to_sym,
            :type => assn.type,
            :class => assn.class_name.constantize,
            :foreign_key => assn.foreign_key,
            :is_polymorphic => false
          }
          memo
        end
      end

      def sencha_type(col)
        type = col.type.to_s
        case type
          when "DateTime", "Date", "Time"
            type = :date
          when "String"
            type = :string
          when "Float"
            type = :float
          when "Integer", "BigDecimal"
            type = :int
          else
            type = "auto"
        end
      end

      def sencha_allow_blank(col)
        (col.name == '_id') || (col.options[:required] != true)
      end
      
      def sencha_default(col)
        col.default_value
      end
      
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
sencha-model-0.6.2 lib/sencha-model/adapters/mongo_mapper.rb
sencha-model-0.6.1 lib/sencha-model/adapters/mongo_mapper.rb
sencha-model-0.6.0 lib/sencha-model/adapters/mongo_mapper.rb
sencha-model-0.5.0 lib/sencha-model/adapters/mongo_mapper.rb