module AdminIt::ObjectData::Context::ClassMethods
Public Instance Methods
load_fields()
click to toggle source
# File lib/admin_it/data/object.rb, line 11 def load_fields all = entity_class.instance_methods(false) - Object.instance_methods getters = all.select do |m| m.to_s =~ /\w\z/ && entity_class.instance_method(m).arity == 0 end setters = all.select do |m| m.to_s[-1] == '=' && entity_class.instance_method(m).arity == 1 end fields = getters.map do |m| AdminIt::Field.create( m, entity_class, readable: true, writable: setters.include?("#{m}=".to_sym) ) end setters.reject! { |m| getters.include?(m.to_s[0..-2].to_sym) } fields.concat(setters.map do |m| name = m.to_s[0..-2].to_sym AdminIt::Field.create( name, entity_class, readable: false, writable: true ) end) end