class ActiveAdminAddons::CustomBuilder

Attributes

args[RW]
block[RW]
context[RW]
model[RW]

Public Class Methods

builder_method_name() click to toggle source
# File lib/activeadmin_addons/support/custom_builder.rb, line 33
def self.builder_method_name
  name.underscore.to_s.split("/").last.chomp("_builder")
end
create_view_methods() click to toggle source
# File lib/activeadmin_addons/support/custom_builder.rb, line 16
def self.create_view_methods
  builder_class = self
  builder_name = builder_method_name

  ::ActiveAdmin::Views::TableFor.class_eval do
    define_method("#{builder_name}_column") do |*args, &block|
      column(*args) { |model| builder_class.new(self, model, *args, &block).render }
    end
  end

  ::ActiveAdmin::Views::AttributesTable.class_eval do
    define_method("#{builder_name}_row") do |*args, &block|
      row(*args) { |model| builder_class.new(self, model, *args, &block).render }
    end
  end
end
new(context, model, *args, &block) click to toggle source
# File lib/activeadmin_addons/support/custom_builder.rb, line 5
def initialize(context, model, *args, &block)
  @context = context
  @model = model
  @args = *args
  @block = block
end

Public Instance Methods

render() click to toggle source
# File lib/activeadmin_addons/support/custom_builder.rb, line 12
def render
  raise NotImplementedError
end

Protected Instance Methods

admin_controller() click to toggle source
# File lib/activeadmin_addons/support/custom_builder.rb, line 51
def admin_controller
  context&.controller
end
admin_controller_actions() click to toggle source
# File lib/activeadmin_addons/support/custom_builder.rb, line 47
def admin_controller_actions
  (admin_controller&.action_methods&.to_a || []).map(&:to_sym)
end
admin_resource() click to toggle source
# File lib/activeadmin_addons/support/custom_builder.rb, line 55
def admin_resource
  context.active_admin_resource_for(model.class)
end
attribute() click to toggle source

attachment_column :foto attachment_column :foto, style: :hola attachment_column “Mi Foto”, :foto attachment_column “Mi Foto”, :foto, {} attachment_column :foto do end

# File lib/activeadmin_addons/support/custom_builder.rb, line 77
def attribute
  @attribute ||= has_label? ? args[1] : args[0]
end
class_name() click to toggle source
# File lib/activeadmin_addons/support/custom_builder.rb, line 67
def class_name
  model.model_name.param_key
end
data() click to toggle source
# File lib/activeadmin_addons/support/custom_builder.rb, line 59
def data
  @data ||= block ? block.call(model) : model.send(attribute)
end
enabled_controller_action?(action) click to toggle source
# File lib/activeadmin_addons/support/custom_builder.rb, line 43
def enabled_controller_action?(action)
  admin_controller_actions.include?(action)
end
has_label?() click to toggle source
# File lib/activeadmin_addons/support/custom_builder.rb, line 81
def has_label?
  has_opts? ? args.length == 3 : args.length == 2
end
has_opts?() click to toggle source
# File lib/activeadmin_addons/support/custom_builder.rb, line 85
def has_opts?
  @has_opts ||= args.last.is_a?(Hash)
end
options() click to toggle source
# File lib/activeadmin_addons/support/custom_builder.rb, line 63
def options
  @options ||= has_opts? ? args.last : {}
end
resource_url() click to toggle source
# File lib/activeadmin_addons/support/custom_builder.rb, line 39
def resource_url
  admin_resource&.route_instance_path(model, {})
end