class Trestle::Admin

Attributes

breadcrumb[W]
form[RW]
menu[RW]
options[W]
view_path[W]

Public Class Methods

actions() click to toggle source
# File lib/trestle/admin.rb, line 131
def actions
  [:index]
end
additional_routes() click to toggle source
# File lib/trestle/admin.rb, line 139
def additional_routes
  @additional_routes ||= []
end
admin_name() click to toggle source
# File lib/trestle/admin.rb, line 73
def admin_name
  name.underscore.sub(/_admin$/, '')
end
breadcrumb() click to toggle source
breadcrumbs() click to toggle source
build(&block) click to toggle source
# File lib/trestle/admin.rb, line 161
def build(&block)
  Admin::Builder.build(self, &block)
end
controller_namespace() click to toggle source
# File lib/trestle/admin.rb, line 119
def controller_namespace
  "#{name.underscore}/admin"
end
default_breadcrumb() click to toggle source
# File lib/trestle/admin.rb, line 66
def default_breadcrumb
  deprecated = I18n.t(:"admin.breadcrumbs.#{i18n_key}", default: human_admin_name)
  label = translate("breadcrumbs.index", default: deprecated)

  Breadcrumb.new(label, path)
end
default_human_admin_name() click to toggle source
# File lib/trestle/admin.rb, line 85
def default_human_admin_name
  name.demodulize.underscore.sub(/_admin$/, '').titleize
end
default_view_path() click to toggle source
# File lib/trestle/admin.rb, line 111
def default_view_path
  "admin/#{name.underscore.sub(/_admin$/, '')}"
end
hooks() click to toggle source
# File lib/trestle/admin.rb, line 40
def hooks
  @hooks ||= Hook::Set.new
end
human_admin_name() click to toggle source
# File lib/trestle/admin.rb, line 81
def human_admin_name
  translate("name", default: default_human_admin_name)
end
i18n_key() click to toggle source
# File lib/trestle/admin.rb, line 77
def i18n_key
  admin_name
end
new(context=nil) click to toggle source
# File lib/trestle/admin.rb, line 7
def initialize(context=nil)
  @context = context
end
options() click to toggle source
# File lib/trestle/admin.rb, line 32
def options
  @options ||= {}
end
parameter_name() click to toggle source
# File lib/trestle/admin.rb, line 97
def parameter_name
  unscope_path(admin_name.singularize)
end
path(action=root_action, options={}) click to toggle source
# File lib/trestle/admin.rb, line 123
def path(action=root_action, options={})
  Engine.routes.url_for(options.merge(controller: controller_namespace, action: action, only_path: true))
end
railtie_routes_url_helpers(include_path_helpers=true) click to toggle source
# File lib/trestle/admin.rb, line 157
def railtie_routes_url_helpers(include_path_helpers=true)
  Trestle.railtie_routes_url_helpers(include_path_helpers)
end
root_action() click to toggle source
# File lib/trestle/admin.rb, line 135
def root_action
  :index
end
route_name() click to toggle source
# File lib/trestle/admin.rb, line 101
def route_name
  "#{admin_name.tr('/', '_')}_admin"
end
routes() click to toggle source
# File lib/trestle/admin.rb, line 143
def routes
  admin = self

  Proc.new do
    scope controller: admin.controller_namespace, path: admin.options[:path] || admin.admin_name do
      get "", action: "index", as: admin.route_name

      admin.additional_routes.each do |block|
        instance_exec(&block)
      end
    end
  end
end
t(key, options={})
Alias for: translate
table() click to toggle source

Deprecated: Use `tables` instead

# File lib/trestle/admin.rb, line 45
def table
  tables[:index]
end
table=(table) click to toggle source

Deprecated: Use `tables=` instead

# File lib/trestle/admin.rb, line 50
def table=(table)
  tables[:index] = table
end
tables() click to toggle source
# File lib/trestle/admin.rb, line 36
def tables
  @tables ||= {}
end
to_param(*) click to toggle source
# File lib/trestle/admin.rb, line 127
def to_param(*)
  raise NoMethodError, "#to_param called on non-resourceful admin. You may need to explicitly specify the admin."
end
translate(key, options={}) click to toggle source
# File lib/trestle/admin.rb, line 89
def translate(key, options={})
  defaults = [:"admin.#{i18n_key}.#{key}", :"admin.#{key}"]
  defaults << options[:default] if options[:default]

  I18n.t(defaults.shift, **options.merge(default: defaults))
end
Also aliased as: t
validate!() click to toggle source
# File lib/trestle/admin.rb, line 165
def validate!
  # No validations by default. This can be overridden in subclasses.
end
view_path() click to toggle source
# File lib/trestle/admin.rb, line 107
def view_path
  @view_path || default_view_path
end
view_path_prefixes() click to toggle source
# File lib/trestle/admin.rb, line 115
def view_path_prefixes
  [view_path]
end

Private Class Methods

unscope_path(path) click to toggle source
# File lib/trestle/admin.rb, line 170
def unscope_path(path)
  path = path.to_s
  if i = path.rindex("/")
    path[(i + 1)..-1]
  else
    path
  end
end

Public Instance Methods

method_missing(name, *args, &block) click to toggle source

Delegate all missing methods to corresponding class method if available

Calls superclass method
# File lib/trestle/admin.rb, line 12
def method_missing(name, *args, &block)
  if self.class.respond_to?(name)
    self.class.send(name, *args, &block)
  else
    super
  end
end
respond_to_missing?(name, include_private=false) click to toggle source
Calls superclass method
# File lib/trestle/admin.rb, line 20
def respond_to_missing?(name, include_private=false)
  self.class.respond_to?(name, include_private) || super
end