Class: VertxWeb::Route
- Inherits:
-
Object
show all
- Defined in:
- /Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/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.
Constant Summary
- @@j_api_type =
Object.new
Class Method Summary
(collapse)
Instance Method Summary
(collapse)
Class Method Details
+ (Boolean) accept?(obj)
19
20
21
|
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-web/route.rb', line 19
def @@j_api_type.accept?(obj)
obj.class == Route
end
|
+ (Object) j_api_type
28
29
30
|
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-web/route.rb', line 28
def self.j_api_type
@@j_api_type
end
|
+ (Object) j_class
31
32
33
|
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-web/route.rb', line 31
def self.j_class
Java::IoVertxExtWeb::Route.java_class
end
|
+ (Object) unwrap(obj)
25
26
27
|
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-web/route.rb', line 25
def @@j_api_type.unwrap(obj)
obj.j_del
end
|
+ (Object) wrap(obj)
22
23
24
|
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-web/route.rb', line 22
def @@j_api_type.wrap(obj)
Route.new(obj)
end
|
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.
129
130
131
132
133
134
135
136
137
138
|
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-web/route.rb', line 129
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.
80
81
82
83
84
85
86
|
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-web/route.rb', line 80
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.
162
163
164
165
166
167
168
|
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-web/route.rb', line 162
def disable
if !block_given?
@j_del.java_method(:disable, []).call()
return self
end
raise ArgumentError, "Invalid arguments when calling disable()"
end
|
- (self) enable
171
172
173
174
175
176
177
|
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-web/route.rb', line 171
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 { ... }
Append a failure handler to the route failure handlers list. The router routes failures to failurehandlers depending on whether the various
criteria such as method, path, etc match. When method, path, etc are the same for different routes, You should add multiple
failure handlers to the same route object rather than creating two different routes objects with one failure handler for route
144
145
146
147
148
149
150
|
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-web/route.rb', line 144
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
Returns the path prefix (if any) for this route
190
191
192
193
194
195
|
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-web/route.rb', line 190
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 { ... }
Append a request handler to the route handlers list. The router routes requests to handlers depending on whether the various
criteria such as method, path, etc match. When method, path, etc are the same for different routes, You should add multiple
handlers to the same route object rather than creating two different routes objects with one handler for route
111
112
113
114
115
116
117
|
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-web/route.rb', line 111
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.
99
100
101
102
103
104
105
|
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-web/route.rb', line 99
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
38
39
40
41
42
43
44
|
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-web/route.rb', line 38
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.to_s))
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.
90
91
92
93
94
95
96
|
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-web/route.rb', line 90
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.
49
50
51
52
53
54
55
|
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-web/route.rb', line 49
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.
60
61
62
63
64
65
66
|
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-web/route.rb', line 60
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
|
- (self) produces(contentType = nil)
Add a content type produced by this route. Used for content based routing.
70
71
72
73
74
75
76
|
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-web/route.rb', line 70
def produces(contentType=nil)
if contentType.class == String && !block_given?
@j_del.java_method(:produces, [Java::java.lang.String.java_class]).call(contentType)
return self
end
raise ArgumentError, "Invalid arguments when calling produces(#{contentType})"
end
|
- (self) remove
Remove this route from the router
153
154
155
156
157
158
159
|
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-web/route.rb', line 153
def remove
if !block_given?
@j_del.java_method(:remove, []).call()
return self
end
raise ArgumentError, "Invalid arguments when calling remove()"
end
|
- (self) set_regex_groups_names(groups = nil)
When you add a new route with a regular expression, you can add named capture groups for parameters.
However, if you need more complex parameters names (like "param_name"), you can add parameters names with
this function. You have to name capture groups in regex with names: "p0", "p1", "p2", ...
For example: If you declare route with regex \/(?
[a-z]*)\/(?[a-z]*) and group names ["param_a", "param-b"]
for uri /hello/world you receive inside pathParams() the parameter param_a = "hello"
204
205
206
207
208
209
210
|
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-web/route.rb', line 204
def set_regex_groups_names(groups=nil)
if groups.class == Array && !block_given?
@j_del.java_method(:setRegexGroupsNames, [Java::JavaUtil::List.java_class]).call(groups.map { |element| element })
return self
end
raise ArgumentError, "Invalid arguments when calling set_regex_groups_names(#{groups})"
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
182
183
184
185
186
187
188
|
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-web/route.rb', line 182
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
|