Sha256: 09f79707906a854603c0eb826a6956e821d0c3120f27b7f52a53f0d675840747

Contents?: true

Size: 1.55 KB

Versions: 1

Compression:

Stored size: 1.55 KB

Contents

module Para
  module Config
    mattr_accessor :authenticate_admin_method
    @@authenticate_admin_method = :authenticate_admin_user!

    mattr_accessor :current_admin_method
    @@current_admin_method = :current_admin_user

    mattr_accessor :pagination_theme
    @@pagination_theme = 'twitter-bootstrap-3'

    mattr_accessor :admin_title
    @@admin_title = nil

    mattr_accessor :default_tree_max_depth
    @@default_tree_max_depth = 3

    mattr_accessor :resource_name_methods
    @@resource_name_methods = [:admin_name, :admin_title, :name, :title]

    mattr_accessor :plugins
    @@plugins = []

    # Hidden from initializer on purpose.
    #
    # This is mainly here to be overriden from a gem, not the app dev
    #
    mattr_accessor :ability_class_name
    @@ability_class_name = 'Para::Ability'

    mattr_accessor :page_actions
    @@page_actions = {}

    # Allows accessing plugins root module to configure them through a method
    # from the Para::Config class.
    #
    # Example :
    #
    #   Para.config do |config|
    #     config.my_plugin.my_var = 'foo'
    #   end
    #
    def self.method_missing(method_name, *args, &block)
      if plugins.include?(method_name)
        plugin = Para::Plugins.module_name_for(method_name).constantize
        block ? block.call(plugin) : plugin
      else
        super
      end
    end

    def self.routes
      Para::Routes
    end

    def self.page_actions_for(type)
      page_actions[type] ||= []
    end

    def self.add_actions_for(type, &block)
      page_actions_for(type) << block
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
para-0.5.3 lib/para/config.rb