class RademadeAdmin::Model::Adapter::Data

Public Class Methods

new(model) click to toggle source

Initialization method

# File lib/rademade_admin/model/adapter/data.rb, line 9
def initialize(model)
  @model = model
end

Public Instance Methods

association_fields() click to toggle source

Returns array of relations keys

@return [Array]

# File lib/rademade_admin/model/adapter/data.rb, line 42
def association_fields
  relations.keys.map &:to_sym
end
columns() click to toggle source
# File lib/rademade_admin/model/adapter/data.rb, line 55
def columns
  @columns ||= _model_fields
end
field(name) click to toggle source

@return [RademadeAdmin::Model::Info::Field]

# File lib/rademade_admin/model/adapter/data.rb, line 62
def field(name)
  fields[name.to_sym]
end
fields() click to toggle source

Returns array of fields with class [RademadeAdmin::Model::Info::Field]

@return [Array]

# File lib/rademade_admin/model/adapter/data.rb, line 51
def fields
  @fields ||= _map_fields
end
has_many() click to toggle source

@return [Array]

# File lib/rademade_admin/model/adapter/data.rb, line 69
def has_many
  @has_many_relations ||= relations.filter { |rel| has_many_relations.include?(rel.type) }
end
has_one() click to toggle source

@return [Array]

# File lib/rademade_admin/model/adapter/data.rb, line 76
def has_one
  @has_one_relations ||= relations.filter { |rel| has_one_relations.include?(rel.type) }
end
has_relation?(name) click to toggle source

@return [Bool]

# File lib/rademade_admin/model/adapter/data.rb, line 25
def has_relation?(name)
  not relation(name).nil?
end
relation(name) click to toggle source

@return [RademadeAdmin::Model::Info::Relation]

# File lib/rademade_admin/model/adapter/data.rb, line 33
def relation(name)
  relations[name.to_sym]
end
relations() click to toggle source

Return array of RademadeAdmin::Model::Info::Relation

@return [Array]

# File lib/rademade_admin/model/adapter/data.rb, line 18
def relations
  @relations ||= _map_relations
end
uploader(name) click to toggle source
# File lib/rademade_admin/model/adapter/data.rb, line 84
def uploader(name)
  uploaders[name.to_sym]
end
uploaders() click to toggle source
# File lib/rademade_admin/model/adapter/data.rb, line 80
def uploaders
  @uploaders ||= _map_uploaders
end

Protected Instance Methods

_map_fields() click to toggle source
# File lib/rademade_admin/model/adapter/data.rb, line 102
def _map_fields
  raise NotImplementedError, 'Not defined _map_fields for class'
end
_map_relations() click to toggle source
# File lib/rademade_admin/model/adapter/data.rb, line 98
def _map_relations
  raise NotImplementedError, 'Not defined _map_relations for class'
end
_map_uploaders() click to toggle source
# File lib/rademade_admin/model/adapter/data.rb, line 106
def _map_uploaders
  uploaders = {}
  return uploaders unless @model.respond_to?(:uploaders)
  _model_uploaders.each do |name, uploader|
    uploaders[name] = RademadeAdmin::Model::Info::Uploader.new(name, uploader)
  end
  uploaders
end
_model_fields() click to toggle source
# File lib/rademade_admin/model/adapter/data.rb, line 119
def _model_fields
  fields.keys
end
_model_uploaders() click to toggle source
# File lib/rademade_admin/model/adapter/data.rb, line 115
def _model_uploaders
  @model.uploaders
end
has_many_relations() click to toggle source
# File lib/rademade_admin/model/adapter/data.rb, line 90
def has_many_relations
  []
end
has_one_relations() click to toggle source
# File lib/rademade_admin/model/adapter/data.rb, line 94
def has_one_relations
  []
end