thick 0.0.6-java → 0.0.7-java

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG.md CHANGED
@@ -1,3 +1,14 @@
1
+ ## 0.7 (20.12.2012)
2
+
3
+ * update Netty to 4th version
4
+ * support for WebSockets
5
+ * new buffer for uploaded data
6
+ * simpler interface for async responses
7
+
8
+ ## 0.6 (01.12.2012)
9
+
10
+ * some weird version
11
+
1
12
  ## 0.5 (30.11.2012)
2
13
 
3
14
  * update Netty to 3.5.11
Binary file
Binary file
data/lib/thick.rb CHANGED
@@ -2,10 +2,12 @@ require 'rack'
2
2
 
3
3
  require 'java'
4
4
 
5
- require File.expand_path('../jars/netty-4.0.0.Alpha7.jar', __FILE__)
5
+ require File.expand_path('../jars/netty-4.0.0.Alpha8.jar', __FILE__)
6
6
  require File.expand_path('../jars/thick-0.0.1.jar', __FILE__)
7
7
 
8
8
  require 'thick/java'
9
9
  require 'thick/version'
10
10
  require 'thick/thick'
11
- require 'thick/loader'
11
+ require 'thick/loader'
12
+ require 'thick/buffer'
13
+ require 'thick/websocket'
@@ -0,0 +1,47 @@
1
+ module Thick
2
+
3
+ class Buffer
4
+
5
+ java_import "io.netty.buffer.ByteBuf"
6
+ java_import "io.netty.buffer.Unpooled"
7
+
8
+ def initialize(buffer=nil)
9
+ @buffer = buffer || Unpooled.buffer
10
+ end
11
+
12
+ def write(buffer)
13
+ raise ArgumentError.new('ByteBuf is expected') unless buffer.kind_of?(ByteBuf)
14
+ @buffer.writeBytes(buffer)
15
+ end
16
+
17
+ def rewind
18
+ @buffer.reset_reader_index
19
+ end
20
+
21
+ def read(n=nil, buffer=nil)
22
+ return n ? nil : '' unless @buffer.readable
23
+ buffer ||= ""
24
+ n ||= @buffer.readable_bytes
25
+ buffer << java.lang.String.new(@buffer.read_bytes(n).array).to_s
26
+ end
27
+
28
+ def each(&block)
29
+ while (data = gets)
30
+ block.call( data || "")
31
+ end
32
+ end
33
+
34
+ def gets
35
+ return nil unless @buffer.readable
36
+ nl = @buffer.bytes_before(10)
37
+ if nl == -1
38
+ nl = @buffer.readable_bytes
39
+ else
40
+ nl += 1
41
+ end
42
+ read(nl)
43
+ end
44
+
45
+ end
46
+
47
+ end
data/lib/thick/loader.rb CHANGED
@@ -11,11 +11,14 @@ module Thick
11
11
  end
12
12
 
13
13
  def call(env)
14
- env['rack.input'] = env['rack.input'].to_io
14
+ # ToDo: Does not work with Netty4 !!
15
+ env['rack.input'] = Buffer.new(env['rack.input'])
15
16
  env['rack.errors'] = env['rack.errors'].to_io
16
17
 
17
18
  status, headers, body = @application.call(env)
18
19
 
20
+ return if env['thick.response_bypass']
21
+
19
22
  response = env['thick.response']
20
23
 
21
24
  response.setStatus(status)
data/lib/thick/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Thick
2
- VERSION = '0.0.6' unless const_defined?(:VERSION)
2
+ VERSION = '0.0.7' unless const_defined?(:VERSION)
3
3
  end
@@ -0,0 +1,21 @@
1
+ module Thick
2
+
3
+ java_import 'cz.marekjelen.thick.WebSocketHandler'
4
+
5
+ class WebSocket < WebSocketHandler
6
+
7
+ def on_open
8
+ raise NotImplementedError.new("You should implement '#on_open' method.")
9
+ end
10
+
11
+ def on_data(data)
12
+ raise NotImplementedError.new("You should implement '#on_data(data)' method.")
13
+ end
14
+
15
+ def on_close
16
+ raise NotImplementedError.new("You should implement '#on_close' method.")
17
+ end
18
+
19
+ end
20
+
21
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: thick
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  prerelease:
6
6
  platform: java
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-12-01 00:00:00.000000000 Z
12
+ date: 2012-12-20 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rack
@@ -31,15 +31,33 @@ dependencies:
31
31
  name: rspec
32
32
  version_requirements: !ruby/object:Gem::Requirement
33
33
  requirements:
34
- - - '='
34
+ - - ! '>='
35
35
  - !ruby/object:Gem::Version
36
- version: 2.9.0
36
+ version: !binary |-
37
+ Mg==
37
38
  none: false
38
39
  requirement: !ruby/object:Gem::Requirement
39
40
  requirements:
40
- - - '='
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: !binary |-
44
+ Mg==
45
+ none: false
46
+ prerelease: false
47
+ type: :development
48
+ - !ruby/object:Gem::Dependency
49
+ name: rake
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '10'
55
+ none: false
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ! '>='
41
59
  - !ruby/object:Gem::Version
42
- version: 2.9.0
60
+ version: '10'
43
61
  none: false
44
62
  prerelease: false
45
63
  type: :development
@@ -51,22 +69,16 @@ executables:
51
69
  extensions: []
52
70
  extra_rdoc_files: []
53
71
  files:
54
- - !binary |-
55
- YmluL3RoaWNr
56
- - !binary |-
57
- bGliL3RoaWNrLnJi
58
- - !binary |-
59
- bGliL3RoaWNrL2phdmEucmI=
60
- - !binary |-
61
- bGliL3RoaWNrL3RoaWNrLnJi
62
- - !binary |-
63
- bGliL3RoaWNrL2xvYWRlci5yYg==
64
- - !binary |-
65
- bGliL3RoaWNrL3ZlcnNpb24ucmI=
66
- - !binary |-
67
- bGliL2phcnMvbmV0dHktNC4wLjAuQWxwaGE3Lmphcg==
68
- - !binary |-
69
- bGliL2phcnMvdGhpY2stMC4wLjEuamFy
72
+ - bin/thick
73
+ - lib/thick.rb
74
+ - lib/jars/netty-4.0.0.Alpha8.jar
75
+ - lib/jars/thick-0.0.1.jar
76
+ - lib/thick/buffer.rb
77
+ - lib/thick/java.rb
78
+ - lib/thick/loader.rb
79
+ - lib/thick/thick.rb
80
+ - lib/thick/version.rb
81
+ - lib/thick/websocket.rb
70
82
  - LICENSE
71
83
  - README.md
72
84
  - ROADMAP.md
@@ -91,8 +103,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
91
103
  requirements:
92
104
  - - ! '>='
93
105
  - !ruby/object:Gem::Version
106
+ segments:
107
+ - 0
94
108
  version: !binary |-
95
109
  MA==
110
+ hash: 2
96
111
  none: false
97
112
  requirements: []
98
113
  rubyforge_project:
Binary file