mongrel2 0.21.0 → 0.22.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.
@@ -138,7 +138,6 @@ describe Mongrel2::Handler do
138
138
  response.status.should == 204
139
139
  end
140
140
 
141
-
142
141
  it "ignores JSON messages by default" do
143
142
  req = make_json_request()
144
143
  @request_sock.should_receive( :recv ).and_return( req )
@@ -151,7 +150,6 @@ describe Mongrel2::Handler do
151
150
  response.should be_nil()
152
151
  end
153
152
 
154
-
155
153
  it "dispatches JSON message to the #handle_json method" do
156
154
  json_handler = Class.new( OneShotHandler ) do
157
155
  def handle_json( request )
@@ -170,7 +168,6 @@ describe Mongrel2::Handler do
170
168
  response.should be_a( Mongrel2::Response )
171
169
  end
172
170
 
173
-
174
171
  it "ignores XML messages by default" do
175
172
  req = make_xml_request()
176
173
  @request_sock.should_receive( :recv ).and_return( req )
@@ -183,7 +180,6 @@ describe Mongrel2::Handler do
183
180
  response.should be_nil()
184
181
  end
185
182
 
186
-
187
183
  it "dispatches XML message to the #handle_xml method" do
188
184
  xml_handler = Class.new( OneShotHandler ) do
189
185
  def handle_xml( request )
@@ -202,7 +198,6 @@ describe Mongrel2::Handler do
202
198
  response.should be_a( Mongrel2::Response )
203
199
  end
204
200
 
205
-
206
201
  it "continues when a ZMQ::Error is received but the connection remains open" do
207
202
  req = make_request()
208
203
 
@@ -13,7 +13,7 @@ require 'rspec'
13
13
 
14
14
  require 'spec/lib/helpers'
15
15
 
16
- require 'logger'
16
+ require 'loggability'
17
17
  require 'mongrel2'
18
18
 
19
19
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongrel2
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.21.0
4
+ version: 0.22.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -36,7 +36,7 @@ cert_chain:
36
36
  YUhDS0xaZFNLai9SSHVUT3QrZ2JsUmV4OEZBaDhOZUEKY21saFhlNDZwWk5K
37
37
  Z1dLYnhaYWg4NWpJang5NWhSOHZPSStOQU01aUg5a09xSzEzRHJ4YWNUS1Bo
38
38
  cWo1UGp3RgotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
39
- date: 2012-04-23 00:00:00.000000000 Z
39
+ date: 2012-05-07 00:00:00.000000000 Z
40
40
  dependencies:
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: nokogiri
@@ -157,7 +157,7 @@ dependencies:
157
157
  requirements:
158
158
  - - ~>
159
159
  - !ruby/object:Gem::Version
160
- version: 2.1.4
160
+ version: '2.1'
161
161
  type: :runtime
162
162
  prerelease: false
163
163
  version_requirements: !ruby/object:Gem::Requirement
@@ -165,7 +165,23 @@ dependencies:
165
165
  requirements:
166
166
  - - ~>
167
167
  - !ruby/object:Gem::Version
168
- version: 2.1.4
168
+ version: '2.1'
169
+ - !ruby/object:Gem::Dependency
170
+ name: loggability
171
+ requirement: !ruby/object:Gem::Requirement
172
+ none: false
173
+ requirements:
174
+ - - ~>
175
+ - !ruby/object:Gem::Version
176
+ version: '0.0'
177
+ type: :runtime
178
+ prerelease: false
179
+ version_requirements: !ruby/object:Gem::Requirement
180
+ none: false
181
+ requirements:
182
+ - - ~>
183
+ - !ruby/object:Gem::Version
184
+ version: '0.0'
169
185
  - !ruby/object:Gem::Dependency
170
186
  name: hoe-mercurial
171
187
  requirement: !ruby/object:Gem::Requirement
@@ -189,7 +205,7 @@ dependencies:
189
205
  requirements:
190
206
  - - ~>
191
207
  - !ruby/object:Gem::Version
192
- version: 0.0.1
208
+ version: 0.1.0
193
209
  type: :development
194
210
  prerelease: false
195
211
  version_requirements: !ruby/object:Gem::Requirement
@@ -197,7 +213,7 @@ dependencies:
197
213
  requirements:
198
214
  - - ~>
199
215
  - !ruby/object:Gem::Version
200
- version: 0.0.1
216
+ version: 0.1.0
201
217
  - !ruby/object:Gem::Dependency
202
218
  name: rdoc
203
219
  requirement: !ruby/object:Gem::Requirement
@@ -346,8 +362,6 @@ files:
346
362
  - lib/mongrel2/httprequest.rb
347
363
  - lib/mongrel2/httpresponse.rb
348
364
  - lib/mongrel2/jsonrequest.rb
349
- - lib/mongrel2/logging.rb
350
- - lib/mongrel2/mixins.rb
351
365
  - lib/mongrel2/request.rb
352
366
  - lib/mongrel2/response.rb
353
367
  - lib/mongrel2/table.rb
@@ -375,8 +389,6 @@ files:
375
389
  - spec/mongrel2/handler_spec.rb
376
390
  - spec/mongrel2/httprequest_spec.rb
377
391
  - spec/mongrel2/httpresponse_spec.rb
378
- - spec/mongrel2/logging_spec.rb
379
- - spec/mongrel2/mixins_spec.rb
380
392
  - spec/mongrel2/request_spec.rb
381
393
  - spec/mongrel2/response_spec.rb
382
394
  - spec/mongrel2/table_spec.rb
@@ -407,7 +419,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
407
419
  version: '0'
408
420
  requirements: []
409
421
  rubyforge_project: mongrel2
410
- rubygems_version: 1.8.21
422
+ rubygems_version: 1.8.24
411
423
  signing_key:
412
424
  specification_version: 3
413
425
  summary: Ruby-Mongrel2 is a complete Ruby (1.9-only) connector for Mongrel2[http://mongrel2.org/]
metadata.gz.sig CHANGED
Binary file
@@ -1,241 +0,0 @@
1
- #!/usr/bin/ruby
2
-
3
- require 'logger'
4
- require 'date'
5
-
6
- require 'mongrel2' unless defined?( Mongrel2 )
7
- require 'mongrel2/mixins'
8
-
9
-
10
- # A mixin that adds a logging subsystem to the extended object.
11
- module Mongrel2::Logging
12
-
13
- ### Logging
14
- # Log levels
15
- LOG_LEVELS = {
16
- 'debug' => Logger::DEBUG,
17
- 'info' => Logger::INFO,
18
- 'warn' => Logger::WARN,
19
- 'error' => Logger::ERROR,
20
- 'fatal' => Logger::FATAL,
21
- }.freeze
22
- LOG_LEVEL_NAMES = LOG_LEVELS.invert.freeze
23
-
24
-
25
- ### Inclusion hook
26
- def self::extended( mod )
27
- super
28
-
29
- class << mod
30
- # the log formatter that will be used when the logging subsystem is reset
31
- attr_accessor :default_log_formatter
32
-
33
- # the logger that will be used when the logging subsystem is reset
34
- attr_accessor :default_logger
35
-
36
- # the logger that's currently in effect
37
- attr_accessor :logger
38
- alias_method :log, :logger
39
- alias_method :log=, :logger=
40
- end
41
-
42
- mod.default_logger = mod.logger = Logger.new( $stderr )
43
- mod.default_logger.level = $DEBUG ? Logger::DEBUG : Logger::WARN
44
- mod.default_log_formatter = Mongrel2::Logging::Formatter.new( mod.default_logger )
45
- end
46
-
47
-
48
- ### Reset the global logger object to the default
49
- def reset_logger
50
- self.logger = self.default_logger
51
- self.logger.level = $DEBUG ? Logger::DEBUG : Logger::WARN
52
- self.logger.formatter = self.default_log_formatter
53
- end
54
-
55
-
56
- ### Returns +true+ if the global logger has not been set to something other than
57
- ### the default one.
58
- def using_default_logger?
59
- return self.logger == self.default_logger
60
- end
61
-
62
-
63
- # A alternate formatter for Logger instances.
64
- class Formatter < Logger::Formatter
65
-
66
- # The format to output unless debugging is turned on
67
- DEFAULT_FORMAT = "[%1$s.%2$06d %3$d/%4$s] %5$5s -- %7$s\n"
68
-
69
- # The format to output if debugging is turned on
70
- DEFAULT_DEBUG_FORMAT = "[%1$s.%2$06d %3$d/%4$s] %5$5s {%6$s} -- %7$s\n"
71
-
72
-
73
- ### Initialize the formatter with a reference to the logger so it can check for log level.
74
- def initialize( logger, format=DEFAULT_FORMAT, debug=DEFAULT_DEBUG_FORMAT ) # :notnew:
75
- @logger = logger
76
- @format = format
77
- @debug_format = debug
78
-
79
- super()
80
- end
81
-
82
- ######
83
- public
84
- ######
85
-
86
- # The Logger object associated with the formatter
87
- attr_accessor :logger
88
-
89
- # The logging format string
90
- attr_accessor :format
91
-
92
- # The logging format string that's used when outputting in debug mode
93
- attr_accessor :debug_format
94
-
95
-
96
- ### Log using either the DEBUG_FORMAT if the associated logger is at ::DEBUG level or
97
- ### using FORMAT if it's anything less verbose.
98
- def call( severity, time, progname, msg )
99
- args = [
100
- time.strftime( '%Y-%m-%d %H:%M:%S' ), # %1$s
101
- time.usec, # %2$d
102
- Process.pid, # %3$d
103
- Thread.current == Thread.main ? 'main' : Thread.object_id, # %4$s
104
- severity, # %5$s
105
- progname, # %6$s
106
- msg # %7$s
107
- ]
108
-
109
- if @logger.level == Logger::DEBUG
110
- return self.debug_format % args
111
- else
112
- return self.format % args
113
- end
114
- end
115
- end # class LogFormatter
116
-
117
-
118
- # A ANSI-colorized formatter for Logger instances.
119
- class ColorFormatter < Logger::Formatter
120
- extend Mongrel2::ANSIColorUtilities
121
-
122
- # Color settings
123
- LEVEL_FORMATS = {
124
- :debug => colorize( :bold, :black ) {"[%1$s.%2$06d %3$d/%4$s] %5$5s {%6$s} -- %7$s\n"},
125
- :info => colorize( :normal ) {"[%1$s.%2$06d %3$d/%4$s] %5$5s -- %7$s\n"},
126
- :warn => colorize( :bold, :yellow ) {"[%1$s.%2$06d %3$d/%4$s] %5$5s -- %7$s\n"},
127
- :error => colorize( :red ) {"[%1$s.%2$06d %3$d/%4$s] %5$5s -- %7$s\n"},
128
- :fatal => colorize( :bold, :red ) {"[%1$s.%2$06d %3$d/%4$s] %5$5s -- %7$s\n"},
129
- }
130
-
131
-
132
- ### Initialize the formatter with a reference to the logger so it can check for log level.
133
- def initialize( logger, settings={} ) # :notnew:
134
- settings = LEVEL_FORMATS.merge( settings )
135
-
136
- @logger = logger
137
- @settings = settings
138
-
139
- super()
140
- end
141
-
142
- ######
143
- public
144
- ######
145
-
146
- # The Logger object associated with the formatter
147
- attr_accessor :logger
148
-
149
- # The formats, by level
150
- attr_accessor :settings
151
-
152
-
153
- ### Log using the format associated with the severity
154
- def call( severity, time, progname, msg )
155
- args = [
156
- time.strftime( '%Y-%m-%d %H:%M:%S' ), # %1$s
157
- time.usec, # %2$d
158
- Process.pid, # %3$d
159
- Thread.current == Thread.main ? 'main' : Thread.object_id, # %4$s
160
- severity, # %5$s
161
- progname, # %6$s
162
- msg # %7$s
163
- ]
164
-
165
- return self.settings[ severity.downcase.to_sym ] % args
166
- end
167
- end # class LogFormatter
168
-
169
-
170
- # An alternate formatter for Logger instances that outputs +div+ HTML
171
- # fragments.
172
- class HtmlFormatter < Logger::Formatter
173
-
174
- # The default HTML fragment that'll be used as the template for each log message.
175
- HTML_LOG_FORMAT = %q{
176
- <div class="log-message %5$s">
177
- <span class="log-time">%1$s.%2$06d</span>
178
- [
179
- <span class="log-pid">%3$d</span>
180
- /
181
- <span class="log-tid">%4$s</span>
182
- ]
183
- <span class="log-level">%5$s</span>
184
- :
185
- <span class="log-name">%6$s</span>
186
- <span class="log-message-text">%7$s</span>
187
- </div>
188
- }
189
-
190
- ### Override the logging formats with ones that generate HTML fragments
191
- def initialize( logger, format=HTML_LOG_FORMAT ) # :notnew:
192
- @logger = logger
193
- @format = format
194
- super()
195
- end
196
-
197
-
198
- ######
199
- public
200
- ######
201
-
202
- # The HTML fragment that will be used as a format() string for the log
203
- attr_accessor :format
204
-
205
-
206
- ### Return a log message composed out of the arguments formatted using the
207
- ### formatter's format string
208
- def call( severity, time, progname, msg )
209
- args = [
210
- time.strftime( '%Y-%m-%d %H:%M:%S' ), # %1$s
211
- time.usec, # %2$d
212
- Process.pid, # %3$d
213
- Thread.current == Thread.main ? 'main' : Thread.object_id, # %4$s
214
- severity.downcase, # %5$s
215
- progname, # %6$s
216
- html_escape( msg ).gsub(/\n/, '<br />') # %7$s
217
- ]
218
-
219
- return self.format % args
220
- end
221
-
222
-
223
- #######
224
- private
225
- #######
226
-
227
- ### Return a copy of the specified +string+ with HTML special characters escaped as
228
- ### HTML entities.
229
- def html_escape( string )
230
- return string.
231
- gsub( /&/, '&amp;' ).
232
- gsub( /</, '&lt;' ).
233
- gsub( />/, '&gt;' )
234
- end
235
-
236
- end # class HtmlLogFormatter
237
-
238
- end # module Mongrel2
239
-
240
- # vim: set nosta noet ts=4 sw=4:
241
-
@@ -1,143 +0,0 @@
1
- #!/usr/bin/ruby
2
-
3
- require 'logger'
4
-
5
- require 'mongrel2' unless defined?( Mongrel2 )
6
- require 'mongrel2/constants'
7
-
8
-
9
- module Mongrel2
10
-
11
- # Add logging to a Mongrel2 class. Including classes get #log and #log_debug methods.
12
- module Loggable
13
-
14
- # A logging proxy class that wraps calls to the logger into calls that include
15
- # the name of the calling class.
16
- class ClassNameProxy
17
-
18
- ### Create a new proxy for the given +klass+.
19
- def initialize( klass, force_debug=false )
20
- @classname = klass.name
21
- @force_debug = force_debug
22
- end
23
-
24
- ### Delegate debug messages to the global logger with the appropriate class name.
25
- def debug( msg=nil, &block )
26
- Mongrel2.logger.add( Logger::DEBUG, msg, @classname, &block )
27
- end
28
-
29
- ### Delegate info messages to the global logger with the appropriate class name.
30
- def info( msg=nil, &block )
31
- return self.debug( msg, &block ) if @force_debug
32
- Mongrel2.logger.add( Logger::INFO, msg, @classname, &block )
33
- end
34
-
35
- ### Delegate warn messages to the global logger with the appropriate class name.
36
- def warn( msg=nil, &block )
37
- return self.debug( msg, &block ) if @force_debug
38
- Mongrel2.logger.add( Logger::WARN, msg, @classname, &block )
39
- end
40
-
41
- ### Delegate error messages to the global logger with the appropriate class name.
42
- def error( msg=nil, &block )
43
- return self.debug( msg, &block ) if @force_debug
44
- Mongrel2.logger.add( Logger::ERROR, msg, @classname, &block )
45
- end
46
-
47
- ### Delegate fatal messages to the global logger with the appropriate class name.
48
- def fatal( msg=nil, &block )
49
- Mongrel2.logger.add( Logger::FATAL, msg, @classname, &block )
50
- end
51
-
52
- end # ClassNameProxy
53
-
54
- #########
55
- protected
56
- #########
57
-
58
- ### Copy constructor -- clear the original's log proxy.
59
- def initialize_copy( original )
60
- @log_proxy = @log_debug_proxy = nil
61
- super
62
- end
63
-
64
- ### Return the proxied logger.
65
- def log
66
- @log_proxy ||= ClassNameProxy.new( self.class )
67
- end
68
-
69
- ### Return a proxied "debug" logger that ignores other level specification.
70
- def log_debug
71
- @log_debug_proxy ||= ClassNameProxy.new( self.class, true )
72
- end
73
-
74
- end # module Loggable
75
-
76
- # A collection of ANSI color utility functions
77
- module ANSIColorUtilities
78
-
79
- # Set some ANSI escape code constants (Shamelessly stolen from Perl's
80
- # Term::ANSIColor by Russ Allbery <rra@stanford.edu> and Zenin <zenin@best.com>
81
- ANSI_ATTRIBUTES = {
82
- 'clear' => 0,
83
- 'reset' => 0,
84
- 'bold' => 1,
85
- 'dark' => 2,
86
- 'underline' => 4,
87
- 'underscore' => 4,
88
- 'blink' => 5,
89
- 'reverse' => 7,
90
- 'concealed' => 8,
91
-
92
- 'black' => 30, 'on_black' => 40,
93
- 'red' => 31, 'on_red' => 41,
94
- 'green' => 32, 'on_green' => 42,
95
- 'yellow' => 33, 'on_yellow' => 43,
96
- 'blue' => 34, 'on_blue' => 44,
97
- 'magenta' => 35, 'on_magenta' => 45,
98
- 'cyan' => 36, 'on_cyan' => 46,
99
- 'white' => 37, 'on_white' => 47
100
- }
101
-
102
- ###############
103
- module_function
104
- ###############
105
-
106
- ### Create a string that contains the ANSI codes specified and return it
107
- def ansi_code( *attributes )
108
- attributes.flatten!
109
- attributes.collect! {|at| at.to_s }
110
- return '' unless /(?:vt10[03]|xterm(?:-color)?|linux|screen)/i =~ ENV['TERM']
111
- attributes = ANSI_ATTRIBUTES.values_at( *attributes ).compact.join(';')
112
-
113
- if attributes.empty?
114
- return ''
115
- else
116
- return "\e[%sm" % attributes
117
- end
118
- end
119
-
120
-
121
- ### Colorize the given +string+ with the specified +attributes+ and return it, handling
122
- ### line-endings, color reset, etc.
123
- def colorize( *args )
124
- string = ''
125
-
126
- if block_given?
127
- string = yield
128
- else
129
- string = args.shift
130
- end
131
-
132
- ending = string[/(\s)$/] || ''
133
- string = string.rstrip
134
-
135
- return ansi_code( args.flatten ) + string + ansi_code( 'reset' ) + ending
136
- end
137
-
138
- end # module ANSIColorUtilities
139
-
140
- end # module Mongrel2
141
-
142
- # vim: set nosta noet ts=4 sw=4:
143
-