Sha256: 7c553a700e8e3f83666672408089aaece0b26a76046c3e3d6dd0e66b205bbc23

Contents?: true

Size: 1.13 KB

Versions: 13

Compression:

Stored size: 1.13 KB

Contents

require 'singleton'

module CanTango
  class Configuration
    class Engines
      class Permission < Engine
        include Singleton

        def store &block
          @store ||= ns::Store.new
          @store.default_class = CanTango::PermissionEngine::YamlStore
          yield @store if block
          @store
        end

        def types
          [:roles, :role_groups, :licenses, :users, :user_types, :account_types]
        end

        attr_reader :config_path

        def config_path path = nil
          return current_config_path if !path
          raise "Must be a valid path to permission yaml file, was: #{path}" if !dir?(path)
          @config_path = path
        end

        alias_method :config_path=, :config_path

        private

        def current_config_path
          @config_path ||= File.join(::Rails.root.to_s, 'config') if rails?
          @config_path or raise "Define path to config files dir!\n"
        end

        def rails?
          defined?(::Rails) && ::Rails.respond_to?(:root)
        end

        def dir? dir
          return false if !dir
          File.directory?(dir)
        end
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
cantango-0.8.9.5 lib/cantango/configuration/engines/permission.rb
cantango-0.8.9.4 lib/cantango/configuration/engines/permission.rb
cantango-0.8.9.3 lib/cantango/configuration/engines/permission.rb
cantango-0.8.9.2 lib/cantango/configuration/engines/permission.rb
cantango-0.8.9.1 lib/cantango/configuration/engines/permission.rb
cantango-0.8.9 lib/cantango/configuration/engines/permission.rb
cantango-0.8.8.1 lib/cantango/configuration/engines/permission.rb
cantango-0.8.8 lib/cantango/configuration/engines/permission.rb
cantango-0.8.7 lib/cantango/configuration/engines/permission.rb
cantango-0.8.6.2 lib/cantango/configuration/engines/permission.rb
cantango-0.8.6.1 lib/cantango/configuration/engines/permission.rb
cantango-0.8.6 lib/cantango/configuration/engines/permission.rb
cantango-0.8.5.1 lib/cantango/configuration/engines/permission.rb