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
# File lib/rademade_admin/model/info/data_items.rb, line 36
def primary_field
  @primary_field ||= find_primary_field
end
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