Sha256: 107fe98f24074747eefdd657062af3c383342784cccffdc22e4d9b5e05c7e77b

Contents?: true

Size: 1.05 KB

Versions: 12

Compression:

Stored size: 1.05 KB

Contents

module ActiveAdmin

  # Shareable module to give a #display_on?(action) method
  # which returns true or false depending on an options hash.
  #
  # The options hash accepts:
  #
  # :only => :index
  # :only => [:index, :show]
  # :except => :index
  # :except => [:index, :show]
  #
  # call #normalize_display_options! after @options has been set
  # to ensure that the display options are setup correctly

  module OptionalDisplay
    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.send condition
      when Proc
        render_context.instance_exec &condition
      else
        true
      end
    end

    private

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

Version data entries

12 entries across 12 versions & 3 rubygems

Version Path
activeadmin-0.6.6 lib/active_admin/helpers/optional_display.rb
activeadmin-0.6.5 lib/active_admin/helpers/optional_display.rb
activeadmin-0.6.4 lib/active_admin/helpers/optional_display.rb
yousty-activeadmin-1.0.4.pre lib/active_admin/helpers/optional_display.rb
yousty-activeadmin-1.0.3.pre lib/active_admin/helpers/optional_display.rb
yousty-activeadmin-1.0.2.pre lib/active_admin/helpers/optional_display.rb
activeadmin-0.6.3 lib/active_admin/helpers/optional_display.rb
yousty-activeadmin-1.0.1.pre lib/active_admin/helpers/optional_display.rb
yousty-activeadmin-1.0.0.pre lib/active_admin/helpers/optional_display.rb
activeadmin-0.6.2 lib/active_admin/helpers/optional_display.rb
activeadmin-0.6.1 lib/active_admin/helpers/optional_display.rb
aa-rails4-0.6.0 lib/active_admin/helpers/optional_display.rb