Sha256: 715e0e0d0847fefe26aac6e87b1a41fb7c94cd81ebf1cfe9633d287bc3ffa3d9
Contents?: true
Size: 1.13 KB
Versions: 3
Compression:
Stored size: 1.13 KB
Contents
module Arrest class Attribute attr_accessor :name, :actions, :clazz, :json_name def initialize name, clazz, actions = nil @name = name.to_sym @actions = actions || [:create, :retrieve, :update, :delete] @clazz = clazz @json_name = Source.json_key_converter.key_to_json(name).to_sym end def read_only? @actions == [:retrieve] end def mutable? @actions.include?(:create) || @actions.include?(:update) end def from_hash(parent, value) return if value == nil if @clazz.respond_to?(:convert) return @clazz.convert(value) end converter = CONVERTER[@clazz] if converter == nil puts "No converter for: #{@clazz.name}" converter = IdentConv end converter.convert value end def to_hash value return nil unless value != nil if @clazz.respond_to?(:mk_json) return @clazz.mk_json(value) end converter = CONVERTER[@clazz] if converter == nil puts "No converter for: #{@clazz.name}" converter = IdentConv end converter.mk_json value end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
arrest-0.0.85 | lib/arrest/attributes/attribute.rb |
arrest-0.0.84 | lib/arrest/attributes/attribute.rb |
arrest-0.0.83.crud | lib/arrest/attributes/attribute.rb |