Sha256: 1700ce8ca80bdc1cac53d78a44911bb4283c9713c076ca9100968e160e379c44

Contents?: true

Size: 729 Bytes

Versions: 1

Compression:

Stored size: 729 Bytes

Contents

module CanTango::PermissionEngine
  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

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
cantango-0.8.0 lib/cantango/permission_engine/statements.rb