Sha256: cce84be3d7b93185640179d98dcf2a10069d3d3ba3204e2682d10ef044bcedbd

Contents?: true

Size: 923 Bytes

Versions: 2

Compression:

Stored size: 923 Bytes

Contents

# 
# @author Kristian Mandrup
#
# Macros that can be used directly on the role subject class 
# These methods are added to the ruby core 'Module' module
#
# Usage:
#   class User
#     troles_strategy :bit_many
#

module Troles::Common  
  module Macros
    autoload_modules :Configuration
    
    def troles_strategy strategy, options = {}, &block
      configuration = Configuration.new self, strategy, options

      configuration.load_adapter
      puts "strategy module: #{configuration.strategy_module}"
      puts configuration.strategy_module.methods.grep /store/ 
      
      send :include, configuration.strategy_module

      configuration.define_hooks
      configuration.apply_strategy_options!

      if strategy == :bit_one 
        troles_config.valid_roles = [:user, :admin] # default binary roles 
      end
      
      yield troles_config if block_given?
      troles_config
    end     
  end  
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
troles-0.6.1 lib/troles/common/macros.rb
troles-0.6.0 lib/troles/common/macros.rb