Sha256: 95c8c8434e77418ffc42d5fba5fb17e9589a594e633cba65a2993231abd1e0dd
Contents?: true
Size: 1.76 KB
Versions: 1
Compression:
Stored size: 1.76 KB
Contents
require "madmin/resourceable/class_methods" ## # This module is the heart of a Madmin Resource. # When included into a resource class, the # resource is given a DSL for registering # fields, scopes, and more. module Madmin module Resourceable class << self def included(base) base.extend Madmin::Resourceable::ClassMethods end end ## # This method returns a list of fields where # the index option is truthy. def form_fields self.class.fields.values.select { |field| field.form } end ## # This methods exposes the underlying resource's name # in a way humans can enjoy and understand. def friendly_name self.class.model_name.split("::").join(" ") end ## # This method returns a list of fields where # the index option is truthy. def index_fields self.class.fields.values.select { |field| field.index } end ## # This method returns a list of labels for fields # where the index option is truthy. def index_headers index_fields.map { |field| field.label } end ## # This method affords us the ability to retrieve # a list of the scopes from the class variable. def scopes self.class.scopes end ## # This method exposes a way to control if the # resource should visible in the menu. def show_in_menu? true end ## # This method, when used in the resource, sets all fields # to be used when the show partial is rendered. def show_fields self.class.fields.values.select { |field| field.show } end ## # This method affords us the ability to have a # consistently rendered slug for a resource. def slug ActiveModel::Naming.route_key(self.class.model) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
madmin-0.1.0 | lib/madmin/resourceable.rb |