lib/rademade_admin/model/configuration.rb in rademade_admin-0.0.3 vs lib/rademade_admin/model/configuration.rb in rademade_admin-0.1.0

- old
+ new

@@ -1,52 +1,79 @@ # -*- encoding : utf-8 -*- module RademadeAdmin module Model class Configuration - attr_reader :parent_menu_item, :list_fields, :form_fields + attr_reader :controller, :parent_menu_item, :model_name - def initialize(controller_name) - @controller_name = controller_name + def initialize(controller) + @controller = controller end - def model_name - @model_name ||= @controller_name.classify + def item_name + @item_name ||= singular_name.pluralize end - def item_name - @item_name ||= model_name.underscore.gsub('/', '_').humanize + def singular_name + @singular_name ||= model_name.underscore.gsub('/', '_').humanize end def model_class @model_class ||= RademadeAdmin::LoaderService.const_get(model_name) end - private + # Return configured list info + # + # @return [RademadeAdmin::Model::Configuration::ListFields] + # + def list_fields + @list_fields ||= RademadeAdmin::Model::Configuration::ListFields.new + end + # Return configured fields info + # + # @return [RademadeAdmin::Model::Configuration::FormFields] + # + def form_fields + @form_fields ||= RademadeAdmin::Model::Configuration::FormFields.new + end + + # Return configured fields info + # + # @return [RademadeAdmin::Model::Configuration::FieldsLabels] + # + def field_labels + @field_labels ||= RademadeAdmin::Model::Configuration::FieldsLabels.new + end + + def all_field_names + @all_field_names ||= Set.new(list_fields.all.map(&:name) + form_fields.all.map(&:name)) + end + def model(model_name) @model_name = model_name end - def item(item_name) + private + + def name(item_name) @item_name = item_name end def parent_menu(parent_menu_item) @parent_menu_item = parent_menu_item end - def list(*field_options, &block) - @list_fields = fields(*field_options, &block) + def labels(*field_options, &block) + field_labels.configure(*field_options, &block) end - def form(*field_options, &block) - @form_fields = fields(*field_options, &block) + def list(*field_options, &block) + list_fields.configure(*field_options, &block) end - def fields(*field_options, &block) - model_fields = block_given? ? Fields.init_from_block(&block) : Fields.init_from_options(field_options) - model_fields.fields + def form(*field_options, &block) + form_fields.configure(*field_options, &block) end end end end