class Audrey::Object::Custom::Field
¶ ↑
Audrey::Object::Custom::Field
Attributes
auto[RW]
clss[RW]
graph[RW]
name[RW]
publish[RW]
read[RW]
required[RW]
write[RW]
Public Class Methods
new(p_name)
click to toggle source
# File lib/audrey.rb, line 2057 def initialize(p_name) @name = p_name @read = true @write = true @clss = nil @auto = false @publish = false @graph = false # normalize name @name = @name.strip @name = @name.gsub(/\s+/mu, ' ') end
Public Instance Methods
add_to_class(tgt)
click to toggle source
# File lib/audrey.rb, line 2078 def add_to_class(tgt) # $tm.hrm # Ruby doesn't like it if we use an @ variable in the method definition # of another class. nme = @name.dup # read if @read tgt.define_method(nme) do return @node[nme] end end # write if @write # reference self inside the method for assigning the instance # variable me = self # definew method tgt.define_method("#{nme}=") do |val| val = me.normalize(val) return @node[nme] = val end end end
auto_add(object)
click to toggle source
# File lib/audrey.rb, line 2113 def auto_add(object) # early exit @auto or return # get audrey node node = object.audrey # init new_val = nil # add to node if Audrey::Object::Custom.descendant?(@auto) new_val = @auto.new('accessor'=>node.db) elsif @auto.is_a?(Proc) new_val = @auto.call(object) end # set new value node[@name] = new_val end
base_checks(*opts)
click to toggle source
# File lib/audrey.rb, line 2163 def base_checks(*opts) end
has_checks?()
click to toggle source
# File lib/audrey.rb, line 2152 def has_checks? return false end
normalize(val)
click to toggle source
# File lib/audrey.rb, line 2141 def normalize(val) return val end