Sha256: 63e565b88d22bcff199e19f93b32e6b00c33828c892917446381e96e08f81d93
Contents?: true
Size: 1.89 KB
Versions: 1
Compression:
Stored size: 1.89 KB
Contents
require 'kangaroo/model/attributes' module Kangaroo module Model class Field AssociationTypes = %w(many2one one2many one2one many2many) autoload :Readonly, 'kangaroo/model/field/readonly' include Attributes include Readonly attr_accessor :name define_multiple_accessors :change_default, :context, :digits, :domain, :fnct_inv, :fnct_inv_arg, :fnct_search, :func_method, :func_obj, :function, :help, :invisible, :readonly, :related_columns, :relation, :required, :select, :selectable, :selection, :size, :states, :store, :string, :third_table, :translate, :type, :namespace def selection? type == 'selection' end def char? type == 'char' end def float? type == 'float' end def functional? !!function end def selectable? !!selectable end def association? AssociationTypes.include? type end def initialize name, attributes = {} @attributes = {} @name = name attributes.each do |key, val| write_attribute key, val end self.states = attributes[:states] if attributes[:states] end def setter_name "#{name}=" end def required? !!required end def states= states coerced_states = {} states.each do |name, effects| coerced_states[name.to_s] = Hash[effects] end write_attribute :states, coerced_states end def relation_class @relation_class ||= namespace.class_for relation rescue nil end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
kangaroo-0.1.0.alpha1 | lib/kangaroo/model/field.rb |