# File lib/rademade_admin/model/info/data_items.rb, line 36 def primary_field @primary_field ||= find_primary_field end
class RademadeAdmin::Model::Info::DataItems
Constants
- UNINFORMATIVE_FIELDS
rm_todo extract mixins
Public Class Methods
new()
click to toggle source
# File lib/rademade_admin/model/info/data_items.rb, line 11 def initialize @data_items = {} end
Public Instance Methods
add_data_item(data_item)
click to toggle source
@param data_item
[RademadeAdmin::Model::Info::DataItem]
# File lib/rademade_admin/model/info/data_items.rb, line 24 def add_data_item(data_item) items[data_item.name] = data_item end
csv_fields()
click to toggle source
# File lib/rademade_admin/model/info/data_items.rb, line 60 def csv_fields @csv_fields ||= collect_csv_fields end
data_item(name)
click to toggle source
# File lib/rademade_admin/model/info/data_items.rb, line 28 def data_item(name) items[name.to_sym] end
each(&block)
click to toggle source
# File lib/rademade_admin/model/info/data_items.rb, line 19 def each(&block) items.values.each(&block) end
filter_fields()
click to toggle source
# File lib/rademade_admin/model/info/data_items.rb, line 64 def filter_fields @autocomplete_fields ||= collect_field_names { |data_item| data_item.string_field? } end
form_fields()
click to toggle source
# File lib/rademade_admin/model/info/data_items.rb, line 68 def form_fields @form_fields ||= collect_form_fields end
form_fields_with_locale()
click to toggle source
# File lib/rademade_admin/model/info/data_items.rb, line 76 def form_fields_with_locale @form_fields_with_locale ||= collect_localized_form_fields(true) end
form_fields_without_locale()
click to toggle source
# File lib/rademade_admin/model/info/data_items.rb, line 72 def form_fields_without_locale @form_fields_without_locale ||= collect_localized_form_fields(false) end
has_field?(name)
click to toggle source
# File lib/rademade_admin/model/info/data_items.rb, line 32 def has_field?(name) items.select{ |_, data_item| data_item.has_name? name }.length > 0 end
items()
click to toggle source
# File lib/rademade_admin/model/info/data_items.rb, line 15 def items @data_items end
list_fields()
click to toggle source
# File lib/rademade_admin/model/info/data_items.rb, line 56 def list_fields @list_fields ||= collect_list_fields end
localizable_fields()
click to toggle source
# File lib/rademade_admin/model/info/data_items.rb, line 52 def localizable_fields @localizable_fields ||= items.select { |_, data_item| data_item.localizable? } end
origin_fields()
click to toggle source
# File lib/rademade_admin/model/info/data_items.rb, line 40 def origin_fields @origin_fields ||= collect_field_names { |data_item| data_item.simple_field? } end
primary_field()
click to toggle source
save_form_fields()
click to toggle source
Get Array of RademadeAdmin::Model::Info::DataItem
for saving
@return [Array]
# File lib/rademade_admin/model/info/data_items.rb, line 84 def save_form_fields @save_form_fields ||= collect_save_form_fields end
uploader_fields()
click to toggle source
# File lib/rademade_admin/model/info/data_items.rb, line 48 def uploader_fields @uploader_fields ||= items.select { |_, data_item| data_item.has_uploader? } end
Private Instance Methods
_default_fields()
click to toggle source
# File lib/rademade_admin/model/info/data_items.rb, line 124 def _default_fields items.reject { |_, data_item| UNINFORMATIVE_FIELDS.include? data_item.name } # todo remove sortable fields end
collect_csv_fields()
click to toggle source
# File lib/rademade_admin/model/info/data_items.rb, line 102 def collect_csv_fields fields = items.select { |_, data_item| data_item.in_csv? } fields.empty? ? [] : fields.values.sort_by(&:csv_position) end
collect_field_names() { |data_item| ... }
click to toggle source
# File lib/rademade_admin/model/info/data_items.rb, line 128 def collect_field_names field_names = [] items.each do |_, data_item| field_names << data_item.name if yield(data_item) end field_names end
collect_form_fields()
click to toggle source
# File lib/rademade_admin/model/info/data_items.rb, line 107 def collect_form_fields fields = items.select { |_, data_item| data_item.in_form? } fields.empty? ? _default_fields : fields end
collect_list_fields()
click to toggle source
# File lib/rademade_admin/model/info/data_items.rb, line 97 def collect_list_fields fields = items.select { |_, data_item| data_item.in_list? } fields.empty? ? _default_fields.values : fields.values.sort_by(&:list_position) end
collect_localized_form_fields(localizable)
click to toggle source
# File lib/rademade_admin/model/info/data_items.rb, line 112 def collect_localized_form_fields(localizable) form_fields.select { |_, data_item| data_item.localizable?(localizable) }.values.sort_by(&:form_position) end
collect_save_form_fields()
click to toggle source
# File lib/rademade_admin/model/info/data_items.rb, line 118 def collect_save_form_fields fields = form_fields.select { |_, data_item| data_item.simple_field? } fields = items.select { |_, data_item| data_item.simple_field? } if fields.empty? fields.values.map(&:getter) end
find_primary_field()
click to toggle source
# File lib/rademade_admin/model/info/data_items.rb, line 90 def find_primary_field items.each do |_, data_item| return data_item if data_item.primary_field? end nil end