class RademadeAdmin::Model::Info::Fields
Attributes
data_adapter[R]
model_configuration[R]
Public Class Methods
new(data_adapter, model_configuration, relations, uploaders)
click to toggle source
Initialize
@param data_adapter
[RademadeAdmin::Model::Adapter::Data] @param model_configuration
[RademadeAdmin::Model::Configuration] @param relations [RademadeAdmin::Model::Info::Relations] @param uploaders [RademadeAdmin::Model::Info::Uploaders]
# File lib/rademade_admin/model/info/fields.rb, line 18 def initialize(data_adapter, model_configuration, relations, uploaders) @data_adapter = data_adapter @model_configuration = model_configuration @relations = relations @uploaders = uploaders end
Public Instance Methods
data_items()
click to toggle source
# File lib/rademade_admin/model/info/fields.rb, line 25 def data_items @data_items ||= build_items end
Protected Instance Methods
build_items()
click to toggle source
# File lib/rademade_admin/model/info/fields.rb, line 35 def build_items data_items = RademadeAdmin::Model::Info::DataItems.new used_relations = [] # TODO extract sub - methods @data_adapter.fields.each do |_, field| relation = field.relation_name.nil? ? nil : @data_adapter.relation(field.relation_name) used_relations << field.relation_name if relation data_item = item_initializer.new(field, relation).auto data_items.add_data_item( data_item ) end @data_adapter.relations.each do |_, relation| unless used_relations.include? relation.name data_items.add_data_item( item_initializer.new(nil, relation).from_relation ) end end @model_configuration.all_field_names.each do |field_name| unless data_items.has_field?(field_name) data_items.add_data_item( item_initializer.new(nil, nil).build(field_name, nil) ) end end configure_items(data_items) data_items end
configure_item(data_item)
click to toggle source
@param [RademadeAdmin::Model::Info::DataItem]
# File lib/rademade_admin/model/info/fields.rb, line 70 def configure_item(data_item) # TODO extract sub methods name = data_item.name data_item.has_uploader = @uploaders.has_uploader?(name) data_item.order_column = nil unless @data_adapter.columns.include?(data_item.order_column) @model_configuration.field_labels.find(name) do |label_data| data_item.label = label_data.label end @model_configuration.form_fields.find_with_index(name) do |form_field_data, index| data_item.form_params = form_field_data.params data_item.in_form = true data_item.form_position = index end @model_configuration.list_fields.find_with_index(name) do |data, index| data_item.in_list = true data_item.list_preview_accessor = data.preview_accessor data_item.list_preview_handler = data.preview_handler data_item.list_position = index end @model_configuration.csv_fields.find_with_index(name) do |data, index| data_item.in_csv = true data_item.csv_preview_accessor = data.preview_accessor data_item.csv_preview_handler = data.preview_handler data_item.csv_position = index end data_item end
configure_items(data_items)
click to toggle source
# File lib/rademade_admin/model/info/fields.rb, line 64 def configure_items(data_items) data_items.each { |item| configure_item(item) } end
item_initializer()
click to toggle source
# File lib/rademade_admin/model/info/fields.rb, line 31 def item_initializer RademadeAdmin::Model::Info::DataItem::Initializer end