Sha256: 9d91f30124d6a36b1064e1f14807eaf73050e76c90daaaede8feb9406573bdc9

Contents?: true

Size: 803 Bytes

Versions: 21

Compression:

Stored size: 803 Bytes

Contents

module CanTango
  class PermissionEngine < Engine
    class Statements
      attr_reader :method, :action

      def initialize method, action, targets
        @method = method
        @action = action
        @targets = targets
      end

      def to_code
        parse_statements.join("\n")
      end

      protected

      def parse_statements
        targets.inject([]) do |statements, target|
          statements << parser(target).parse
        end.flatten
      end

      def targets
        @targets ||= []
      end

      #def statement target_and_conditions
      #  CanTango::PermissionEngine::Statement.new method, action, target_and_conditions 
      #end

      def parser target
        CanTango::PermissionEngine::Parser.create_for method, action, target
      end
    end
  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
cantango-0.9.4.7 lib/cantango/permission_engine/statements.rb
cantango-0.9.4.6 lib/cantango/permission_engine/statements.rb
cantango-0.9.4.5 lib/cantango/permission_engine/statements.rb
cantango-0.9.4.3 lib/cantango/permission_engine/statements.rb
cantango-0.9.4.2 lib/cantango/permission_engine/statements.rb
cantango-0.9.4.1 lib/cantango/permission_engine/statements.rb
cantango-0.9.4 lib/cantango/permission_engine/statements.rb
cantango-0.9.3.2 lib/cantango/permission_engine/statements.rb
cantango-0.8.9.5 lib/cantango/permission_engine/statements.rb
cantango-0.8.9.4 lib/cantango/permission_engine/statements.rb
cantango-0.8.9.3 lib/cantango/permission_engine/statements.rb
cantango-0.8.9.2 lib/cantango/permission_engine/statements.rb
cantango-0.8.9.1 lib/cantango/permission_engine/statements.rb
cantango-0.8.9 lib/cantango/permission_engine/statements.rb
cantango-0.8.8.1 lib/cantango/permission_engine/statements.rb
cantango-0.8.8 lib/cantango/permission_engine/statements.rb
cantango-0.8.7 lib/cantango/permission_engine/statements.rb
cantango-0.8.6.2 lib/cantango/permission_engine/statements.rb
cantango-0.8.6.1 lib/cantango/permission_engine/statements.rb
cantango-0.8.6 lib/cantango/permission_engine/statements.rb