module ActiveAdmin::OptionalDisplay

def display_on?(action, render_context = self)

def display_on?(action, render_context = self)
  return false if @options[:only]   && !@options[:only].include?(action.to_sym)
  return false if @options[:except] && @options[:except].include?(action.to_sym)
  case condition = @options[:if]
  when Symbol, String
    render_context.public_send condition
  when Proc
    render_context.instance_exec &condition
  else
    true
  end
end

def normalize_display_options!

def normalize_display_options!
  @options[:only]   = Array(@options[:only])   if @options[:only]
  @options[:except] = Array(@options[:except]) if @options[:except]
end