yup 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.1
1
+ 0.0.2
data/bin/yupd CHANGED
@@ -16,6 +16,7 @@ Options:
16
16
  --status-code <code> Send status code to a client on request (default 200)
17
17
  --resend-delay <seconds> Resend failed requests in seconds (default 5.0)
18
18
  --watermark <number> Maximum of concurrent requests (default 100)
19
+ --loglevel <level> Logging severity (default info). Available log levels: debug, warn, info.
19
20
 
20
21
  Examples:
21
22
  yupd --listen 0.0.0.0:8081 --status-code 201 errbit.host.somewhere
@@ -28,8 +29,14 @@ opts = GetoptLong.new(*[['--help', '-h', GetoptLong::NO_ARGUMENT],
28
29
  ['--status-code', GetoptLong::REQUIRED_ARGUMENT],
29
30
  ['--resend-delay', '-d', GetoptLong::REQUIRED_ARGUMENT],
30
31
  ['--watermark', GetoptLong::REQUIRED_ARGUMENT],
32
+ ['--loglevel', GetoptLong::REQUIRED_ARGUMENT],
31
33
  ])
32
34
  config = {}
35
+ levels = {
36
+ "info" => Logger::INFO,
37
+ "warn" => Logger::WARN,
38
+ "debug" => Logger::DEBUG
39
+ }
33
40
  opts.each do |opt, arg|
34
41
  case opt
35
42
  when '--help', '-h'
@@ -43,6 +50,14 @@ opts.each do |opt, arg|
43
50
  config[:status_code] = arg.to_i
44
51
  when '--watermark'
45
52
  config[:watermark] = arg.to_i
53
+ when '--loglevel'
54
+ if levels.key? arg.to_s
55
+ config[:loglevel] = levels[arg.to_s]
56
+ else
57
+ puts "ERROR: Wrong log level"
58
+ usage
59
+ exit 0
60
+ end
46
61
  end
47
62
  end
48
63
 
@@ -21,18 +21,18 @@ module Yup
21
21
  Yup.watermark += 1
22
22
 
23
23
  if http.response_header.status / 100 == 2
24
- puts '--- SUCCESS'
24
+ logger.info '--- SUCCESS'
25
25
  else
26
- puts '--- FAIL'
27
- # puts http.response_header.inspect
28
- # puts http.response
29
- p http
26
+ logger.info '--- FAIL'
27
+ # logger.debug http.response_header.inspect
28
+ # logger.debug http.response
29
+ logger.debug http
30
30
  end
31
31
  end
32
32
 
33
33
  http.errback do
34
- puts '--- ERROR'
35
- p http
34
+ logger.info '--- ERROR'
35
+ logger.debug http
36
36
 
37
37
  EventMachine.add_timer(Yup.resend_delay) { self.run }
38
38
  end
@@ -28,11 +28,11 @@ module Yup
28
28
  end
29
29
 
30
30
  def on_message_complete
31
- puts '-- got request'
32
- p @parser.http_version
33
- p @parser.http_method # for requests
34
- p @parser.request_url
35
- p @parser.headers
31
+ logger.info "-- got request"
32
+ logger.info "HTTP version: " + @parser.http_version
33
+ logger.info "HTTP method : " + @parser.http_method # for requests
34
+ logger.info "HTTP request_url : " + @parser.request_url
35
+ logger.debug "HTTP headers : " + @parser.headers
36
36
 
37
37
  resp = WEBrick::HTTPResponse.new(:HTTPVersion => '1.1')
38
38
  resp.status = @status_code
@@ -46,7 +46,7 @@ module Yup
46
46
  RequestForwarder.new(@parser, @body, @forward_to).run
47
47
  end
48
48
  else
49
- puts "-- watermark is reached, drop"
49
+ logger.error "-- watermark is reached, drop"
50
50
  end
51
51
  end
52
52
  end
data/lib/yup.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require 'rubygems'
2
2
  require 'eventmachine'
3
+ require 'logger'
3
4
 
4
5
  require 'yup/request_forwarder'
5
6
  require 'yup/request_handler'
@@ -19,10 +20,13 @@ module Yup
19
20
  status_code = config[:status_code] || 200
20
21
  forward_to = config[:forward_to]
21
22
 
23
+ logger = Logger.new(STDOUT)
24
+ logger.level = config[:loglevel]
25
+
22
26
  EventMachine::run do
23
27
  EventMachine::start_server(host, port, RequestHandler,
24
28
  forward_to, status_code)
25
- puts "listening on #{host}:#{port}"
29
+ logger.info "listening on #{host}:#{port}"
26
30
  end
27
31
  end
28
32
  end
data/yup.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{yup}
8
- s.version = "0.0.1"
8
+ s.version = "0.0.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Denis Sukhonin"]
12
- s.date = %q{2011-08-08}
12
+ s.date = %q{2011-08-16}
13
13
  s.default_executable = %q{yupd}
14
14
  s.description = %q{Just answers 200 (or specified) to a client and asynchronously forwards HTTP request to a configured host}
15
15
  s.email = %q{d.sukhonin@gmail.com}
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 0
8
- - 1
9
- version: 0.0.1
8
+ - 2
9
+ version: 0.0.2
10
10
  platform: ruby
11
11
  authors:
12
12
  - Denis Sukhonin
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2011-08-08 00:00:00 +04:00
17
+ date: 2011-08-16 00:00:00 +04:00
18
18
  default_executable: yupd
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -165,7 +165,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
165
165
  requirements:
166
166
  - - ">="
167
167
  - !ruby/object:Gem::Version
168
- hash: 4139204877131472821
168
+ hash: -1930386845878587074
169
169
  segments:
170
170
  - 0
171
171
  version: "0"