clogger 2.1.0 → 2.2.0
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 +4 -4
- data/.olddoc.yml +0 -1
- data/GIT-VERSION-GEN +1 -1
- data/clogger.gemspec +11 -12
- data/ext/clogger_ext/clogger.c +21 -5
- data/ext/clogger_ext/extconf.rb +1 -0
- data/lib/clogger/pure.rb +2 -2
- data/test/test_clogger_to_path.rb +9 -0
- metadata +18 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6fad2c597e9da6f1f0799f727b478bc7eb3fda9e
|
4
|
+
data.tar.gz: 51d9cd99ef1d7a077a81eb781fd3b0991d431375
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a64530e68a68736f3e5793badd51a1d2564dd2d5fae68b5b86707856232a933d40266a558bb4fe59ad46abfa6ba9d450a057a0f04192d647654d0163d68954b4
|
7
|
+
data.tar.gz: fb4421ce77d637fc99bb8321332dc5544cb050326aa634ba6d0ec4c1367954176001bd4d370ac3134016b0ba4738a9a0d32de8df5d41392595a0e2338284b941
|
data/.olddoc.yml
CHANGED
@@ -3,7 +3,6 @@ rdoc_url: https://bogomips.org/clogger/
|
|
3
3
|
cgit_url: https://bogomips.org/clogger.git
|
4
4
|
git_url: git://bogomips.org/clogger.git
|
5
5
|
public_email: clogger-public@bogomips.org
|
6
|
-
private_email: clogger@bogomips.org
|
7
6
|
ml_url:
|
8
7
|
- https://bogomips.org/clogger-public/
|
9
8
|
- http://ou63pmih66umazou.onion/clogger-public/
|
data/GIT-VERSION-GEN
CHANGED
data/clogger.gemspec
CHANGED
@@ -1,24 +1,23 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
require 'olddoc'
|
4
|
-
extend Olddoc::Gemspec
|
5
|
-
name, summary, title = readme_metadata
|
1
|
+
manifest = File.exist?('.manifest') ?
|
2
|
+
IO.readlines('.manifest').map!(&:chomp!) : `git ls-files`.split("\n")
|
6
3
|
|
7
4
|
Gem::Specification.new do |s|
|
8
5
|
s.name = %q{clogger}
|
9
|
-
s.version = ENV[
|
10
|
-
s.homepage =
|
6
|
+
s.version = (ENV['VERSION'] || '2.1.0').dup
|
7
|
+
s.homepage = 'https://bogomips.org/clogger/'
|
11
8
|
s.authors = ["cloggers"]
|
12
|
-
s.
|
13
|
-
s.
|
14
|
-
s.
|
9
|
+
s.summary = 'configurable request logging for Rack'
|
10
|
+
s.description = File.read('README').split("\n\n")[1]
|
11
|
+
s.email = %q{clogger-public@bogomips.org}
|
12
|
+
s.extra_rdoc_files = IO.readlines('.document').map!(&:chomp!).keep_if do |f|
|
13
|
+
File.exist?(f)
|
14
|
+
end
|
15
15
|
s.files = manifest
|
16
|
-
s.summary = summary
|
17
16
|
s.test_files = %w(test/test_clogger.rb test/test_clogger_to_path.rb)
|
18
17
|
|
19
18
|
# HeaderHash wasn't case-insensitive in old versions
|
20
19
|
s.add_dependency(%q<rack>, ['>= 1.0', '< 3.0'])
|
20
|
+
s.add_development_dependency('test-unit', '~> 3.0')
|
21
21
|
s.extensions = %w(ext/clogger_ext/extconf.rb)
|
22
|
-
|
23
22
|
s.licenses = %w(LGPL-2.1+)
|
24
23
|
end
|
data/ext/clogger_ext/clogger.c
CHANGED
@@ -29,6 +29,7 @@
|
|
29
29
|
* under.
|
30
30
|
*/
|
31
31
|
static clockid_t hopefully_CLOCK_MONOTONIC;
|
32
|
+
static VALUE mark_ary;
|
32
33
|
|
33
34
|
static void check_clock(void)
|
34
35
|
{
|
@@ -682,6 +683,7 @@ static VALUE cwrite(struct clogger *c)
|
|
682
683
|
|
683
684
|
if (c->fd >= 0) {
|
684
685
|
write_full(c->fd, RSTRING_PTR(dst), RSTRING_LEN(dst));
|
686
|
+
/* no need for RB_GC_GUARD(dst) here, marked as c->log_buf */
|
685
687
|
} else {
|
686
688
|
VALUE logger = c->logger;
|
687
689
|
|
@@ -948,7 +950,7 @@ static VALUE clogger_init_copy(VALUE clone, VALUE orig)
|
|
948
950
|
|
949
951
|
#define CONST_GLOBAL_STR2(var, val) do { \
|
950
952
|
g_##var = rb_obj_freeze(rb_str_new(val, sizeof(val) - 1)); \
|
951
|
-
|
953
|
+
rb_ary_push(mark_ary, g_##var); \
|
952
954
|
} while (0)
|
953
955
|
|
954
956
|
#define CONST_GLOBAL_STR(val) CONST_GLOBAL_STR2(val, #val)
|
@@ -961,14 +963,23 @@ static VALUE clogger_init_copy(VALUE clone, VALUE orig)
|
|
961
963
|
* used to delegate +:to_path+ checks for Rack webservers that optimize
|
962
964
|
* static file serving
|
963
965
|
*/
|
964
|
-
static VALUE respond_to(VALUE
|
966
|
+
static VALUE respond_to(int argc, VALUE *argv, VALUE self)
|
965
967
|
{
|
966
968
|
struct clogger *c = clogger_get(self);
|
967
|
-
|
969
|
+
VALUE method, include_all;
|
970
|
+
ID id;
|
968
971
|
|
972
|
+
rb_scan_args(argc, argv, "11", &method, &include_all);
|
973
|
+
id = rb_to_id(method);
|
969
974
|
if (close_id == id)
|
970
975
|
return Qtrue;
|
971
|
-
|
976
|
+
|
977
|
+
#ifdef HAVE_RB_OBJ_RESPOND_TO
|
978
|
+
return rb_obj_respond_to(c->body, id, RTEST(include_all));
|
979
|
+
#endif
|
980
|
+
if (argc == 1)
|
981
|
+
return rb_respond_to(c->body, id);
|
982
|
+
return rb_funcallv(c->body, respond_to_id, argc, argv);
|
972
983
|
}
|
973
984
|
|
974
985
|
/*
|
@@ -1014,6 +1025,9 @@ void Init_clogger_ext(void)
|
|
1014
1025
|
{
|
1015
1026
|
VALUE tmp;
|
1016
1027
|
|
1028
|
+
mark_ary = rb_ary_new();
|
1029
|
+
rb_global_variable(&mark_ary);
|
1030
|
+
|
1017
1031
|
check_clock();
|
1018
1032
|
|
1019
1033
|
write_id = rb_intern("write");
|
@@ -1039,7 +1053,7 @@ void Init_clogger_ext(void)
|
|
1039
1053
|
rb_define_method(cClogger, "wrap_body?", clogger_wrap_body, 0);
|
1040
1054
|
rb_define_method(cClogger, "reentrant?", clogger_reentrant, 0);
|
1041
1055
|
rb_define_method(cClogger, "to_path", to_path, 0);
|
1042
|
-
rb_define_method(cClogger, "respond_to?", respond_to, 1);
|
1056
|
+
rb_define_method(cClogger, "respond_to?", respond_to, -1);
|
1043
1057
|
rb_define_method(cClogger, "body", body, 0);
|
1044
1058
|
CONST_GLOBAL_STR(REMOTE_ADDR);
|
1045
1059
|
CONST_GLOBAL_STR(HTTP_X_FORWARDED_FOR);
|
@@ -1059,4 +1073,6 @@ void Init_clogger_ext(void)
|
|
1059
1073
|
tmp = rb_const_get(rb_cObject, rb_intern("Rack"));
|
1060
1074
|
tmp = rb_const_get(tmp, rb_intern("Utils"));
|
1061
1075
|
cHeaderHash = rb_const_get(tmp, rb_intern("HeaderHash"));
|
1076
|
+
|
1077
|
+
rb_obj_freeze(mark_ary);
|
1062
1078
|
}
|
data/ext/clogger_ext/extconf.rb
CHANGED
@@ -22,6 +22,7 @@ begin
|
|
22
22
|
have_func('rb_thread_call_without_gvl', 'ruby/thread.h')
|
23
23
|
have_func('rb_thread_blocking_region', 'ruby.h')
|
24
24
|
have_func('rb_thread_io_blocking_region', 'ruby.h')
|
25
|
+
have_func('rb_obj_respond_to', 'ruby/intern.h')
|
25
26
|
create_makefile('clogger_ext')
|
26
27
|
rescue Object => err
|
27
28
|
warn "E: #{err.inspect}"
|
data/lib/clogger/pure.rb
CHANGED
@@ -77,8 +77,8 @@ class Clogger
|
|
77
77
|
@logger.respond_to?(:fileno) ? @logger.fileno : nil
|
78
78
|
end
|
79
79
|
|
80
|
-
def respond_to?(
|
81
|
-
:close ==
|
80
|
+
def respond_to?(method, include_all=false)
|
81
|
+
:close == method.to_sym || @body.respond_to?(method, include_all)
|
82
82
|
end
|
83
83
|
|
84
84
|
def to_path
|
@@ -14,6 +14,10 @@ class MyBody < Struct.new(:to_path, :closed)
|
|
14
14
|
def close
|
15
15
|
self.closed = true
|
16
16
|
end
|
17
|
+
|
18
|
+
private
|
19
|
+
def privtest
|
20
|
+
end
|
17
21
|
end
|
18
22
|
|
19
23
|
class TestCloggerToPath < Test::Unit::TestCase
|
@@ -59,6 +63,11 @@ class TestCloggerToPath < Test::Unit::TestCase
|
|
59
63
|
status, headers, body = app.call(@req)
|
60
64
|
assert_instance_of(Clogger, body)
|
61
65
|
check_body(body)
|
66
|
+
|
67
|
+
assert ! body.respond_to?(:privtest)
|
68
|
+
assert body.respond_to?(:privtest, true)
|
69
|
+
assert ! body.respond_to?(:privtest, false)
|
70
|
+
|
62
71
|
assert logger.string.empty?
|
63
72
|
assert_equal tmp.path, body.to_path
|
64
73
|
body.close
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: clogger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- cloggers
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-05-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rack
|
@@ -30,19 +30,30 @@ dependencies:
|
|
30
30
|
- - "<"
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: '3.0'
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: test-unit
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - "~>"
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '3.0'
|
40
|
+
type: :development
|
41
|
+
prerelease: false
|
42
|
+
version_requirements: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - "~>"
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '3.0'
|
33
47
|
description: |-
|
34
48
|
clogger is Rack middleware for logging HTTP requests. The log format
|
35
49
|
is customizable so you can specify exactly which fields to log.
|
36
|
-
email: clogger@bogomips.org
|
50
|
+
email: clogger-public@bogomips.org
|
37
51
|
executables: []
|
38
52
|
extensions:
|
39
53
|
- ext/clogger_ext/extconf.rb
|
40
54
|
extra_rdoc_files:
|
41
55
|
- README
|
42
56
|
- NEWS
|
43
|
-
- lib/clogger.rb
|
44
|
-
- lib/clogger/format.rb
|
45
|
-
- lib/clogger/pure.rb
|
46
57
|
- ext/clogger_ext/clogger.c
|
47
58
|
- LICENSE
|
48
59
|
files:
|
@@ -95,7 +106,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
95
106
|
version: '0'
|
96
107
|
requirements: []
|
97
108
|
rubyforge_project:
|
98
|
-
rubygems_version: 2.6.
|
109
|
+
rubygems_version: 2.6.12
|
99
110
|
signing_key:
|
100
111
|
specification_version: 4
|
101
112
|
summary: configurable request logging for Rack
|