leafy-rack 0.4.0-java

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.
@@ -0,0 +1,63 @@
1
+ require_relative 'setup'
2
+
3
+ require 'leafy/rack/ping'
4
+ require 'yaml'
5
+ require 'json'
6
+
7
+ describe Leafy::Rack::Ping do
8
+
9
+ subject { Leafy::Rack::Ping }
10
+
11
+ let( :expected_headers ) do
12
+ { 'Content-Type' => 'text/plain',
13
+ 'Cache-Control' => 'must-revalidate,no-cache,no-store' }
14
+ end
15
+
16
+ let( :result ){ [ 200, nil, [] ] }
17
+ let( :app ) do
18
+ Proc.new() { result }
19
+ end
20
+
21
+ it 'has response' do
22
+ status, headers, body = subject.response
23
+ expect( status ).to eq 200
24
+ expect( headers.to_yaml).to eq expected_headers.to_yaml
25
+ expect( body ).to eq ['pong']
26
+ end
27
+
28
+ describe 'default path' do
29
+ subject { Leafy::Rack::Ping.new( app ) }
30
+
31
+ it 'passes request if not matches the given path' do
32
+ env = { 'PATH_INFO'=> '/something' }
33
+ expect( subject.call( env ) ).to eq result
34
+ end
35
+
36
+ it 'pongs on ping path' do
37
+ env = { 'PATH_INFO'=> '/ping' }
38
+ status, headers, body = subject.call( env )
39
+ expect( status ).to eq 200
40
+ expect( headers.to_yaml).to eq expected_headers.to_yaml
41
+ expect( body ).to eq ['pong']
42
+ end
43
+ end
44
+
45
+ describe 'custom path' do
46
+ subject { Leafy::Rack::Ping.new( app, '/custom' ) }
47
+
48
+ it 'passes request if not matches the given path' do
49
+ env = { 'PATH_INFO'=> '/something' }
50
+ expect( subject.call( env ) ).to eq result
51
+ env = { 'PATH_INFO'=> '/ping' }
52
+ expect( subject.call( env ) ).to eq result
53
+ end
54
+
55
+ it 'pongs on ping path' do
56
+ env = { 'PATH_INFO'=> '/custom' }
57
+ status, headers, body = subject.call( env )
58
+ expect( status ).to eq 200
59
+ expect( headers.to_yaml).to eq expected_headers.to_yaml
60
+ expect( body ).to eq ['pong']
61
+ end
62
+ end
63
+ end
data/spec/setup.rb ADDED
@@ -0,0 +1,3 @@
1
+ $LOAD_PATH.unshift File.expand_path( '../../lib', __FILE__ )
2
+ $LOAD_PATH.unshift File.expand_path( '../../../leafy-health/lib', __FILE__ )
3
+ $LOAD_PATH.unshift File.expand_path( '../../../leafy-metrics/lib', __FILE__ )
@@ -0,0 +1,59 @@
1
+ require_relative 'setup'
2
+
3
+ require 'leafy/rack/thread_dump'
4
+ require 'yaml'
5
+ require 'json'
6
+
7
+ describe Leafy::Rack::ThreadDump do
8
+
9
+ subject { Leafy::Rack::ThreadDump }
10
+
11
+ let( :expected_headers ) do
12
+ { 'Content-Type' => 'text/plain',
13
+ 'Cache-Control' => 'must-revalidate,no-cache,no-store' }
14
+ end
15
+
16
+ let( :result ){ [ 200, nil, [] ] }
17
+ let( :app ) do
18
+ Proc.new() { result }
19
+ end
20
+
21
+ it 'has response' do
22
+ status, headers, body = subject.response
23
+ expect( status ).to eq 200
24
+ expect( headers.to_yaml).to eq expected_headers.to_yaml
25
+ expect( body.join.count( "\n" ) ).to be > 100
26
+ end
27
+
28
+ describe 'default path' do
29
+ it 'passes request if not matches the given path' do
30
+ env = { 'PATH_INFO'=> '/something' }
31
+ expect( subject.new( app ).call( env ) ).to eq result
32
+ end
33
+
34
+ it 'thread dump on threads path' do
35
+ env = { 'PATH_INFO'=> '/threads' }
36
+ status, headers, body = subject.new( app ).call( env )
37
+ expect( status ).to eq 200
38
+ expect( headers.to_yaml).to eq expected_headers.to_yaml
39
+ expect( body.join.count( "\n" ) ).to be > 100
40
+ end
41
+ end
42
+
43
+ describe 'custom path' do
44
+ it 'passes request if not matches the given path' do
45
+ env = { 'PATH_INFO'=> '/something' }
46
+ expect( subject.new( app, '/custom' ).call( env ) ).to eq result
47
+ env = { 'PATH_INFO'=> '/threads' }
48
+ expect( subject.new( app, '/custom' ).call( env ) ).to eq result
49
+ end
50
+
51
+ it 'thread dump on threads path' do
52
+ env = { 'PATH_INFO'=> '/custom' }
53
+ status, headers, body = subject.new( app, '/custom' ).call( env )
54
+ expect( status ).to eq 200
55
+ expect( headers.to_yaml).to eq expected_headers.to_yaml
56
+ expect( body.join.count( "\n" ) ).to be > 100
57
+ end
58
+ end
59
+ end
metadata ADDED
@@ -0,0 +1,165 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: leafy-rack
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.4.0
5
+ platform: java
6
+ authors:
7
+ - christian meier
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-04-21 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ~>
17
+ - !ruby/object:Gem::Version
18
+ version: 0.1.8
19
+ name: jar-dependencies
20
+ prerelease: false
21
+ type: :runtime
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: 0.1.8
27
+ - !ruby/object:Gem::Dependency
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ~>
31
+ - !ruby/object:Gem::Version
32
+ version: 0.4.0
33
+ name: leafy-metrics
34
+ prerelease: false
35
+ type: :runtime
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: 0.4.0
41
+ - !ruby/object:Gem::Dependency
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ~>
45
+ - !ruby/object:Gem::Version
46
+ version: 0.4.0
47
+ name: leafy-health
48
+ prerelease: false
49
+ type: :runtime
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: 0.4.0
55
+ - !ruby/object:Gem::Dependency
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ~>
59
+ - !ruby/object:Gem::Version
60
+ version: '3.1'
61
+ name: rspec
62
+ prerelease: false
63
+ type: :development
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ~>
67
+ - !ruby/object:Gem::Version
68
+ version: '3.1'
69
+ - !ruby/object:Gem::Dependency
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ~>
73
+ - !ruby/object:Gem::Version
74
+ version: 0.8.7
75
+ name: yard
76
+ prerelease: false
77
+ type: :development
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ~>
81
+ - !ruby/object:Gem::Version
82
+ version: 0.8.7
83
+ - !ruby/object:Gem::Dependency
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ~>
87
+ - !ruby/object:Gem::Version
88
+ version: '10.2'
89
+ name: rake
90
+ prerelease: false
91
+ type: :development
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ~>
95
+ - !ruby/object:Gem::Version
96
+ version: '10.2'
97
+ description: rack middleware to expose leafy metrics/health data as well a ping rack and a thread-dump rack
98
+ email:
99
+ - christian.meier@lookout.com
100
+ executables: []
101
+ extensions: []
102
+ extra_rdoc_files: []
103
+ files:
104
+ - .gitignore
105
+ - Gemfile
106
+ - LICENSE
107
+ - README.md
108
+ - Rakefile
109
+ - leafy-rack.gemspec
110
+ - lib/leafy-rack.rb
111
+ - lib/leafy-rack_jars.rb
112
+ - lib/leafy/instrumented/basic_instrumented.rb
113
+ - lib/leafy/instrumented/collected_instrumented.rb
114
+ - lib/leafy/instrumented/instrumented.rb
115
+ - lib/leafy/json/health_writer.rb
116
+ - lib/leafy/json/json_writer.rb
117
+ - lib/leafy/json/metrics_writer.rb
118
+ - lib/leafy/rack.rb
119
+ - lib/leafy/rack/admin.rb
120
+ - lib/leafy/rack/health.rb
121
+ - lib/leafy/rack/instrumented.rb
122
+ - lib/leafy/rack/metrics.rb
123
+ - lib/leafy/rack/ping.rb
124
+ - lib/leafy/rack/thread_dump.rb
125
+ - lib/leafy/rack/version.rb
126
+ - spec/admin_rack_spec.rb
127
+ - spec/basic_instrumented_spec.rb
128
+ - spec/collected_instrumented_spec.rb
129
+ - spec/health_rack_spec.rb
130
+ - spec/health_writer_spec.rb
131
+ - spec/instrumented_rack_spec.rb
132
+ - spec/instrumented_spec.rb
133
+ - spec/metrics_rack_spec.rb
134
+ - spec/metrics_writer_spec.rb
135
+ - spec/ping_rack_spec.rb
136
+ - spec/setup.rb
137
+ - spec/thread_dump_spec.rb
138
+ homepage: https://github.com/lookout/leafy
139
+ licenses:
140
+ - MIT
141
+ metadata: {}
142
+ post_install_message:
143
+ rdoc_options: []
144
+ require_paths:
145
+ - lib
146
+ required_ruby_version: !ruby/object:Gem::Requirement
147
+ requirements:
148
+ - - '>='
149
+ - !ruby/object:Gem::Version
150
+ version: '0'
151
+ required_rubygems_version: !ruby/object:Gem::Requirement
152
+ requirements:
153
+ - - '>='
154
+ - !ruby/object:Gem::Version
155
+ version: '0'
156
+ requirements:
157
+ - jar io.dropwizard.metrics:metrics-json, 3.1.0
158
+ - jar io.dropwizard.metrics:metrics-jvm, 3.1.0
159
+ rubyforge_project:
160
+ rubygems_version: 2.4.5
161
+ signing_key:
162
+ specification_version: 4
163
+ summary: rack middleware to expose leafy metrics/health data and more
164
+ test_files: []
165
+ has_rdoc: