em-midori 0.1.7 → 0.1.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4b8f1d0f52bac821c37368d97470d9babb3a5666
4
- data.tar.gz: 50c9efd29749da9a5f12eaf3b769169b754d7024
3
+ metadata.gz: a1141fbd9e570a32ea33eb07ad6687a8b60bf36e
4
+ data.tar.gz: a8c597845b57be046d0ec3e438e5d83694c5df84
5
5
  SHA512:
6
- metadata.gz: 539fd19c14ec8a1bfbde7f4c2f8d01c41f29db187377ec8e7c0b56ab60aec097d4957067c43fb1525ed8b55c85da5315e20f73be02ba69903cf3b4c49d91ab44
7
- data.tar.gz: 112bb41011fc2bf23aaf83ec10f92433f7b9bc29b7fd2b57b877dd4fad0cbf414cc1cde2717edde005403ec8c3924a96a96ee315031d720055b2687a482b9cd2
6
+ metadata.gz: 7dca5dee8b994779f9b684155bb20ac948d068e38b35e2f361a6ca01457b85ac5b1227c2e35ebf862b317343ced90cb567ec82d794e27f71a1c7bcf24c81162c
7
+ data.tar.gz: 609351a34a8741f942afa9deda5ebf097b5cfdffd17fb153999073e43d9b6bd902ca601237032714ef6a4f4ade9fdd16a4befdebdb9615a34718131a0ec9b8e0
data/lib/em-midori CHANGED
@@ -1 +1 @@
1
- midori
1
+ lib/midori
data/lib/midori/api.rb CHANGED
@@ -12,13 +12,31 @@ class Midori::API
12
12
  # @return [ nil ] nil
13
13
  def class_initialize
14
14
  @routes = {
15
+ DELETE: [],
15
16
  GET: [],
17
+ HEAD: [],
16
18
  POST: [],
17
19
  PUT: [],
18
- DELETE: [],
20
+ CONNECT: [],
19
21
  OPTIONS: [],
20
- LINK: [],
21
- UNLINK: [],
22
+ TRACE: [],
23
+ COPY: [],
24
+ LOCK: [],
25
+ MKCOL: [],
26
+ MOVE: [],
27
+ PROPFIND: [],
28
+ PROPPATCH: [],
29
+ UNLOCK: [],
30
+ REPORT: [],
31
+ MKACTIVITY: [],
32
+ CHECKOUT: [],
33
+ MERGE: [],
34
+ :'M-SEARCH' => [],
35
+ NOTIFY: [],
36
+ SUBSCRIBE: [],
37
+ UNSUBSCRIBE: [],
38
+ PATCH: [],
39
+ PURGE: [],
22
40
  WEBSOCKET: [],
23
41
  EVENTSOURCE: [],
24
42
  MOUNT: []
@@ -28,6 +46,16 @@ class Midori::API
28
46
  nil
29
47
  end
30
48
 
49
+ # Add DELETE method as a DSL for route definition
50
+ # @param [ String ] path Accepts as part of path in route definition
51
+ # @yield what to run when route matched
52
+ # @return [ nil ] nil
53
+ # @example String as router
54
+ # delete '/' do
55
+ # puts 'Hello World'
56
+ # end
57
+ def delete(path, &block) end
58
+
31
59
  # Add GET method as a DSL for route definition
32
60
  # @param [ String ] path Accepts as part of path in route definition
33
61
  # @yield what to run when route matched
@@ -38,6 +66,16 @@ class Midori::API
38
66
  # end
39
67
  def get(path, &block) end
40
68
 
69
+ # Add HEAD method as a DSL for route definition
70
+ # @param [ String ] path Accepts as part of path in route definition
71
+ # @yield what to run when route matched
72
+ # @return [ nil ] nil
73
+ # @example String as router
74
+ # head '/' do
75
+ # puts 'Hello World'
76
+ # end
77
+ def head(path, &block) end
78
+
41
79
  # Add POST method as a DSL for route definition
42
80
  # @param [ String ] path Accepts as part of path in route definition
43
81
  # @yield what to run when route matched
@@ -58,15 +96,15 @@ class Midori::API
58
96
  # end
59
97
  def put(path, &block) end
60
98
 
61
- # Add DELETE method as a DSL for route definition
99
+ # Add CONNECT method as a DSL for route definition
62
100
  # @param [ String ] path Accepts as part of path in route definition
63
101
  # @yield what to run when route matched
64
102
  # @return [ nil ] nil
65
103
  # @example String as router
66
- # delete '/' do
104
+ # connect '/' do
67
105
  # puts 'Hello World'
68
106
  # end
69
- def delete(path, &block) end
107
+ def connect(path, &block) end
70
108
 
71
109
  # Add OPTIONS method as a DSL for route definition
72
110
  # @param [ String ] path Accepts as part of path in route definition
@@ -77,6 +115,189 @@ class Midori::API
77
115
  # end
78
116
  def options(path, &block) end
79
117
 
118
+ # Add TRACE method as a DSL for route definition
119
+ # @param [ String ] path Accepts as part of path in route definition
120
+ # @yield what to run when route matched
121
+ # @return [ nil ] nil
122
+ # @example String as router
123
+ # trace '/' do
124
+ # puts 'Hello World'
125
+ # end
126
+ def trace(path, &block) end
127
+
128
+ # Add COPY method as a DSL for route definition
129
+ # @param [ String ] path Accepts as part of path in route definition
130
+ # @yield what to run when route matched
131
+ # @return [ nil ] nil
132
+ # @example String as router
133
+ # copy '/' do
134
+ # puts 'Hello World'
135
+ # end
136
+ def copy(path, &block) end
137
+
138
+ # Add LOCK method as a DSL for route definition
139
+ # @param [ String ] path Accepts as part of path in route definition
140
+ # @yield what to run when route matched
141
+ # @return [ nil ] nil
142
+ # @example String as router
143
+ # lock '/' do
144
+ # puts 'Hello World'
145
+ # end
146
+ def lock(path, &block) end
147
+
148
+ # Add MKCOK method as a DSL for route definition
149
+ # @param [ String ] path Accepts as part of path in route definition
150
+ # @yield what to run when route matched
151
+ # @return [ nil ] nil
152
+ # @example String as router
153
+ # mkcol '/' do
154
+ # puts 'Hello World'
155
+ # end
156
+ def mkcol(path, &block) end
157
+
158
+ # Add MOVE method as a DSL for route definition
159
+ # @param [ String ] path Accepts as part of path in route definition
160
+ # @yield what to run when route matched
161
+ # @return [ nil ] nil
162
+ # @example String as router
163
+ # move '/' do
164
+ # puts 'Hello World'
165
+ # end
166
+ def move(path, &block) end
167
+
168
+
169
+ # Add PROPFIND method as a DSL for route definition
170
+ # @param [ String ] path Accepts as part of path in route definition
171
+ # @yield what to run when route matched
172
+ # @return [ nil ] nil
173
+ # @example String as router
174
+ # propfind '/' do
175
+ # puts 'Hello World'
176
+ # end
177
+ def proppatch(path, &block) end
178
+
179
+ # Add PROPPATCH method as a DSL for route definition
180
+ # @param [ String ] path Accepts as part of path in route definition
181
+ # @yield what to run when route matched
182
+ # @return [ nil ] nil
183
+ # @example String as router
184
+ # proppatch '/' do
185
+ # puts 'Hello World'
186
+ # end
187
+ def proppatch(path, &block) end
188
+
189
+ # Add UNLOCK method as a DSL for route definition
190
+ # @param [ String ] path Accepts as part of path in route definition
191
+ # @yield what to run when route matched
192
+ # @return [ nil ] nil
193
+ # @example String as router
194
+ # unlock '/' do
195
+ # puts 'Hello World'
196
+ # end
197
+ def unlock(path, &block) end
198
+
199
+ # Add REPORT method as a DSL for route definition
200
+ # @param [ String ] path Accepts as part of path in route definition
201
+ # @yield what to run when route matched
202
+ # @return [ nil ] nil
203
+ # @example String as router
204
+ # report '/' do
205
+ # puts 'Hello World'
206
+ # end
207
+ def report(path, &block) end
208
+
209
+ # Add MKACTIVITY method as a DSL for route definition
210
+ # @param [ String ] path Accepts as part of path in route definition
211
+ # @yield what to run when route matched
212
+ # @return [ nil ] nil
213
+ # @example String as router
214
+ # mkactivity '/' do
215
+ # puts 'Hello World'
216
+ # end
217
+ def mkactivity(path, &block) end
218
+
219
+ # Add CHECKOUT method as a DSL for route definition
220
+ # @param [ String ] path Accepts as part of path in route definition
221
+ # @yield what to run when route matched
222
+ # @return [ nil ] nil
223
+ # @example String as router
224
+ # checkout '/' do
225
+ # puts 'Hello World'
226
+ # end
227
+ def checkout(path, &block) end
228
+
229
+ # Add MERGE method as a DSL for route definition
230
+ # @param [ String ] path Accepts as part of path in route definition
231
+ # @yield what to run when route matched
232
+ # @return [ nil ] nil
233
+ # @example String as router
234
+ # merge '/' do
235
+ # puts 'Hello World'
236
+ # end
237
+ def merge(path, &block) end
238
+
239
+ # Add M-SEARCH method as a DSL for route definition
240
+ # @param [ String ] path Accepts as part of path in route definition
241
+ # @yield what to run when route matched
242
+ # @return [ nil ] nil
243
+ # @example String as router
244
+ # msearch '/' do
245
+ # puts 'Hello World'
246
+ # end
247
+ def msearch(path, &block)
248
+ add_route(:'M-SEARCH', path, block)
249
+ end
250
+
251
+ # Add NOTIFY method as a DSL for route definition
252
+ # @param [ String ] path Accepts as part of path in route definition
253
+ # @yield what to run when route matched
254
+ # @return [ nil ] nil
255
+ # @example String as router
256
+ # notify '/' do
257
+ # puts 'Hello World'
258
+ # end
259
+ def notify(path, &block) end
260
+
261
+ # Add SUBSCRIBE method as a DSL for route definition
262
+ # @param [ String ] path Accepts as part of path in route definition
263
+ # @yield what to run when route matched
264
+ # @return [ nil ] nil
265
+ # @example String as router
266
+ # subscribe '/' do
267
+ # puts 'Hello World'
268
+ # end
269
+ def merge(path, &block) end
270
+
271
+ # Add UNSUBSCRIBE method as a DSL for route definition
272
+ # @param [ String ] path Accepts as part of path in route definition
273
+ # @yield what to run when route matched
274
+ # @return [ nil ] nil
275
+ # @example String as router
276
+ # unsubscribe '/' do
277
+ # puts 'Hello World'
278
+ # end
279
+ def unsubscribe(path, &block) end
280
+
281
+ # Add PATCH method as a DSL for route definition
282
+ # @param [ String ] path Accepts as part of path in route definition
283
+ # @yield what to run when route matched
284
+ # @return [ nil ] nil
285
+ # @example String as router
286
+ # patch '/' do
287
+ # puts 'Hello World'
288
+ # end
289
+ def patch(path, &block) end
290
+
291
+ # Add PURGE method as a DSL for route definition
292
+ # @param [ String ] path Accepts as part of path in route definition
293
+ # @yield what to run when route matched
294
+ # @return [ nil ] nil
295
+ # @example String as router
296
+ # purge '/' do
297
+ # puts 'Hello World'
298
+ # end
299
+ def purge(path, &block) end
300
+
80
301
  # Add LINK method as a DSL for route definition
81
302
  # @param [ String ] path Accepts as part of path in route definition
82
303
  # @yield what to run when route matched
@@ -193,7 +414,33 @@ class Midori::API
193
414
  private_class_method :add_route, :inherited
194
415
 
195
416
  # Constants of supported methods in route definition
196
- METHODS = %w(get post put delete options link unlink websocket eventsource).freeze
417
+ METHODS = %w( delete
418
+ get
419
+ head
420
+ post
421
+ put
422
+ connect
423
+ options
424
+ trace
425
+ copy
426
+ lock
427
+ mkcol
428
+ move
429
+ propfind
430
+ proppatch
431
+ unlock
432
+ report
433
+ mkactivity
434
+ checkout
435
+ merge
436
+ notify
437
+ subscribe
438
+ unsubscribe
439
+ patch
440
+ purge
441
+ websocket
442
+ eventsource
443
+ ).freeze
197
444
 
198
445
  # Magics to fill DSL methods through dynamically class method definition
199
446
  METHODS.each do |method|
@@ -9,13 +9,31 @@ class Midori::APIEngine
9
9
  # @param [ Symbol ] type type mustermann support
10
10
  def initialize(root_api, type = :sinatra)
11
11
  @routes = {
12
+ DELETE: [],
12
13
  GET: [],
14
+ HEAD: [],
13
15
  POST: [],
14
16
  PUT: [],
15
- DELETE: [],
17
+ CONNECT: [],
16
18
  OPTIONS: [],
17
- LINK: [],
18
- UNLINK: [],
19
+ TRACE: [],
20
+ COPY: [],
21
+ LOCK: [],
22
+ MKCOL: [],
23
+ MOVE: [],
24
+ PROPFIND: [],
25
+ PROPPATCH: [],
26
+ UNLOCK: [],
27
+ REPORT: [],
28
+ MKACTIVITY: [],
29
+ CHECKOUT: [],
30
+ MERGE: [],
31
+ :'M-SEARCH' => [],
32
+ NOTIFY: [],
33
+ SUBSCRIBE: [],
34
+ UNSUBSCRIBE: [],
35
+ PATCH: [],
36
+ PURGE: [],
19
37
  WEBSOCKET: [],
20
38
  EVENTSOURCE: []
21
39
  }
@@ -55,7 +73,7 @@ class Midori::APIEngine
55
73
  def receive(request, connection = nil)
56
74
  @routes[request.method].each do |route|
57
75
  params = route.path.params(request.path)
58
- next unless params
76
+ next unless params # Skip if not matched
59
77
  request.params = params
60
78
  route.middlewares.each { |middleware| request = middleware.before(request) }
61
79
  clean_room = Midori::CleanRoom.new(request)
@@ -1,6 +1,6 @@
1
1
  ##
2
2
  # This class is used to be sandbox of requests processing.
3
- # @attr [Fixnum] status HTTP response code
3
+ # @attr [Integer] status HTTP response code
4
4
  # @attr [Hash] header HTTP response header
5
5
  # @attr [Object] body HTTP response body. String could is accepted by default, but could leave for further process with +Midori::Middleware+
6
6
  # @attr [Midori::Request] request HTTP request
@@ -4,6 +4,7 @@ class Midori::Configure
4
4
  extend Configurable
5
5
 
6
6
  set :logger, ::Logger.new(STDOUT)
7
+ set :protocol, :http
7
8
  set :bind, '127.0.0.1'
8
9
  set :port, 8080
9
10
  set :route_type, :sinatra
@@ -1,7 +1,7 @@
1
1
  ##
2
2
  # Meta-programming String for Syntactic Sugars
3
3
  class String
4
- # @param [Fixnum] color_code ANSI color code
4
+ # @param [Integer] color_code ANSI color code
5
5
  # @return [String] colored string
6
6
  def colorize(color_code)
7
7
  "\e[#{color_code}m#{self}\e[0m"
@@ -2,7 +2,7 @@ safe_require 'postgres-pr/message', 'gem install postgres-pr'
2
2
 
3
3
  ##
4
4
  # Midori Extension for Postgres Driver
5
- # @attr [ Fixnum ] connected Connection Status
5
+ # @attr [ Integer ] connected Connection Status
6
6
  class Midori::Postgres
7
7
  attr_reader :connected
8
8
 
@@ -1,7 +1,7 @@
1
1
  ##
2
2
  # Request class for midori
3
3
  # @attr [String] ip client ip address
4
- # @attr [Fixnum] port client port
4
+ # @attr [Integer] port client port
5
5
  # @attr [String] protocol protocol version of HTTP request
6
6
  # @attr [String] method HTTP method
7
7
  # @attr [String] path request path
@@ -35,7 +35,6 @@ class Midori::Request
35
35
  # @param [ String ] data
36
36
  # @return [ nil ] nil
37
37
  def parse(data)
38
-
39
38
  offset = @parser << data
40
39
  @body = data[offset..-1]
41
40
  @query_string = @path.match(/\?(.*?)$/)
@@ -6,7 +6,7 @@
6
6
  class Midori::Response
7
7
  attr_accessor :status, :header, :body
8
8
 
9
- # @param [Fixnum] code HTTP response code
9
+ # @param [Integer] code HTTP response code
10
10
  # @param [Hash] header HTTP response header
11
11
  # @param [String] body HTTP response body
12
12
  # Init a Response
data/lib/midori/runner.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  ##
2
2
  # Abstract runner class to control instance of Midori Server
3
3
  # @attr [ String ] bind the address to bind
4
- # @attr [ Fixnum ] port the port to bind
4
+ # @attr [ Integer ] port the port to bind
5
5
  class Midori::Runner
6
6
  attr_reader :bind, :port
7
7
 
@@ -1,5 +1,5 @@
1
1
  # Midori Module
2
2
  module Midori
3
3
  # Current Version Code
4
- VERSION = '0.1.7'.freeze
4
+ VERSION = '0.1.7.1'.freeze
5
5
  end
@@ -1,7 +1,7 @@
1
1
  ##
2
2
  # This class provides methods for WebSocket connection instance.
3
- # @attr [ Array<Fixnum>, String ] msg message send from client
4
- # @attr [ Fixnum ] opcode operation code of WebSocket
3
+ # @attr [ Array<Integer>, String ] msg message send from client
4
+ # @attr [ Integer ] opcode operation code of WebSocket
5
5
  # @attr [ Hash ] events response for different event
6
6
  # @attr [ EM::Connection ] connection raw EventMachine connection
7
7
  # @attr [ Midori::Request ] request raw request
@@ -63,7 +63,7 @@ class Midori::WebSocket
63
63
  end
64
64
 
65
65
  # Send data
66
- # @param [ Array<Fixnum>, String ] msg data to send
66
+ # @param [ Array<Integer>, String ] msg data to send
67
67
  def send(msg)
68
68
  output = []
69
69
  if msg.is_a?String
@@ -91,7 +91,7 @@ class Midori::WebSocket
91
91
  end
92
92
 
93
93
  # Ancestor of ping pong
94
- # @param [ Fixnum ] method opcode
94
+ # @param [ Integer ] method opcode
95
95
  # @param [ String ] str string to send
96
96
  def heartbeat(method, str)
97
97
  raise Midori::Exception::PingPongSizeTooLarge if str.size > 125
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: em-midori
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.7
4
+ version: 0.1.7.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - HeckPsi Lab
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-12-25 00:00:00.000000000 Z
11
+ date: 2017-01-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: eventmachine
@@ -25,33 +25,33 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.2'
27
27
  - !ruby/object:Gem::Dependency
28
- name: http_parser.rb
28
+ name: mustermann
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0.6'
33
+ version: '0.4'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0.6'
40
+ version: '0.4'
41
41
  - !ruby/object:Gem::Dependency
42
- name: mustermann
42
+ name: midori_http_parser
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0.4'
47
+ version: 0.6.1
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '0.4'
54
+ version: 0.6.1
55
55
  description: EM Midori is an EventMachine-based Web Framework written in pure Ruby,
56
56
  providing high performance and proper abstraction.
57
57
  email: business@heckpsi.com
@@ -104,7 +104,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
104
104
  requirements:
105
105
  - - ">="
106
106
  - !ruby/object:Gem::Version
107
- version: 2.0.0
107
+ version: 2.1.0
108
108
  required_rubygems_version: !ruby/object:Gem::Requirement
109
109
  requirements:
110
110
  - - ">="
@@ -112,7 +112,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
112
112
  version: '0'
113
113
  requirements: []
114
114
  rubyforge_project:
115
- rubygems_version: 2.5.2
115
+ rubygems_version: 2.6.8
116
116
  signing_key:
117
117
  specification_version: 4
118
118
  summary: An EventMachine Based Web Framework on Ruby