intervention 0.1.0 → 0.1.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: d83fa10542e7ef1ea5c39a549562f08909d634a0
4
- data.tar.gz: 435fa92b37c325a8fd40cf15481ff412564101f1
3
+ metadata.gz: 5cb373518e1a0985bdbde2581efbd6b6d73bccc0
4
+ data.tar.gz: 1585574390f891690da5147cc86abb404b4d809a
5
5
  SHA512:
6
- metadata.gz: 86982dcff951986b9c32c57c8cb6016f90cc1f4f90931f30956f25bf3963aee546a4369380c5a010eb45964b9f325313f037035534e43ac4b74910969bfefe7d
7
- data.tar.gz: 40e9ad7204db7dc0c53238f5157a945b3c3acebdef510e0a7d875b6c60fe2ef791cee5cabd62fe37d02088f20a7bde99d18bb583e47e056413e5bb3f28d68a2b
6
+ metadata.gz: 535d100a35b5dc4d045a96d19ce7c30b12eb0b1d3c4f749828a2add0c06ec192fa6f0d422e625b17602595dbbb1ad34d8e0733d642276a7cf321ef80db2418c5
7
+ data.tar.gz: 31a7da1e2f046fca410db30c8e2d9a7296bb5c264117bff61b76ae2570550e7a7944fd6fa10dd0ba447e9eb852f6da7fa4cc9d51a73bab7b488b4593825e9cb1
@@ -54,6 +54,14 @@ module Intervention
54
54
  def callbacks
55
55
  @config.callbacks ||= []
56
56
  end
57
+
58
+ def clients
59
+ @config.clients ||= []
60
+ end
61
+
62
+ def servers
63
+ @config.servers ||= []
64
+ end
57
65
  end
58
66
  end
59
67
 
@@ -7,9 +7,8 @@ module Intervention
7
7
  end
8
8
 
9
9
  def post_init
10
- Intervention.config.client = self
11
- @parser = Segregate.new(self)
12
- @server = EventMachine.connect Intervention.config.host_address, Intervention.config.host_port, Intervention::Server, client: self
10
+ Intervention.clients << self
11
+ @parser = Segregate.new(self, debug: true)
13
12
  end
14
13
 
15
14
  def receive_data data
@@ -18,9 +17,15 @@ module Intervention
18
17
 
19
18
  def on_message_complete parser
20
19
  callback :request
21
- @parser.headers['host'] = Intervention.config.host_address
22
- @parser.headers['accept-encoding'] = "deflate"
20
+
21
+ @server = EventMachine.connect (@parser.uri.host || @parser.headers['host']), Intervention.config.host_port, Intervention::Server, client: self
23
22
  @server.send_data @parser.raw_data
23
+ Intervention.clients.delete self
24
+ end
25
+
26
+ def unbind
27
+ @server.close_connection_after_writing if @server
28
+ self.close_connection
24
29
  end
25
30
 
26
31
  private
@@ -12,8 +12,8 @@ module Intervention
12
12
  end
13
13
 
14
14
  def post_init
15
- Intervention.config.server = self
16
- @parser = Segregate.new(self)
15
+ Intervention.servers << self
16
+ @parser = Segregate.new(self, debug: true)
17
17
  end
18
18
 
19
19
  def receive_data data
@@ -22,8 +22,16 @@ module Intervention
22
22
 
23
23
  def on_message_complete parser
24
24
  callback :response
25
+
25
26
  @client.send_data @parser.raw_data
26
27
  @client.close_connection_after_writing
28
+ self.close_connection
29
+ Intervention.servers.delete self
30
+ end
31
+
32
+ def unbind
33
+ @client.close_connection_after_writing if @client
34
+ self.close_connection
27
35
  end
28
36
 
29
37
  private
@@ -1,4 +1,4 @@
1
1
  module Intervention
2
- VERSION = "0.1.0".freeze
2
+ VERSION = "0.1.1".freeze
3
3
  DATE = "2013-11-11".freeze
4
4
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: intervention
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Slaughter
@@ -129,13 +129,13 @@ executables: []
129
129
  extensions: []
130
130
  extra_rdoc_files: []
131
131
  files:
132
- - README.md
133
- - License.md
134
132
  - History.md
133
+ - License.md
134
+ - README.md
135
+ - lib/intervention.rb
135
136
  - lib/intervention/client.rb
136
137
  - lib/intervention/server.rb
137
138
  - lib/intervention/version.rb
138
- - lib/intervention.rb
139
139
  - spec/helper.rb
140
140
  - spec/intervention_spec.rb
141
141
  homepage: http://benslaughter.github.io/intervention/
@@ -158,7 +158,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
158
158
  version: '0'
159
159
  requirements: []
160
160
  rubyforge_project:
161
- rubygems_version: 2.0.3
161
+ rubygems_version: 2.2.2
162
162
  signing_key:
163
163
  specification_version: 4
164
164
  summary: 'Intervention: Super simple proxy'