module AdminIt::ActiveRecordData::Resource

Constants

TYPE_MAPPING

Protected Instance Methods

default_display_name() click to toggle source
# File lib/admin_it/data/active_record/resource.rb, line 22
def default_display_name
  entity_class
    .model_name
    .human# (count: 0)
    .split(' ')
    .map { |s| s.mb_chars.capitalize }
    .join(' ')
end
default_fields(&block) click to toggle source
# File lib/admin_it/data/active_record/resource.rb, line 31
def default_fields(&block)
  enum = Enumerator.new do |yielder|
    exclude = []
    entity_class.reflections.each do |name, a|
      f = AdminIt::Field.create(name, entity_class, type: :relation)
      f.assoc = a
      yielder << f
      exclude << "#{name}_id" if a.belongs_to?
    end
    entity_class.columns_hash.each do |name, c|
      next if exclude.include?(name)
      name = name.to_sym
      opts = { type: TYPE_MAPPING[c.type] }
      if name == :id
        opts[:visible] = false
        opts[:writable] = false
      end
      yielder << AdminIt::Field.create(name, entity_class, opts)
    end
  end
  block_given? ? enum.each(&block) : enum
end
default_filters() click to toggle source
# File lib/admin_it/data/active_record/resource.rb, line 54
def default_filters
  enum = Enumerator.new do |yielder|
    fields.each do |field|
      next if field.type == :relation
      name = "#{field.field_name}_value"
      yielder << AdminIt::ValueFilter.create(name, self, field)
    end
  end
  block_given? ? enum.each(&block) : enum
end