lib/administrate/field/base.rb in administrate-1.0.0.beta1 vs lib/administrate/field/base.rb in administrate-1.0.0.beta2
- old
+ new
@@ -32,21 +32,39 @@
attr
end
def initialize(attribute, data, page, options = {})
@attribute = attribute
- @data = data
@page = page
@resource = options.delete(:resource)
@options = options
+ @data = read_value(data)
end
def html_class
self.class.html_class
end
+ def html_controller
+ nil
+ end
+
def name
attribute.to_s
+ end
+
+ def read_value(data)
+ if options.key?(:getter)
+ if options[:getter].respond_to?(:call)
+ options[:getter].call(self)
+ else
+ resource.try(options[:getter])
+ end
+ elsif data.nil?
+ resource.try(attribute)
+ else
+ data
+ end
end
def to_partial_path
"/fields/#{self.class.field_type}/#{page}"
end