Class List Method List File List

# Class: VertxWeb::Route

Inherits:
  Object
  - Object
  - VertxWeb::Route
  show all
Defined in:
  /Users/julien/java/vertx-aggregator/modules/vertx-web/vertx-web/src/main/resources/vertx-web/route.rb

## Overview

A route is a holder for a set of criteria which determine whether an HTTP request or failure should be routed to a handler.

## Instance Method Summary (collapse)

- - (self) blocking_handler(requestHandler = nil, ordered = nil)
  Specify a blocking request handler for the route.
- - (self) consumes(contentType = nil)
  Add a content type consumed by this route.
- - (self) disable
  Disable this route.
- - (self) enable
  Enable this route.
- - (self) failure_handler { ... }
  Specify a failure handler for the route.
- - (String) get_path
  @return the path prefix (if any) for this route.
- - (self) handler { ... }
  Specify a request handler for the route.
- - (self) last
  Specify this is the last route for the router.
- - (self) method(method = nil)
  Add an HTTP method for this route.
- - (self) order(order = nil)
  Specify the order for this route.
- - (self) path(path = nil)
  Set the path prefix for this route.
- - (self) path_regex(path = nil)
  Set the path prefix as a regular expression.
- - (::VertxWeb::Route) produces(contentType = nil)
  Add a content type produced by this route.
- - (self) remove
  Remove this route from the router.
- - (self) use_normalised_path(useNormalisedPath = nil)
  If true then the normalised request path will be used when routing (e.g. removing duplicate /) Default is true.

## Instance Method Details

### - (`self`) blocking_handler(requestHandler = nil, ordered = nil)

Specify a blocking request handler for the route. This method works just like #handler excepted that it will run the blocking handler on a worker thread so that it won't block the event loop. Note that it's safe to call context.next() from the blocking handler as it will be executed on the event loop context (and not on the worker thread. If the blocking handler is ordered it means that any blocking handlers for the same context are never executed concurrently but always in the order they were called. The default value of ordered is true. If you do not want this behaviour and don't mind if your blocking handlers are executed in parallel you can set ordered to false.

Parameters:

- requestHandler (`Proc`) (defaults to: `nil`) —
  the blocking request handler
- ordered (`true`, `false`) (defaults to: `nil`) —
  if true handlers are executed in sequence, otherwise are run in parallel

Returns:

- (`self`)

Raises:

- (`ArgumentError`)

    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    # File '/Users/julien/java/vertx-aggregator/modules/vertx-web/vertx-web/src/main/resources/vertx-web/route.rb', line 112

    def blocking_handler(requestHandler=nil,ordered=nil)
      if block_given? && requestHandler == nil && ordered == nil
        @j_del.java_method(:blockingHandler, [Java::IoVertxCore::Handler.java_class]).call((Proc.new { |event| yield(::Vertx::Util::Utils.safe_create(event,::VertxWeb::RoutingContext)) }))
        return self
      elsif requestHandler.class == Proc && (ordered.class == TrueClass || ordered.class == FalseClass) && !block_given?
        @j_del.java_method(:blockingHandler, [Java::IoVertxCore::Handler.java_class,Java::boolean.java_class]).call((Proc.new { |event| requestHandler.call(::Vertx::Util::Utils.safe_create(event,::VertxWeb::RoutingContext)) }),ordered)
        return self
      end
      raise ArgumentError, "Invalid arguments when calling blocking_handler(requestHandler,ordered)"
    end

### - (`self`) consumes(contentType = nil)

Add a content type consumed by this route. Used for content based routing.

Parameters:

- contentType (`String`) (defaults to: `nil`) —
  the content type

Returns:

- (`self`)

Raises:

- (`ArgumentError`)

    63
    64
    65
    66
    67
    68
    69
    # File '/Users/julien/java/vertx-aggregator/modules/vertx-web/vertx-web/src/main/resources/vertx-web/route.rb', line 63

    def consumes(contentType=nil)
      if contentType.class == String && !block_given?
        @j_del.java_method(:consumes, [Java::java.lang.String.java_class]).call(contentType)
        return self
      end
      raise ArgumentError, "Invalid arguments when calling consumes(contentType)"
    end

### - (`self`) disable

Disable this route. While disabled the router will not route any requests or failures to it.

Returns:

- (`self`)

Raises:

- (`ArgumentError`)

    145
    146
    147
    148
    149
    150
    151
    # File '/Users/julien/java/vertx-aggregator/modules/vertx-web/vertx-web/src/main/resources/vertx-web/route.rb', line 145

    def disable
      if !block_given?
        @j_del.java_method(:disable, []).call()
        return self
      end
      raise ArgumentError, "Invalid arguments when calling disable()"
    end

### - (`self`) enable

Enable this route.

Returns:

- (`self`)

Raises:

- (`ArgumentError`)

    154
    155
    156
    157
    158
    159
    160
    # File '/Users/julien/java/vertx-aggregator/modules/vertx-web/vertx-web/src/main/resources/vertx-web/route.rb', line 154

    def enable
      if !block_given?
        @j_del.java_method(:enable, []).call()
        return self
      end
      raise ArgumentError, "Invalid arguments when calling enable()"
    end

### - (`self`) failure_handler { ... }

Specify a failure handler for the route. The router routes failures to failurehandlers depending on whether the various criteria such as method, path, etc match. There can be only one failure handler for a route. If you set this more than once it will overwrite the previous handler.

Yields:

- the request handler

Returns:

- (`self`)

Raises:

- (`ArgumentError`)

    127
    128
    129
    130
    131
    132
    133
    # File '/Users/julien/java/vertx-aggregator/modules/vertx-web/vertx-web/src/main/resources/vertx-web/route.rb', line 127

    def failure_handler
      if block_given?
        @j_del.java_method(:failureHandler, [Java::IoVertxCore::Handler.java_class]).call((Proc.new { |event| yield(::Vertx::Util::Utils.safe_create(event,::VertxWeb::RoutingContext)) }))
        return self
      end
      raise ArgumentError, "Invalid arguments when calling failure_handler()"
    end

### - (`String`) get_path

@return the path prefix (if any) for this route

Returns:

- (`String`)

Raises:

- (`ArgumentError`)

    174
    175
    176
    177
    178
    179
    # File '/Users/julien/java/vertx-aggregator/modules/vertx-web/vertx-web/src/main/resources/vertx-web/route.rb', line 174

    def get_path
      if !block_given?
        return @j_del.java_method(:getPath, []).call()
      end
      raise ArgumentError, "Invalid arguments when calling get_path()"
    end

### - (`self`) handler { ... }

Specify a request handler for the route. The router routes requests to handlers depending on whether the various criteria such as method, path, etc match. There can be only one request handler for a route. If you set this more than once it will overwrite the previous handler.

Yields:

- the request handler

Returns:

- (`self`)

Raises:

- (`ArgumentError`)

    94
    95
    96
    97
    98
    99
    100
    # File '/Users/julien/java/vertx-aggregator/modules/vertx-web/vertx-web/src/main/resources/vertx-web/route.rb', line 94

    def handler
      if block_given?
        @j_del.java_method(:handler, [Java::IoVertxCore::Handler.java_class]).call((Proc.new { |event| yield(::Vertx::Util::Utils.safe_create(event,::VertxWeb::RoutingContext)) }))
        return self
      end
      raise ArgumentError, "Invalid arguments when calling handler()"
    end

### - (`self`) last

Specify this is the last route for the router.

Returns:

- (`self`)

Raises:

- (`ArgumentError`)

    82
    83
    84
    85
    86
    87
    88
    # File '/Users/julien/java/vertx-aggregator/modules/vertx-web/vertx-web/src/main/resources/vertx-web/route.rb', line 82

    def last
      if !block_given?
        @j_del.java_method(:last, []).call()
        return self
      end
      raise ArgumentError, "Invalid arguments when calling last()"
    end

### - (`self`) method(method = nil)

Add an HTTP method for this route. By default a route will match all HTTP methods. If any are specified then the route will only match any of the specified methods

Parameters:

- method (`:OPTIONS`, `:GET`, `:HEAD`, `:POST`, `:PUT`, `:DELETE`, `:TRACE`, `:CONNECT`, `:PATCH`) (defaults to: `nil`) —
  the HTTP method to add

Returns:

- (`self`)

Raises:

- (`ArgumentError`)

    22
    23
    24
    25
    26
    27
    28
    # File '/Users/julien/java/vertx-aggregator/modules/vertx-web/vertx-web/src/main/resources/vertx-web/route.rb', line 22

    def method(method=nil)
      if method.class == Symbol && !block_given?
        @j_del.java_method(:method, [Java::IoVertxCoreHttp::HttpMethod.java_class]).call(Java::IoVertxCoreHttp::HttpMethod.valueOf(method))
        return self
      end
      raise ArgumentError, "Invalid arguments when calling method(method)"
    end

### - (`self`) order(order = nil)

Specify the order for this route. The router tests routes in that order.

Parameters:

- order (`Fixnum`) (defaults to: `nil`) —
  the order

Returns:

- (`self`)

Raises:

- (`ArgumentError`)

    73
    74
    75
    76
    77
    78
    79
    # File '/Users/julien/java/vertx-aggregator/modules/vertx-web/vertx-web/src/main/resources/vertx-web/route.rb', line 73

    def order(order=nil)
      if order.class == Fixnum && !block_given?
        @j_del.java_method(:order, [Java::int.java_class]).call(order)
        return self
      end
      raise ArgumentError, "Invalid arguments when calling order(order)"
    end

### - (`self`) path(path = nil)

Set the path prefix for this route. If set then this route will only match request URI paths which start with this path prefix. Only a single path or path regex can be set for a route.

Parameters:

- path (`String`) (defaults to: `nil`) —
  the path prefix

Returns:

- (`self`)

Raises:

- (`ArgumentError`)

    33
    34
    35
    36
    37
    38
    39
    # File '/Users/julien/java/vertx-aggregator/modules/vertx-web/vertx-web/src/main/resources/vertx-web/route.rb', line 33

    def path(path=nil)
      if path.class == String && !block_given?
        @j_del.java_method(:path, [Java::java.lang.String.java_class]).call(path)
        return self
      end
      raise ArgumentError, "Invalid arguments when calling path(path)"
    end

### - (`self`) path_regex(path = nil)

Set the path prefix as a regular expression. If set then this route will only match request URI paths, the beginning of which match the regex. Only a single path or path regex can be set for a route.

Parameters:

- path (`String`) (defaults to: `nil`) —
  the path regex

Returns:

- (`self`)

Raises:

- (`ArgumentError`)

    44
    45
    46
    47
    48
    49
    50
    # File '/Users/julien/java/vertx-aggregator/modules/vertx-web/vertx-web/src/main/resources/vertx-web/route.rb', line 44

    def path_regex(path=nil)
      if path.class == String && !block_given?
        @j_del.java_method(:pathRegex, [Java::java.lang.String.java_class]).call(path)
        return self
      end
      raise ArgumentError, "Invalid arguments when calling path_regex(path)"
    end

### - (`::VertxWeb::Route`) produces(contentType = nil)

Add a content type produced by this route. Used for content based routing.

Parameters:

- contentType (`String`) (defaults to: `nil`) —
  the content type

Returns:

- (`::VertxWeb::Route`) —
  a reference to this, so the API can be used fluently

Raises:

- (`ArgumentError`)

    54
    55
    56
    57
    58
    59
    # File '/Users/julien/java/vertx-aggregator/modules/vertx-web/vertx-web/src/main/resources/vertx-web/route.rb', line 54

    def produces(contentType=nil)
      if contentType.class == String && !block_given?
        return ::Vertx::Util::Utils.safe_create(@j_del.java_method(:produces, [Java::java.lang.String.java_class]).call(contentType),::VertxWeb::Route)
      end
      raise ArgumentError, "Invalid arguments when calling produces(contentType)"
    end

### - (`self`) remove

Remove this route from the router

Returns:

- (`self`)

Raises:

- (`ArgumentError`)

    136
    137
    138
    139
    140
    141
    142
    # File '/Users/julien/java/vertx-aggregator/modules/vertx-web/vertx-web/src/main/resources/vertx-web/route.rb', line 136

    def remove
      if !block_given?
        @j_del.java_method(:remove, []).call()
        return self
      end
      raise ArgumentError, "Invalid arguments when calling remove()"
    end

### - (`self`) use_normalised_path(useNormalisedPath = nil)

If true then the normalised request path will be used when routing (e.g. removing duplicate /) Default is true

Parameters:

- useNormalisedPath (`true`, `false`) (defaults to: `nil`) —
  use normalised path for routing?

Returns:

- (`self`)

Raises:

- (`ArgumentError`)

    165
    166
    167
    168
    169
    170
    171
    # File '/Users/julien/java/vertx-aggregator/modules/vertx-web/vertx-web/src/main/resources/vertx-web/route.rb', line 165

    def use_normalised_path(useNormalisedPath=nil)
      if (useNormalisedPath.class == TrueClass || useNormalisedPath.class == FalseClass) && !block_given?
        @j_del.java_method(:useNormalisedPath, [Java::boolean.java_class]).call(useNormalisedPath)
        return self
      end
      raise ArgumentError, "Invalid arguments when calling use_normalised_path(useNormalisedPath)"
    end