class Unimatrix::Authorization::Operation

Public Instance Methods

destroy() click to toggle source
# File lib/unimatrix/authorization/operation.rb, line 4
def destroy
  result = nil
  Request.new.tap do | request |
    response = request.destroy( @path, @parameters )
    if response_is_error?( response )
      result = response
    elsif response.present?
      result = response.resources
    end
  end
  result
end
read( ) { || ... } click to toggle source
# File lib/unimatrix/authorization/operation.rb, line 17
def read( &block )
  result = nil
  response = nil
  Request.new.tap do | request |
    request.get( @path, @parameters ).tap do | response |
      if response_is_error?( response )
        result = response
      else
        result = response.resources
        if block_given?
          case block.arity
            when 0; yield
            when 1; yield result
            when 2; yield result, response
          end
        end
      end
    end
  end
  result
end
write( node, objects ) { || ... } click to toggle source
# File lib/unimatrix/authorization/operation.rb, line 39
def write( node, objects, &block )
  result = nil
  Request.new.tap do | request |
    serializer = Unimatrix::Serializer.new( objects )
    response = request.post( @path, @parameters, serializer.serialize( node ) )
    if response_is_error?( response )
      result = response
    else
      result = response.resources
      if block_given?
        case block.arity
          when 0; yield
          when 1; yield result
          when 2; yield result, response
        end
      end
    end
  end
  result
end

Protected Instance Methods

response_is_error?( response ) click to toggle source
# File lib/unimatrix/authorization/operation.rb, line 67
           def response_is_error?( response )
  response.is_a?( Error ) || response.is_a?( Unimatrix::Error )
end
spawn( parameters ) click to toggle source
# File lib/unimatrix/authorization/operation.rb, line 60
           def spawn( parameters )
  Operation.new(
    @path,
    @parameters.deep_merge( parameters || {} )
  )
end