proxylocal 0.1.1 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +6 -7
- data/lib/client.rb +31 -15
- data/proxylocal.gemspec +2 -3
- data.tar.gz.sig +0 -0
- metadata +6 -6
- metadata.gz.sig +0 -0
data/Rakefile
CHANGED
@@ -5,12 +5,11 @@ require 'echoe'
|
|
5
5
|
require 'lib/client'
|
6
6
|
|
7
7
|
Echoe.new('proxylocal', ProxyLocal::VERSION) do |p|
|
8
|
-
p.
|
9
|
-
p.url
|
10
|
-
p.author
|
11
|
-
p.email
|
12
|
-
p.runtime_dependencies
|
13
|
-
p.development_dependencies = []
|
8
|
+
p.summary = 'Proxy your local web-server and make it publicly available over the internet'
|
9
|
+
p.url = 'http://proxylocal.com/'
|
10
|
+
p.author = 'Just Lest'
|
11
|
+
p.email = 'just.lest@gmail.com'
|
12
|
+
p.runtime_dependencies = ['eventmachine >=0.12.10', 'bert >=1.1.2']
|
14
13
|
p.require_signed = true
|
15
|
-
p.
|
14
|
+
p.project = nil
|
16
15
|
end
|
data/lib/client.rb
CHANGED
@@ -4,7 +4,7 @@ require 'eventmachine'
|
|
4
4
|
require 'bert'
|
5
5
|
|
6
6
|
module ProxyLocal
|
7
|
-
VERSION = '0.
|
7
|
+
VERSION = '0.2.0'
|
8
8
|
|
9
9
|
module Serializer
|
10
10
|
def self.dump(object)
|
@@ -55,6 +55,10 @@ module ProxyLocal
|
|
55
55
|
send_object(BERT::Tuple[:options, @options])
|
56
56
|
end
|
57
57
|
|
58
|
+
def post_init
|
59
|
+
@connections = {}
|
60
|
+
end
|
61
|
+
|
58
62
|
def ssl_handshake_completed
|
59
63
|
send_options
|
60
64
|
end
|
@@ -74,16 +78,24 @@ module ProxyLocal
|
|
74
78
|
puts message[1]
|
75
79
|
when :halt
|
76
80
|
EventMachine.stop_event_loop
|
77
|
-
when :
|
78
|
-
_,
|
79
|
-
@@logger.info(
|
80
|
-
EventMachine.connect('127.0.0.1', @options[:local_port], ClientProxy)
|
81
|
-
|
82
|
-
|
83
|
-
send_object(BERT::Tuple[:response, uuid, data])
|
84
|
-
end
|
85
|
-
connection.send_data(request)
|
81
|
+
when :connection
|
82
|
+
_, id = message
|
83
|
+
@@logger.info("New connection")
|
84
|
+
connection = EventMachine.connect('127.0.0.1', @options[:local_port], ClientProxy)
|
85
|
+
connection.on_data do |data|
|
86
|
+
send_object(BERT::Tuple[:stream, id, data])
|
86
87
|
end
|
88
|
+
connection.on_unbind do
|
89
|
+
@@logger.info("Connection closed")
|
90
|
+
send_object(BERT::Tuple[:close, id])
|
91
|
+
end
|
92
|
+
@connections[id] = connection
|
93
|
+
when :stream
|
94
|
+
_, id, data = message
|
95
|
+
@connections[id].send_data(data)
|
96
|
+
when :close
|
97
|
+
_, id = message
|
98
|
+
@connections[id].close_connection
|
87
99
|
end
|
88
100
|
end
|
89
101
|
|
@@ -95,19 +107,23 @@ module ProxyLocal
|
|
95
107
|
|
96
108
|
class ClientProxy < EventMachine::Connection
|
97
109
|
def post_init
|
98
|
-
@
|
110
|
+
@callbacks = {}
|
99
111
|
end
|
100
112
|
|
101
113
|
def receive_data(data)
|
102
|
-
@data
|
114
|
+
@callbacks[:on_data].call(data) if @callbacks.has_key?(:on_data)
|
103
115
|
end
|
104
116
|
|
105
117
|
def unbind
|
106
|
-
@
|
118
|
+
@callbacks[:on_unbind].call if @callbacks.has_key?(:on_unbind)
|
119
|
+
end
|
120
|
+
|
121
|
+
def on_data(&block)
|
122
|
+
@callbacks[:on_data] = block
|
107
123
|
end
|
108
124
|
|
109
|
-
def
|
110
|
-
@
|
125
|
+
def on_unbind(&block)
|
126
|
+
@callbacks[:on_unbind] = block
|
111
127
|
end
|
112
128
|
end
|
113
129
|
end
|
data/proxylocal.gemspec
CHANGED
@@ -2,12 +2,12 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{proxylocal}
|
5
|
-
s.version = "0.
|
5
|
+
s.version = "0.2.0"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["Just Lest"]
|
9
9
|
s.cert_chain = ["/Users/lest/.gem/gem-public_cert.pem"]
|
10
|
-
s.date = %q{2010-
|
10
|
+
s.date = %q{2010-12-08}
|
11
11
|
s.default_executable = %q{proxylocal}
|
12
12
|
s.description = %q{Proxy your local web-server and make it publicly available over the internet}
|
13
13
|
s.email = %q{just.lest@gmail.com}
|
@@ -17,7 +17,6 @@ Gem::Specification.new do |s|
|
|
17
17
|
s.homepage = %q{http://proxylocal.com/}
|
18
18
|
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Proxylocal"]
|
19
19
|
s.require_paths = ["lib"]
|
20
|
-
s.rubyforge_project = %q{}
|
21
20
|
s.rubygems_version = %q{1.3.7}
|
22
21
|
s.signing_key = %q{/Users/lest/.gem/gem-private_key.pem}
|
23
22
|
s.summary = %q{Proxy your local web-server and make it publicly available over the internet}
|
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: proxylocal
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 23
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 0.
|
8
|
+
- 2
|
9
|
+
- 0
|
10
|
+
version: 0.2.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Just Lest
|
@@ -36,7 +36,7 @@ cert_chain:
|
|
36
36
|
9HkV98wF6vQ=
|
37
37
|
-----END CERTIFICATE-----
|
38
38
|
|
39
|
-
date: 2010-
|
39
|
+
date: 2010-12-08 00:00:00 +02:00
|
40
40
|
default_executable:
|
41
41
|
dependencies:
|
42
42
|
- !ruby/object:Gem::Dependency
|
@@ -119,7 +119,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
119
119
|
version: "1.2"
|
120
120
|
requirements: []
|
121
121
|
|
122
|
-
rubyforge_project:
|
122
|
+
rubyforge_project:
|
123
123
|
rubygems_version: 1.3.7
|
124
124
|
signing_key:
|
125
125
|
specification_version: 3
|
metadata.gz.sig
CHANGED
Binary file
|