em-midori 0.1.7 → 0.1.7.1

Sign up to get free protection for your applications and to get access to all the features.
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