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