auto_response 0.1.5 → 0.1.6

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: a1ffff50cd0255268c8bf7006a4bbf1ce1a8358a
4
+ data.tar.gz: ab2d9bea2a0260fc4b439af40326da5fb7e0df5b
5
+ SHA512:
6
+ metadata.gz: 43be67ddb064d306b793eedd23f27a9810d833657103c2618312d2d4e2742e240d2799643f48a379509e6605dc349ece4084c0acac4e087ececb3c31dc855743
7
+ data.tar.gz: 50ce17a96b9d3e5ff68506f73a0d640e927425f83e16ae90ac4738f4aac21c63dd690d346e5ac98b3161578c3c0fc7dd728ebb42ddc075026a9beaa7db4f5243
data/Gemfile CHANGED
@@ -1,6 +1,8 @@
1
1
  source :rubygems
2
2
  gem 'listen'
3
3
  gem 'colorize'
4
+ gem 'sinatra'
5
+ gem 'haml'
4
6
  gem 'daemons'
5
7
 
6
8
  group :test do
data/Gemfile.lock CHANGED
@@ -3,8 +3,18 @@ GEM
3
3
  specs:
4
4
  colorize (0.5.8)
5
5
  daemons (1.1.9)
6
+ gem-this (0.3.7)
7
+ haml (3.1.7)
6
8
  listen (0.6.0)
9
+ rack (1.4.1)
10
+ rack-protection (1.3.2)
11
+ rack
12
+ sinatra (1.3.3)
13
+ rack (~> 1.3, >= 1.3.6)
14
+ rack-protection (~> 1.2)
15
+ tilt (~> 1.3, >= 1.3.3)
7
16
  test-unit (2.5.3)
17
+ tilt (1.3.3)
8
18
 
9
19
  PLATFORMS
10
20
  ruby
@@ -12,5 +22,8 @@ PLATFORMS
12
22
  DEPENDENCIES
13
23
  colorize
14
24
  daemons
25
+ gem-this
26
+ haml
15
27
  listen
28
+ sinatra
16
29
  test-unit
@@ -0,0 +1 @@
1
+ 12016
@@ -9,6 +9,7 @@ module AutoResp
9
9
  class ProxyServer < WEBrick::HTTPProxyServer
10
10
 
11
11
  include Parser
12
+ attr_reader :sessions
12
13
 
13
14
  def initialize(core, config={})
14
15
  @core = core
@@ -16,9 +17,12 @@ module AutoResp
16
17
  :AccessLog => [],
17
18
  :Logger => WEBrick::Log.new("/dev/null")
18
19
  }))
20
+ @sessions = []
19
21
  end
20
22
 
21
23
  def service(req, res)
24
+ puts "[#{req.unparsed_uri}]"
25
+ sessions << [req, res]
22
26
  header, body, status = find_auto_res(req.unparsed_uri)
23
27
  res.status = status if status
24
28
 
@@ -0,0 +1,24 @@
1
+ require 'sinatra/base'
2
+ require 'haml'
3
+
4
+ module AutoResp
5
+
6
+ class SessionViewer < Sinatra::Base
7
+
8
+ class << self
9
+ attr_accessor :proxy_server
10
+ end
11
+
12
+ set :views, File.join(settings.root, 'viewer/tmpl')
13
+
14
+ get '/' do
15
+ haml :index
16
+ end
17
+
18
+ before('/') do
19
+ @sessions = SessionViewer.proxy_server.sessions.dup
20
+ end
21
+
22
+ end
23
+
24
+ end
@@ -0,0 +1,55 @@
1
+ !!! 5
2
+ %html
3
+ %head
4
+ %title sessions - AutoResponse
5
+
6
+ :css
7
+ html, body {
8
+ height: 100%;
9
+ padding: 0;
10
+ margin: 0;
11
+ }
12
+ .sessions {
13
+ height: 100%;
14
+ }
15
+
16
+ .sessions .list {
17
+ width: 50%;
18
+ float: left;
19
+ height: 100%;
20
+ overflow-y: scroll;
21
+ }
22
+
23
+ .sessions .list table {
24
+ }
25
+
26
+ .sessions .list td {
27
+ word-break: break-all;
28
+ }
29
+
30
+ .sessions .list tr.stt-200 { }
31
+ .sessions .list tr.stt-500 { color: red; }
32
+
33
+ .sessions .inspect {
34
+ width: 50%;
35
+ float: left;
36
+ background: #ccc;
37
+ height: 100%;
38
+ }
39
+
40
+ %body
41
+ .sessions
42
+ .list
43
+ %table
44
+ %thead
45
+ %tr
46
+ %th status
47
+ %th url
48
+ %tbody
49
+ - @sessions.each do |req, res|
50
+ %tr( class="stt-#{res.status}")
51
+ %td= res.status
52
+ %td= req.unparsed_uri
53
+ .inspect
54
+ detail
55
+
data/lib/autoresponse.rb CHANGED
@@ -4,9 +4,18 @@ require 'fileutils'
4
4
  require 'listen'
5
5
  require 'colorize'
6
6
 
7
+ unless Kernel.respond_to?(:require_relative)
8
+ module Kernel
9
+ def require_relative(path)
10
+ require File.expand_path(path.to_str, File.dirname(caller[0]))
11
+ end
12
+ end
13
+ end
14
+
7
15
  require_relative 'ar/proxyserver'
8
16
  require_relative 'ar/rule_manager'
9
17
  require_relative 'ar/parser'
18
+ require_relative 'ar/session_viewer'
10
19
 
11
20
  module AutoResp
12
21
 
@@ -23,6 +32,7 @@ module AutoResp
23
32
  init_proxy_server
24
33
  load_rules
25
34
  monitor_rules_change
35
+ start_viewer
26
36
  end
27
37
 
28
38
  protected
@@ -44,9 +54,21 @@ module AutoResp
44
54
  trap('INT') { stop_and_exit }
45
55
  end
46
56
 
57
+ def start_viewer
58
+ @sv_thread = Thread.new {
59
+ sleep 0.2
60
+ SessionViewer.proxy_server = @server
61
+ SessionViewer.run!
62
+ Thread.pass
63
+ }
64
+ end
65
+
47
66
  public
48
67
  def start
49
- @thread = Thread.new { @server.start }
68
+ @thread = Thread.new {
69
+ sleep 0.1
70
+ @server.start
71
+ }
50
72
  @thread.join
51
73
  end
52
74
 
data/test/all-test.rb CHANGED
@@ -1,8 +1,17 @@
1
+ require 'rubygems'
1
2
  gem 'test-unit'
2
3
  require 'test/unit'
3
4
  require 'test/unit/testsuite'
4
5
  require 'test/unit/ui/console/testrunner'
5
6
 
7
+ unless Kernel.respond_to?(:require_relative)
8
+ module Kernel
9
+ def require_relative(path)
10
+ require File.expand_path(path.to_str, File.dirname(caller[0]))
11
+ end
12
+ end
13
+ end
14
+
6
15
  require_relative 'respond_with_file_test'
7
16
  require_relative 'respond_with_string_test'
8
17
  require_relative 'respond_with_url_test'
metadata CHANGED
@@ -1,71 +1,85 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: auto_response
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
5
- prerelease:
4
+ version: 0.1.6
6
5
  platform: ruby
7
6
  authors:
8
7
  - qhwa
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-12-24 00:00:00.000000000 Z
11
+ date: 2013-07-12 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: listen
16
- requirement: &14883740 !ruby/object:Gem::Requirement
17
- none: false
15
+ requirement: !ruby/object:Gem::Requirement
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :runtime
23
21
  prerelease: false
24
- version_requirements: *14883740
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
25
27
  - !ruby/object:Gem::Dependency
26
28
  name: colorize
27
- requirement: &14895420 !ruby/object:Gem::Requirement
28
- none: false
29
+ requirement: !ruby/object:Gem::Requirement
29
30
  requirements:
30
- - - ! '>='
31
+ - - '>='
31
32
  - !ruby/object:Gem::Version
32
33
  version: '0'
33
34
  type: :runtime
34
35
  prerelease: false
35
- version_requirements: *14895420
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
36
41
  - !ruby/object:Gem::Dependency
37
42
  name: daemons
38
- requirement: &14893680 !ruby/object:Gem::Requirement
39
- none: false
43
+ requirement: !ruby/object:Gem::Requirement
40
44
  requirements:
41
- - - ! '>='
45
+ - - '>='
42
46
  - !ruby/object:Gem::Version
43
47
  version: '0'
44
48
  type: :runtime
45
49
  prerelease: false
46
- version_requirements: *14893680
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
47
55
  - !ruby/object:Gem::Dependency
48
56
  name: gem-this
49
- requirement: &14890540 !ruby/object:Gem::Requirement
50
- none: false
57
+ requirement: !ruby/object:Gem::Requirement
51
58
  requirements:
52
- - - ! '>='
59
+ - - '>='
53
60
  - !ruby/object:Gem::Version
54
61
  version: '0'
55
62
  type: :development
56
63
  prerelease: false
57
- version_requirements: *14890540
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
58
69
  - !ruby/object:Gem::Dependency
59
70
  name: test-unit
60
- requirement: &14900700 !ruby/object:Gem::Requirement
61
- none: false
71
+ requirement: !ruby/object:Gem::Requirement
62
72
  requirements:
63
- - - ! '>='
73
+ - - '>='
64
74
  - !ruby/object:Gem::Version
65
75
  version: '0'
66
76
  type: :development
67
77
  prerelease: false
68
- version_requirements: *14900700
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
69
83
  description:
70
84
  email: qhwa@163.com
71
85
  executables:
@@ -80,6 +94,7 @@ files:
80
94
  - Gemfile.lock
81
95
  - bin/ar
82
96
  - bin/start_ar.rb
97
+ - bin/start_ar.rb.pid
83
98
  - test/respond_with_url_test.rb
84
99
  - test/all-test.rb
85
100
  - test/fixture/passwd
@@ -91,13 +106,16 @@ files:
91
106
  - test/respond_with_string_test.rb
92
107
  - test/response_text_parser_test.rb
93
108
  - test/match_with_reg_test.rb
109
+ - lib/ar/viewer/tmpl/index.haml
94
110
  - lib/ar/parser.rb
95
111
  - lib/ar/rule_dsl.rb
112
+ - lib/ar/session_viewer.rb
96
113
  - lib/ar/proxyserver.rb
97
114
  - lib/ar/rule_manager.rb
98
115
  - lib/autoresponse.rb
99
116
  homepage: https://github.com/qhwa/auto_response
100
117
  licenses: []
118
+ metadata: {}
101
119
  post_install_message:
102
120
  rdoc_options:
103
121
  - --main
@@ -105,21 +123,19 @@ rdoc_options:
105
123
  require_paths:
106
124
  - lib
107
125
  required_ruby_version: !ruby/object:Gem::Requirement
108
- none: false
109
126
  requirements:
110
- - - ! '>='
127
+ - - '>='
111
128
  - !ruby/object:Gem::Version
112
129
  version: '0'
113
130
  required_rubygems_version: !ruby/object:Gem::Requirement
114
- none: false
115
131
  requirements:
116
- - - ! '>='
132
+ - - '>='
117
133
  - !ruby/object:Gem::Version
118
134
  version: '0'
119
135
  requirements: []
120
136
  rubyforge_project:
121
- rubygems_version: 1.8.17
137
+ rubygems_version: 2.0.3
122
138
  signing_key:
123
- specification_version: 3
139
+ specification_version: 4
124
140
  summary: A proxy server for debugging HTTP requests.
125
141
  test_files: []