yup 0.0.1 → 0.0.2

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.
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"