Sha256: 1996416891e37abb4f6d350aa5aae86c7fd8eed1fc433d96f80640d4e3e71ec3

Contents?: true

Size: 1.41 KB

Versions: 21

Compression:

Stored size: 1.41 KB

Contents

module Unimatrix::Authorization
  class Operation < Unimatrix::Operation

    def destroy
      result = nil
      Request.new.tap do | request |
        response = request.destroy( @path, @parameters )
        if response.present?
          result = response.resources
        end
      end
      result
    end

    def read( &block )
      result = nil
      response = nil
      Request.new.tap do | request |
        request.get( @path, @parameters ).tap do | response |
          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

    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.present?
          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; def spawn( parameters )
      Operation.new(
        @path,
        @parameters.deep_merge( parameters || {} )
      )
    end

  end

end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
unimatrix-3.3.1 lib/unimatrix/authorization/operation.rb
unimatrix-3.3.0 lib/unimatrix/authorization/operation.rb
unimatrix-3.2.0 lib/unimatrix/authorization/operation.rb
unimatrix-3.1.0 lib/unimatrix/authorization/operation.rb
unimatrix-3.0.0 lib/unimatrix/authorization/operation.rb
unimatrix-2.9.0 lib/unimatrix/authorization/operation.rb
unimatrix-2.8.0 lib/unimatrix/authorization/operation.rb
unimatrix-2.7.1 lib/unimatrix/authorization/operation.rb
unimatrix-2.7.0 lib/unimatrix/authorization/operation.rb
unimatrix-2.6.1 lib/unimatrix/authorization/operation.rb
unimatrix-2.6.0 lib/unimatrix/authorization/operation.rb
unimatrix-2.5.5 lib/unimatrix/authorization/operation.rb
unimatrix-2.5.4 lib/unimatrix/authorization/operation.rb
unimatrix-2.5.3 lib/unimatrix/authorization/operation.rb
unimatrix-2.5.2 lib/unimatrix/authorization/operation.rb
unimatrix-2.5.1 lib/unimatrix/authorization/operation.rb
unimatrix-2.5.0 lib/unimatrix/authorization/operation.rb
unimatrix-2.4.2 lib/unimatrix/authorization/operation.rb
unimatrix-2.3.1 lib/unimatrix/authorization/operation.rb
unimatrix-2.2.1 lib/unimatrix/authorization/operation.rb