rack-webprofiler 0.1.0.pre.beta2 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -13
- data/CHANGELOG.md +36 -12
- data/README.md +16 -12
- data/docs/DSL.md +152 -0
- data/docs/GettingStarted.md +51 -0
- data/docs/README.md +6 -0
- data/lib/rack/templates/assets/css/profiler.css +1 -1
- data/lib/rack/templates/assets/css/rwpt.css +1 -1
- data/lib/rack/templates/assets/sass/_variables.scss +21 -2
- data/lib/rack/templates/assets/sass/profiler.scss +73 -61
- data/lib/rack/templates/assets/sass/rwpt.scss +2 -2
- data/lib/rack/templates/panel/show.erb +4 -4
- data/lib/rack/templates/profiler.erb +4 -0
- data/lib/rack/web_profiler/collector.rb +197 -125
- data/lib/rack/web_profiler/collectors/rack_collector.rb +74 -0
- data/lib/rack/web_profiler/{collector/rack → collectors}/request_collector.rb +43 -60
- data/lib/rack/web_profiler/{collector → collectors}/ruby_collector.rb +4 -3
- data/lib/rack/web_profiler/{collector → collectors}/time_collector.rb +12 -6
- data/lib/rack/web_profiler/collectors.rb +21 -27
- data/lib/rack/web_profiler/config.rb +4 -9
- data/lib/rack/web_profiler/controller.rb +131 -126
- data/lib/rack/web_profiler/engine.rb +10 -14
- data/lib/rack/web_profiler/model.rb +74 -23
- data/lib/rack/web_profiler/request.rb +22 -7
- data/lib/rack/web_profiler/response.rb +27 -0
- data/lib/rack/web_profiler/rouge/html_formatter.rb +25 -0
- data/lib/rack/web_profiler/router.rb +11 -6
- data/lib/rack/web_profiler/version.rb +1 -1
- data/lib/rack/web_profiler/view.rb +255 -139
- data/lib/rack/web_profiler.rb +47 -4
- data/rack-webprofiler.gemspec +1 -3
- metadata +32 -32
- data/lib/rack/web_profiler/collector/debug_collector.rb +0 -31
- data/lib/rack/web_profiler/collector/erb_collector.rb +0 -0
- data/lib/rack/web_profiler/collector/performance_collector.rb +0 -1
- data/lib/rack/web_profiler/collector/rack/rack_collector.rb +0 -23
- data/lib/rack/web_profiler/collector/view.rb +0 -44
- data/lib/rack/web_profiler/model/collection_record.rb +0 -46
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
MTUxNjM4MTQ2YmM4YTU2N2Y2ODZhNTg2ZDg2NmE3NjlkN2FjNjVkZg==
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 391fd545b686fee4c24da79c5de737d89f82f9a3
|
4
|
+
data.tar.gz: 753982446366d82875aa09788bd8312815d36304
|
7
5
|
SHA512:
|
8
|
-
metadata.gz:
|
9
|
-
|
10
|
-
NzcwMjE4NjI1ODBkOTg4OGViZDA4NGViYmY1NzI0ZjBlZTQ4NjRkM2VlZmE2
|
11
|
-
MjJjYjk0OWVhOTg0ZWY0ZGQ4NTZjZjcwYmU1ZGUyMGJhZjMxYWI=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
YjczODk2M2M3Y2RmNThiZDdjNWNiNjVkYzJlYWI0MjMzMWU2MmE3YmNiYWNk
|
14
|
-
NWNmODFmNmIwNWQ1ODBiNjExMWQ2YjQxYzA2ZDk3YzQ3Yjg0NTcxNmQ2ZDU0
|
15
|
-
MmVhM2U2ZmMzYjY1NTgxZmYyMmQyMmIwOTNhYTk3ZDMxZmFhNzg=
|
6
|
+
metadata.gz: 815e901f2c22b04a836c273ff5ef17dd3df2f5fd3dfb0446f9ca3dc7c2115972dc0d719626a67a7c89bf93ea8a824ca6de050383e342ffc0344af00ae3ef2b07
|
7
|
+
data.tar.gz: c5a8603c675dad679b66f1389ff89395232e69a132adcb7652da2e1544eaa6e36f582cf9f974aa033960db15aac11918a57cfb2f097599adbae7fddabe8a53bb
|
data/CHANGELOG.md
CHANGED
@@ -7,26 +7,50 @@
|
|
7
7
|
* Create a collector to show informations about CPU usage.
|
8
8
|
* Create a collector to list all `.inspect` method calls.
|
9
9
|
* Create a collector to list the HTTP calls.
|
10
|
-
* Create a collector for Devise gem.
|
11
|
-
* Create a collector for ActiveRecord.
|
12
|
-
* Create a collector for Sequel.
|
13
|
-
* Create a collector for SQL requests without ActiveRecord.
|
14
|
-
* Create a collector to show the Rails logger informations.
|
15
|
-
* Create a collector to list jobs created with ActiveJob.
|
16
10
|
* Create a collector to list the ajax requests.
|
17
|
-
* Have a friendly UI.
|
18
11
|
* Catch 500 or exceptions.
|
19
12
|
|
20
13
|
|
21
|
-
|
14
|
+
|
15
|
+
|
16
|
+
## v0.1.0 (WIP)
|
22
17
|
|
23
18
|
### Features
|
24
19
|
|
25
|
-
*
|
26
|
-
*
|
20
|
+
* Separate DSL `collector_name` in `identifier` and `name` methods.
|
21
|
+
* Start optimizing css.
|
22
|
+
* Improve documentation and code comments.
|
23
|
+
* Move collectors into collectors folder instead collector.
|
24
|
+
* Cleanup files.
|
25
|
+
* Improve tests.
|
27
26
|
|
27
|
+
### Fixes
|
28
28
|
|
29
|
-
|
29
|
+
* Debug SQLite database stabilty by using a single thread.
|
30
|
+
|
31
|
+
|
32
|
+
## v0.1.0.beta2
|
33
|
+
|
34
|
+
### Features
|
35
|
+
|
36
|
+
* Create a view class to manage template and create helpers. And
|
37
|
+
cleanup all views.
|
38
|
+
* Remove Sinatra and Rails linked elements (now in separate gems).
|
39
|
+
* Improve stability.
|
40
|
+
|
41
|
+
|
42
|
+
## v0.1.0.beta1
|
43
|
+
|
44
|
+
### Features
|
45
|
+
|
46
|
+
* Friendly UI.
|
47
|
+
* Improve development environment.
|
48
|
+
* Complete collectors.
|
49
|
+
* Serve toolbar assets dynamically.
|
50
|
+
* Improve tests.
|
51
|
+
|
52
|
+
|
53
|
+
## v0.1.0.pre.alpha1
|
30
54
|
|
31
55
|
### Features
|
32
56
|
|
@@ -36,4 +60,4 @@
|
|
36
60
|
* Create a execution time collector.
|
37
61
|
* Create a collector to show which version of ruby it is used.
|
38
62
|
* Create a collector to show the Rack request informations.
|
39
|
-
* Create a collector to show the
|
63
|
+
* Create a collector to show which Rack version is used and the current environment.
|
data/README.md
CHANGED
@@ -3,15 +3,15 @@
|
|
3
3
|
A Rack profiler for web application.
|
4
4
|
|
5
5
|
[![Version ](http://img.shields.io/gem/v/rack-webprofiler.svg) ](https://rubygems.org/gems/rack-webprofiler)
|
6
|
-
[![Travis CI ](http://img.shields.io/travis/
|
7
|
-
[![Gitter ](https://img.shields.io/gitter/room/
|
6
|
+
[![Travis CI ](http://img.shields.io/travis/rack-webprofiler/rack-webprofiler/master.svg) ](https://travis-ci.org/rack-profiler/rack-webprofiler)
|
7
|
+
[![Gitter ](https://img.shields.io/gitter/room/rack-webprofiler/rack-webprofiler.svg) ](https://gitter.im/rack-webprofiler/rack-webprofiler)
|
8
8
|
|
9
9
|
## Installation
|
10
10
|
|
11
11
|
Add this line to your application's Gemfile:
|
12
12
|
|
13
13
|
```ruby
|
14
|
-
gem
|
14
|
+
gem "rack-webprofiler"
|
15
15
|
```
|
16
16
|
|
17
17
|
And then execute:
|
@@ -22,7 +22,7 @@ Or install it yourself as:
|
|
22
22
|
|
23
23
|
$ gem install rack-webprofiler
|
24
24
|
|
25
|
-
###
|
25
|
+
### Usage
|
26
26
|
|
27
27
|
```ruby
|
28
28
|
home = lambda { |_env|
|
@@ -44,19 +44,22 @@ You can specify the temporary directory. It is used to save the SQlite database.
|
|
44
44
|
|
45
45
|
```ruby
|
46
46
|
use Rack::WebProfiler, tmp_dir: File.expand_path("/tmp", __FILE__)
|
47
|
-
```
|
48
|
-
|
49
|
-
## Usage
|
50
47
|
|
51
|
-
|
52
|
-
|
53
|
-
HTTP headers `X-RackWebProfiler-Token` `X-RackWebProfiler-Url`.
|
48
|
+
# OR
|
54
49
|
|
50
|
+
use Rack::WebProfiler.config do |c|
|
51
|
+
c.tmp_dir = File.expand_path("/tmp", __FILE__)
|
52
|
+
end
|
53
|
+
```
|
55
54
|
|
56
55
|
## Examples
|
57
56
|
|
58
57
|
See [the examples](./examples).
|
59
58
|
|
59
|
+
## Documentation
|
60
|
+
|
61
|
+
See [the documentation](./docs).
|
62
|
+
|
60
63
|
## Development
|
61
64
|
|
62
65
|
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
@@ -71,8 +74,9 @@ Bug reports and pull requests are welcome on GitHub at https://github.com/nicola
|
|
71
74
|
|
72
75
|
## Contributors
|
73
76
|
|
74
|
-
*
|
75
|
-
*
|
77
|
+
* [@Thomasdc_](https://twitter.com/Thomasdc_) — Design
|
78
|
+
* [@furiouzz](https://github.com/furiouzz) — FrontEnd
|
79
|
+
* [@flo-sch](https://github.com/flo-sch) — FrontEnd
|
76
80
|
|
77
81
|
## License
|
78
82
|
|
data/docs/DSL.md
ADDED
@@ -0,0 +1,152 @@
|
|
1
|
+
# @title Collector DSL
|
2
|
+
|
3
|
+
# Collector DSL
|
4
|
+
|
5
|
+
## Presentation
|
6
|
+
|
7
|
+
{Rack::WebProfiler::Collector::DSL}
|
8
|
+
{Rack::WebProfiler::Collector::DSL::ClassMethods}
|
9
|
+
|
10
|
+
## Collector DSL methods
|
11
|
+
|
12
|
+
### `identifier`
|
13
|
+
|
14
|
+
Technical identifier of the collector.
|
15
|
+
|
16
|
+
**example**
|
17
|
+
|
18
|
+
```ruby
|
19
|
+
identifier "my_collector"
|
20
|
+
```
|
21
|
+
|
22
|
+
### `label`
|
23
|
+
|
24
|
+
The label is shown in panel sidebar.
|
25
|
+
|
26
|
+
**example**
|
27
|
+
|
28
|
+
```ruby
|
29
|
+
label "My Collector"
|
30
|
+
```
|
31
|
+
|
32
|
+
### `icon`
|
33
|
+
|
34
|
+
Base64 encoded image for the icon collector.
|
35
|
+
|
36
|
+
**example**
|
37
|
+
|
38
|
+
```ruby
|
39
|
+
icon <<-'ICON'
|
40
|
+
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8Xw8AAoMBgDTD2qgAAAAASUVORK5CYII=
|
41
|
+
ICON
|
42
|
+
```
|
43
|
+
|
44
|
+
### `position`
|
45
|
+
|
46
|
+
Position of the collector in the toolbar.
|
47
|
+
|
48
|
+
**example**
|
49
|
+
|
50
|
+
```ruby
|
51
|
+
position 2
|
52
|
+
```
|
53
|
+
|
54
|
+
### `collect`
|
55
|
+
|
56
|
+
Place to collect data to store. It give you access to the {Rack::WebProfiler::Request} and the {Rack::WebProfiler::Response}.
|
57
|
+
Inside you could `store` the datas you want. And you also could set a `status`.
|
58
|
+
There is `success`, `warning` and `error` has available `status`.
|
59
|
+
|
60
|
+
**example**
|
61
|
+
|
62
|
+
```ruby
|
63
|
+
collect do |request, response|
|
64
|
+
store :url, request.url
|
65
|
+
store :key, ["v1", "v2"]
|
66
|
+
|
67
|
+
status :success if response.successful?
|
68
|
+
end
|
69
|
+
```
|
70
|
+
|
71
|
+
### `template`
|
72
|
+
|
73
|
+
**example**
|
74
|
+
|
75
|
+
```ruby
|
76
|
+
template "../path/to/template.erb"
|
77
|
+
# Or
|
78
|
+
template __FILE__, type: :DATA
|
79
|
+
```
|
80
|
+
|
81
|
+
### `is_enabled?`
|
82
|
+
|
83
|
+
**example**
|
84
|
+
|
85
|
+
```ruby
|
86
|
+
is_enabled? -> { defined? MyApp }
|
87
|
+
```
|
88
|
+
|
89
|
+
## Collector template
|
90
|
+
|
91
|
+
### `h`
|
92
|
+
### `highlight`
|
93
|
+
### `partial`
|
94
|
+
### `tab_content`
|
95
|
+
### `panel_content`
|
96
|
+
### `data(k)`
|
97
|
+
|
98
|
+
## Collector registration
|
99
|
+
|
100
|
+
It's really simple to register a Collector or an {Array} of collectors.
|
101
|
+
|
102
|
+
```ruby
|
103
|
+
Rack::WebProfiler.register_collector MyCustomCollector
|
104
|
+
Rack::WebProfiler.register_collector [MyCustomCollector, MySecondCustomCollector]
|
105
|
+
```
|
106
|
+
|
107
|
+
You could also unregister a collector
|
108
|
+
|
109
|
+
```ruby
|
110
|
+
Rack::WebProfiler.unregister_collector MyCustomCollector
|
111
|
+
Rack::WebProfiler.unregister_collector [MyCustomCollector, MySecondCustomCollector]
|
112
|
+
```
|
113
|
+
|
114
|
+
|
115
|
+
## Example
|
116
|
+
|
117
|
+
```ruby
|
118
|
+
class MyCustomCollector
|
119
|
+
include Rack::WebProfiler::Collector::DSL
|
120
|
+
|
121
|
+
icon <<-'ICON'
|
122
|
+
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8Xw8AAoMBgDTD2qgAAAAASUVORK5CYII=
|
123
|
+
ICON
|
124
|
+
|
125
|
+
identifier "my_collector"
|
126
|
+
label "My Collector"
|
127
|
+
position 2
|
128
|
+
|
129
|
+
collect do |request, response|
|
130
|
+
store :url, request.url
|
131
|
+
store :key, ["v1", "v2"]
|
132
|
+
|
133
|
+
status :success if response.successful?
|
134
|
+
end
|
135
|
+
|
136
|
+
template __FILE__, type: :DATA
|
137
|
+
|
138
|
+
is_enabled? -> { defined? MyApp }
|
139
|
+
end
|
140
|
+
|
141
|
+
__END__
|
142
|
+
<% tab_content do %>
|
143
|
+
<%=h data(:url) %>
|
144
|
+
<% end %>
|
145
|
+
|
146
|
+
<%# panel_content do %>
|
147
|
+
<ul>
|
148
|
+
<li><%=h data(:url) %></li>
|
149
|
+
<li><%=h data(:key).inspect %></li>
|
150
|
+
</ul>
|
151
|
+
<%# end %>
|
152
|
+
```
|
@@ -0,0 +1,51 @@
|
|
1
|
+
# @title Getting Started Guide
|
2
|
+
|
3
|
+
# Getting Started
|
4
|
+
|
5
|
+
|
6
|
+
|
7
|
+
## Installation
|
8
|
+
|
9
|
+
Add this line to your application's Gemfile:
|
10
|
+
|
11
|
+
```ruby
|
12
|
+
gem "rack-webprofiler"
|
13
|
+
```
|
14
|
+
|
15
|
+
## Usage
|
16
|
+
|
17
|
+
```ruby
|
18
|
+
home = lambda { |_env|
|
19
|
+
[200, { "Content-Type" => "text/html" }, ["<html><body>Hello world!</body></html>"]]
|
20
|
+
}
|
21
|
+
|
22
|
+
builder = Rack::Builder.new do
|
23
|
+
use Rack::WebProfiler
|
24
|
+
|
25
|
+
map('/') { run home }
|
26
|
+
end
|
27
|
+
|
28
|
+
run builder
|
29
|
+
```
|
30
|
+
|
31
|
+
|
32
|
+
## Configuration
|
33
|
+
|
34
|
+
You can specify the temporary directory. It is used to save the SQlite database.
|
35
|
+
|
36
|
+
```ruby
|
37
|
+
use Rack::WebProfiler, tmp_dir: File.expand_path("/tmp", __FILE__)
|
38
|
+
|
39
|
+
# OR
|
40
|
+
|
41
|
+
use Rack::WebProfiler.config do |c|
|
42
|
+
c.tmp_dir = File.expand_path("/tmp", __FILE__)
|
43
|
+
end
|
44
|
+
```
|
45
|
+
|
46
|
+
|
47
|
+
## Create your own collector
|
48
|
+
|
49
|
+
It's quite simple to create your own collector with the DSL. You have to
|
50
|
+
create a new class who include `rack-profiler` [DSL](./DSL.md) then use
|
51
|
+
the methods.
|
data/docs/README.md
ADDED
@@ -1 +1 @@
|
|
1
|
-
@font-face{font-family:'Open Sans';font-style:normal;font-weight:300;src:local("Open Sans Light"),local("OpenSans-Light"),url("https://fonts.gstatic.com/s/opensans/v13/DXI1ORHCpsQm3Vp6mXoaTRampu5_7CjHW5spxoeN3Vs.woff2") format("woff2")}@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;src:local("Open Sans"),local("OpenSans"),url("https://fonts.gstatic.com/s/opensans/v13/cJZKeOuBrn4kERxqtaUH3ZBw1xU1rKptJj_0jans920.woff2") format("woff2")}@font-face{font-family:'Open Sans';font-style:normal;font-weight:600;src:local("Open Sans Semibold"),local("OpenSans-Semibold"),url("https://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNShampu5_7CjHW5spxoeN3Vs.woff2") format("woff2")}@font-face{font-family:'Open Sans';font-style:normal;font-weight:700;src:local("Open Sans Bold"),local("OpenSans-Bold"),url("https://fonts.gstatic.com/s/opensans/v13/k3k702ZOKiLJc3WVjuplzBampu5_7CjHW5spxoeN3Vs.woff2") format("woff2")}@font-face{font-family:'Open Sans';font-style:normal;font-weight:800;src:local("Open Sans Extrabold"),local("OpenSans-Extrabold"),url("https://fonts.gstatic.com/s/opensans/v13/EInbV5DfGHOiMmvb1Xr-hhampu5_7CjHW5spxoeN3Vs.woff2") format("woff2")}@font-face{font-family:'Open Sans';font-style:italic;font-weight:300;src:local("Open Sans Light Italic"),local("OpenSansLight-Italic"),url("https://fonts.gstatic.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxtTIkQYohD4BpHvJ3NvbHoA.woff2") format("woff2")}@font-face{font-family:'Open Sans';font-style:italic;font-weight:400;src:local("Open Sans Italic"),local("OpenSans-Italic"),url("https://fonts.gstatic.com/s/opensans/v13/xjAJXh38I15wypJXxuGMBogp9Q8gbYrhqGlRav_IXfk.woff2") format("woff2")}@font-face{font-family:'Open Sans';font-style:italic;font-weight:600;src:local("Open Sans Semibold Italic"),local("OpenSans-SemiboldItalic"),url("https://fonts.gstatic.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxsiAiQ_a33snTsJhwZvMEaI.woff2") format("woff2")}@font-face{font-family:'Open Sans';font-style:italic;font-weight:700;src:local("Open Sans Bold Italic"),local("OpenSans-BoldItalic"),url("https://fonts.gstatic.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxv79_ZuUxCigM2DespTnFaw.woff2") format("woff2")}@font-face{font-family:'Open Sans';font-style:italic;font-weight:800;src:local("Open Sans Extrabold Italic"),local("OpenSans-ExtraboldItalic"),url("https://fonts.gstatic.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxmPkvcX8kXDzy1NrkNCBkJ4.woff2") format("woff2")}#rack-webprofiler-bar{position:fixed;left:0;bottom:0;font-family:"Open Sans","Helvetica Neue",Arial,sans-serif;
|
1
|
+
@font-face{font-family:'Open Sans';font-style:normal;font-weight:300;src:local("Open Sans Light"),local("OpenSans-Light"),url("https://fonts.gstatic.com/s/opensans/v13/DXI1ORHCpsQm3Vp6mXoaTRampu5_7CjHW5spxoeN3Vs.woff2") format("woff2")}@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;src:local("Open Sans"),local("OpenSans"),url("https://fonts.gstatic.com/s/opensans/v13/cJZKeOuBrn4kERxqtaUH3ZBw1xU1rKptJj_0jans920.woff2") format("woff2")}@font-face{font-family:'Open Sans';font-style:normal;font-weight:600;src:local("Open Sans Semibold"),local("OpenSans-Semibold"),url("https://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNShampu5_7CjHW5spxoeN3Vs.woff2") format("woff2")}@font-face{font-family:'Open Sans';font-style:normal;font-weight:700;src:local("Open Sans Bold"),local("OpenSans-Bold"),url("https://fonts.gstatic.com/s/opensans/v13/k3k702ZOKiLJc3WVjuplzBampu5_7CjHW5spxoeN3Vs.woff2") format("woff2")}@font-face{font-family:'Open Sans';font-style:normal;font-weight:800;src:local("Open Sans Extrabold"),local("OpenSans-Extrabold"),url("https://fonts.gstatic.com/s/opensans/v13/EInbV5DfGHOiMmvb1Xr-hhampu5_7CjHW5spxoeN3Vs.woff2") format("woff2")}@font-face{font-family:'Open Sans';font-style:italic;font-weight:300;src:local("Open Sans Light Italic"),local("OpenSansLight-Italic"),url("https://fonts.gstatic.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxtTIkQYohD4BpHvJ3NvbHoA.woff2") format("woff2")}@font-face{font-family:'Open Sans';font-style:italic;font-weight:400;src:local("Open Sans Italic"),local("OpenSans-Italic"),url("https://fonts.gstatic.com/s/opensans/v13/xjAJXh38I15wypJXxuGMBogp9Q8gbYrhqGlRav_IXfk.woff2") format("woff2")}@font-face{font-family:'Open Sans';font-style:italic;font-weight:600;src:local("Open Sans Semibold Italic"),local("OpenSans-SemiboldItalic"),url("https://fonts.gstatic.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxsiAiQ_a33snTsJhwZvMEaI.woff2") format("woff2")}@font-face{font-family:'Open Sans';font-style:italic;font-weight:700;src:local("Open Sans Bold Italic"),local("OpenSans-BoldItalic"),url("https://fonts.gstatic.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxv79_ZuUxCigM2DespTnFaw.woff2") format("woff2")}@font-face{font-family:'Open Sans';font-style:italic;font-weight:800;src:local("Open Sans Extrabold Italic"),local("OpenSans-ExtraboldItalic"),url("https://fonts.gstatic.com/s/opensans/v13/PRmiXeptR36kaC0GEAetxmPkvcX8kXDzy1NrkNCBkJ4.woff2") format("woff2")}#rack-webprofiler-bar{position:fixed;height:auto;left:0;bottom:0;font-family:"Open Sans","Helvetica Neue",Arial,sans-serif;font-size:16px;/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */}#rack-webprofiler-bar img,#rack-webprofiler-bar legend{border:0}#rack-webprofiler-bar legend,#rack-webprofiler-bar td,#rack-webprofiler-bar th{padding:0}#rack-webprofiler-bar html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}#rack-webprofiler-bar body{margin:0}#rack-webprofiler-bar article,#rack-webprofiler-bar aside,#rack-webprofiler-bar details,#rack-webprofiler-bar figcaption,#rack-webprofiler-bar figure,#rack-webprofiler-bar footer,#rack-webprofiler-bar header,#rack-webprofiler-bar hgroup,#rack-webprofiler-bar main,#rack-webprofiler-bar menu,#rack-webprofiler-bar nav,#rack-webprofiler-bar section,#rack-webprofiler-bar summary{display:block}#rack-webprofiler-bar audio,#rack-webprofiler-bar canvas,#rack-webprofiler-bar progress,#rack-webprofiler-bar video{display:inline-block;vertical-align:baseline}#rack-webprofiler-bar audio:not([controls]){display:none;height:0}#rack-webprofiler-bar [hidden],#rack-webprofiler-bar template{display:none}#rack-webprofiler-bar a{background-color:transparent}#rack-webprofiler-bar a:active,#rack-webprofiler-bar a:hover{outline:0}#rack-webprofiler-bar abbr[title]{border-bottom:1px dotted}#rack-webprofiler-bar b,#rack-webprofiler-bar optgroup,#rack-webprofiler-bar strong{font-weight:700}#rack-webprofiler-bar dfn{font-style:italic}#rack-webprofiler-bar h1{font-size:2em;margin:.67em 0}#rack-webprofiler-bar mark{background:#ff0;color:#000}#rack-webprofiler-bar small{font-size:80%}#rack-webprofiler-bar sub,#rack-webprofiler-bar sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}#rack-webprofiler-bar sup{top:-.5em}#rack-webprofiler-bar sub{bottom:-.25em}#rack-webprofiler-bar svg:not(:root){overflow:hidden}#rack-webprofiler-bar figure{margin:1em 40px}#rack-webprofiler-bar hr{box-sizing:content-box;height:0}#rack-webprofiler-bar pre,#rack-webprofiler-bar textarea{overflow:auto}#rack-webprofiler-bar code,#rack-webprofiler-bar kbd,#rack-webprofiler-bar pre,#rack-webprofiler-bar samp{font-family:monospace,monospace;font-size:1em}#rack-webprofiler-bar button,#rack-webprofiler-bar input,#rack-webprofiler-bar optgroup,#rack-webprofiler-bar select,#rack-webprofiler-bar textarea{color:inherit;font:inherit;margin:0}#rack-webprofiler-bar button{overflow:visible}#rack-webprofiler-bar button,#rack-webprofiler-bar select{text-transform:none}#rack-webprofiler-bar button,#rack-webprofiler-bar html input[type=button],#rack-webprofiler-bar input[type=reset],#rack-webprofiler-bar input[type=submit]{-webkit-appearance:button;cursor:pointer}#rack-webprofiler-bar button[disabled],#rack-webprofiler-bar html input[disabled]{cursor:default}#rack-webprofiler-bar button::-moz-focus-inner,#rack-webprofiler-bar input::-moz-focus-inner{border:0;padding:0}#rack-webprofiler-bar input{line-height:normal}#rack-webprofiler-bar input[type=checkbox],#rack-webprofiler-bar input[type=radio]{box-sizing:border-box;padding:0}#rack-webprofiler-bar input[type=number]::-webkit-inner-spin-button,#rack-webprofiler-bar input[type=number]::-webkit-outer-spin-button{height:auto}#rack-webprofiler-bar input[type=search]{-webkit-appearance:textfield;box-sizing:content-box}#rack-webprofiler-bar input[type=search]::-webkit-search-cancel-button,#rack-webprofiler-bar input[type=search]::-webkit-search-decoration{-webkit-appearance:none}#rack-webprofiler-bar fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}#rack-webprofiler-bar table{border-collapse:collapse;border-spacing:0}#rack-webprofiler-bar *{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-moz-osx-font-smooth:grayscale;margin:0;padding:0}#rack-webprofiler-bar a{text-decoration:none}#rack-webprofiler-bar.rack-webprofiler--long{width:100%;background-color:#1c1f33}#rack-webprofiler-bar .rack-webprofiler__wrapper{display:table}#rack-webprofiler-bar .rack-webprofiler__item{display:table-cell;position:relative;background-color:#1c1f33}#rack-webprofiler-bar .rack-webprofiler__item a,#rack-webprofiler-bar .rack-webprofiler__item .rack-webprofiler__item-content{position:relative;display:block;height:40px;padding:10px;box-sizing:border-box;line-height:20px;border-top:1px #282f4a solid;border-right:1px #282f4a solid}#rack-webprofiler-bar .rack-webprofiler__item:hover{background-color:#232740}#rack-webprofiler-bar .rack-webprofiler__item:hover .details{display:block}#rack-webprofiler-bar .rack-webprofiler__item i.icn{float:left;height:20px;margin-right:5px}#rack-webprofiler-bar .rack-webprofiler__item i.icn img{display:block;height:100%;width:auto}#rack-webprofiler-bar .rack-webprofiler__item--close{width:45px;text-align:center;-webkit-user-select:none;user-select:none;cursor:pointer}#rack-webprofiler-bar .rack-webprofiler__item--close i.icn{padding:0px}#rack-webprofiler-bar .rack-webprofiler__item__label,#rack-webprofiler-bar .rack-webprofiler__item__value{font-weight:600;font-size:14px;color:#c4c2cc}#rack-webprofiler-bar .rack-webprofiler__item__value{float:left;line-height:20px;color:#f3fcf0;vertical-align:middle}#rack-webprofiler-bar .rack-webprofiler__item__status-color{display:block;position:absolute;width:100%;height:4px;left:0;right:0;bottom:0}#rack-webprofiler-bar .rack-webprofiler__item__status-color.success{background-color:#7ed321}#rack-webprofiler-bar .rack-webprofiler__item__status-color.warning{background-color:#f8e71c}#rack-webprofiler-bar .rack-webprofiler__item__status-color.danger{background-color:#d92b2e}#rack-webprofiler-bar .details{display:none;width:auto;position:absolute;top:-1px;left:-1px;transform:translate3d(0, -100%, 0);background:#232740}#rack-webprofiler-bar .details .wrapper{box-sizing:border-box;padding:10px;border:1px solid #282f4a;border-bottom:0}#rack-webprofiler-bar .details dl dt{float:left;clear:left;width:100px;overflow:hidden;text-overflow:ellipsis;font-weight:600;color:#c4c2cc}#rack-webprofiler-bar .details dl dd{margin-left:100px;font-weight:400;color:#f3fcf0}#rack-webprofiler-bar .details dl dt,#rack-webprofiler-bar .details dl dd{text-align:left;white-space:nowrap}
|
@@ -1 +1 @@
|
|
1
|
-
.highlight .hll{background-color:#ffc}.highlight .c{color:#999988;font-style:italic}.highlight .err{color:#a61717;background-color:#e3d2d2}.highlight .k{color:#000000;font-weight:bold}.highlight .o{color:#000000;font-weight:bold}.highlight .cm{color:#999988;font-style:italic}.highlight .cp{color:#999999;font-weight:bold;font-style:italic}.highlight .c1{color:#999988;font-style:italic}.highlight .cs{color:#999999;font-weight:bold;font-style:italic}.highlight .gd{color:#000000;background-color:#fdd}.highlight .ge{color:#000000;font-style:italic}.highlight .gr{color:#a00}.highlight .gh{color:#999}.highlight .gi{color:#000000;background-color:#dfd}.highlight .go{color:#888}.highlight .gp{color:#555}.highlight .gs{font-weight:bold}.highlight .gu{color:#aaa}.highlight .gt{color:#a00}.highlight .kc{color:#000000;font-weight:bold}.highlight .kd{color:#000000;font-weight:bold}.highlight .kn{color:#000000;font-weight:bold}.highlight .kp{color:#000000;font-weight:bold}.highlight .kr{color:#000000;font-weight:bold}.highlight .kt{color:#445588;font-weight:bold}.highlight .m{color:#099}.highlight .s{color:#d01040}.highlight .na{color:teal}.highlight .nb{color:#0086B3}.highlight .nc{color:#445588;font-weight:bold}.highlight .no{color:teal}.highlight .nd{color:#3c5d5d;font-weight:bold}.highlight .ni{color:purple}.highlight .ne{color:#990000;font-weight:bold}.highlight .nf{color:#990000;font-weight:bold}.highlight .nl{color:#990000;font-weight:bold}.highlight .nn{color:#555}.highlight .nt{color:navy}.highlight .nv{color:teal}.highlight .ow{color:#000000;font-weight:bold}.highlight .w{color:#bbb}.highlight .mf{color:#099}.highlight .mh{color:#099}.highlight .mi{color:#099}.highlight .mo{color:#099}.highlight .sb{color:#d01040}.highlight .sc{color:#d01040}.highlight .sd{color:#d01040}.highlight .s2{color:#d01040}.highlight .se{color:#d01040}.highlight .sh{color:#d01040}.highlight .si{color:#d01040}.highlight .sx{color:#d01040}.highlight .sr{color:#009926}.highlight .s1{color:#d01040}.highlight .ss{color:#990073}.highlight .bp{color:#999}.highlight .vc{color:teal}.highlight .vg{color:teal}.highlight .vi{color:teal}.highlight .il{color:#099}/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */img,legend{border:0}legend,td,th{padding:0}html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,optgroup,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre,textarea{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}table{border-collapse:collapse;border-spacing:0}body{font-family:"Open Sans", "Helvetica Neue", Arial, sans-serif}#rack-webprofiler{position:absolute;width:100%;height:100%}#rack-webprofiler,#rack-webprofiler *{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-moz-osx-font-smooth:grayscale}#rack-webprofiler a{text-decoration:none}#rack-webprofiler h1,#rack-webprofiler h2,#rack-webprofiler h3,#rack-webprofiler h4,#rack-webprofiler h5,#rack-webprofiler h6{margin-top:0;margin-bottom:25px;text-align:left;text-transform:none;font-weight:700;color:#1c1f33}#rack-webprofiler h1 {font-size:1.5em}#rack-webprofiler h2{font-size:1.25em}#rack-webprofiler h3{font-size:1.125em}#rack-webprofiler .block{margin-bottom:35px}#rack-webprofiler .block table{width:calc(100% - 2px);border-collapse:collapse;outline:1px #979797 solid}#rack-webprofiler .block table th,#rack-webprofiler .block table td{padding:6px 9px;border:1px #d8d8d8 solid;font-size:0.75em;word-break:break-all}#rack-webprofiler .block table th:first-child{width:20%}#rack-webprofiler .block table th:first-child,#rack-webprofiler .block table td:first-child{border-left-width:0}#rack-webprofiler .block table th:last-child,#rack-webprofiler .block table td:last-child{border-right-width:0}#rack-webprofiler .block table thead tr:first-child th,#rack-webprofiler .block table thead tr:first-child td{border-top-width:0}#rack-webprofiler .block table tbody tr:last-child th,#rack-webprofiler .block table tbody tr:last-child td{border-bottom-width:0}#rack-webprofiler .block table th{background-color:#ececec;text-align:left;font-weight:400;color:#1c1f33}#rack-webprofiler .block table thead th{text-transform:capitalize}#rack-webprofiler .block table td.code{font-family:"Courier New"}#rack-webprofiler .block p{text-align:left;text-transform:none;font-size:0.875em;line-height:1.4em;color:#666370}#rack-webprofiler .block.block--text .text__no-value{font-style:italic}#rack-webprofiler .block.block--summary table{width:100%;border-collapse:collapse}#rack-webprofiler .block.block--summary table th{text-align:left;line-height:1.4em;font-weight:400;font-size:0.875em;color:#666370}#rack-webprofiler .block.block--summary .value,#rack-webprofiler .block.block--summary .unit{font-size:1.25em}#rack-webprofiler .block.block--summary .value{color:#45425a}#rack-webprofiler .block.block--summary .unit{color:#9b9b9b}#rack-webprofiler .header__section{display:table;width:100%;height:40px;color:#fff;font-size:1em;font-weight:300;background-color:#ff2851}#rack-webprofiler .header__section:nth-child(even){background-color:#e62548}#rack-webprofiler .header__section.header__section--blank:before{content:""}#rack-webprofiler .header__section span{box-sizing:border-box;display:table-cell;vertical-align:middle;padding-left:20px}#rack-webprofiler .header__section span a{color:#f3fcf0;text-decoration:none}#rack-webprofiler #main{overflow-y:auto;width:calc(100% - 180px);height:100%;float:left}#rack-webprofiler #sidebar{width:180px;height:100%;float:left;background-color:#1c1f33}#rack-webprofiler #sidebar .sidebar__header{height:80px;border-bottom:1px #26304b solid;text-align:center}#rack-webprofiler #sidebar .sidebar__header:before{content:"";display:inline-block;height:100%;vertical-align:middle;margin-left:-0.25em}#rack-webprofiler #sidebar .sidebar__header .sidebar__header__wrapper{display:inline-block;vertical-align:middle}#rack-webprofiler #sidebar .sidebar__header span{display:block;font-size:1em;color:#f3fcf0}#rack-webprofiler #sidebar .sidebar__header .sidebar__header__title{margin-top:15px}#rack-webprofiler #sidebar .sidebar__header .sidebar__header__title a{color:#f3fcf0;text-decoration:none}#rack-webprofiler #sidebar .sidebar__item{display:table;width:100%;height:40px;border-bottom:1px #26304b solid;-webkit-user-select:none;user-select:none}#rack-webprofiler #sidebar .sidebar__item:hover{background-color:#
|
1
|
+
.highlight .hll{background-color:#ffc}.highlight .c{color:#999988;font-style:italic}.highlight .err{color:#a61717;background-color:#e3d2d2}.highlight .k{color:#000000;font-weight:bold}.highlight .o{color:#000000;font-weight:bold}.highlight .cm{color:#999988;font-style:italic}.highlight .cp{color:#999999;font-weight:bold;font-style:italic}.highlight .c1{color:#999988;font-style:italic}.highlight .cs{color:#999999;font-weight:bold;font-style:italic}.highlight .gd{color:#000000;background-color:#fdd}.highlight .ge{color:#000000;font-style:italic}.highlight .gr{color:#a00}.highlight .gh{color:#999}.highlight .gi{color:#000000;background-color:#dfd}.highlight .go{color:#888}.highlight .gp{color:#555}.highlight .gs{font-weight:bold}.highlight .gu{color:#aaa}.highlight .gt{color:#a00}.highlight .kc{color:#000000;font-weight:bold}.highlight .kd{color:#000000;font-weight:bold}.highlight .kn{color:#000000;font-weight:bold}.highlight .kp{color:#000000;font-weight:bold}.highlight .kr{color:#000000;font-weight:bold}.highlight .kt{color:#445588;font-weight:bold}.highlight .m{color:#099}.highlight .s{color:#d01040}.highlight .na{color:teal}.highlight .nb{color:#0086B3}.highlight .nc{color:#445588;font-weight:bold}.highlight .no{color:teal}.highlight .nd{color:#3c5d5d;font-weight:bold}.highlight .ni{color:purple}.highlight .ne{color:#990000;font-weight:bold}.highlight .nf{color:#990000;font-weight:bold}.highlight .nl{color:#990000;font-weight:bold}.highlight .nn{color:#555}.highlight .nt{color:navy}.highlight .nv{color:teal}.highlight .ow{color:#000000;font-weight:bold}.highlight .w{color:#bbb}.highlight .mf{color:#099}.highlight .mh{color:#099}.highlight .mi{color:#099}.highlight .mo{color:#099}.highlight .sb{color:#d01040}.highlight .sc{color:#d01040}.highlight .sd{color:#d01040}.highlight .s2{color:#d01040}.highlight .se{color:#d01040}.highlight .sh{color:#d01040}.highlight .si{color:#d01040}.highlight .sx{color:#d01040}.highlight .sr{color:#009926}.highlight .s1{color:#d01040}.highlight .ss{color:#990073}.highlight .bp{color:#999}.highlight .vc{color:teal}.highlight .vg{color:teal}.highlight .vi{color:teal}.highlight .il{color:#099}/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */img,legend{border:0}legend,td,th{padding:0}html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,optgroup,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre,textarea{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}table{border-collapse:collapse;border-spacing:0}body{font-family:"Open Sans", "Helvetica Neue", Arial, sans-serif}#rack-webprofiler{position:absolute;width:100%;height:100%}#rack-webprofiler,#rack-webprofiler *{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-moz-osx-font-smooth:grayscale}#rack-webprofiler a{text-decoration:none}#rack-webprofiler h1,#rack-webprofiler h2,#rack-webprofiler h3,#rack-webprofiler h4,#rack-webprofiler h5,#rack-webprofiler h6{margin-top:0;margin-bottom:25px;text-align:left;text-transform:none;font-weight:700;color:#1c1f33}#rack-webprofiler h1 {font-size:1.5em}#rack-webprofiler h2{font-size:1.25em}#rack-webprofiler h3{font-size:1.125em}#rack-webprofiler .block{margin-bottom:35px}#rack-webprofiler .block table{width:calc(100% - 2px);border-collapse:collapse;outline:1px #979797 solid}#rack-webprofiler .block table th,#rack-webprofiler .block table td{padding:6px 9px;border:1px #d8d8d8 solid;font-size:0.75em;word-break:break-all}#rack-webprofiler .block table th:first-child{width:20%}#rack-webprofiler .block table th:first-child,#rack-webprofiler .block table td:first-child{border-left-width:0}#rack-webprofiler .block table th:last-child,#rack-webprofiler .block table td:last-child{border-right-width:0}#rack-webprofiler .block table thead tr:first-child th,#rack-webprofiler .block table thead tr:first-child td{border-top-width:0}#rack-webprofiler .block table tbody tr:last-child th,#rack-webprofiler .block table tbody tr:last-child td{border-bottom-width:0}#rack-webprofiler .block table th{background-color:#ececec;text-align:left;font-weight:400;color:#1c1f33}#rack-webprofiler .block table thead th{text-transform:capitalize}#rack-webprofiler .block table td.code{font-family:"Courier New"}#rack-webprofiler .block p{text-align:left;text-transform:none;font-size:0.875em;line-height:1.4em;color:#666370}#rack-webprofiler .block.block--text .text__no-value{font-style:italic}#rack-webprofiler .block.block--summary table{width:100%;border-collapse:collapse}#rack-webprofiler .block.block--summary table th{text-align:left;line-height:1.4em;font-weight:400;font-size:0.875em;color:#666370}#rack-webprofiler .block.block--summary .value,#rack-webprofiler .block.block--summary .unit{font-size:1.25em}#rack-webprofiler .block.block--summary .value{color:#45425a}#rack-webprofiler .block.block--summary .unit{color:#9b9b9b}#rack-webprofiler .header__section{display:table;width:100%;height:40px;color:#fff;font-size:1em;font-weight:300;background-color:#ff2851}#rack-webprofiler .header__section:nth-child(even){background-color:#e62548}#rack-webprofiler .header__section.header__section--blank:before{content:""}#rack-webprofiler .header__section span{box-sizing:border-box;display:table-cell;vertical-align:middle;padding-left:20px}#rack-webprofiler .header__section span a{color:#f3fcf0;text-decoration:none}#rack-webprofiler #main{overflow-y:auto;width:calc(100% - 180px);height:100%;float:left}#rack-webprofiler #sidebar{width:180px;height:100%;float:left;background-color:#1c1f33}#rack-webprofiler #sidebar .sidebar__header{height:80px;border-bottom:1px #26304b solid;text-align:center}#rack-webprofiler #sidebar .sidebar__header:before{content:"";display:inline-block;height:100%;vertical-align:middle;margin-left:-0.25em}#rack-webprofiler #sidebar .sidebar__header .sidebar__header__wrapper{display:inline-block;vertical-align:middle}#rack-webprofiler #sidebar .sidebar__header span{display:block;font-size:1em;color:#f3fcf0}#rack-webprofiler #sidebar .sidebar__header .sidebar__header__title{margin-top:15px}#rack-webprofiler #sidebar .sidebar__header .sidebar__header__title a{color:#f3fcf0;text-decoration:none}#rack-webprofiler #sidebar .sidebar__item{display:table;width:100%;height:40px;border-bottom:1px #26304b solid;-webkit-user-select:none;user-select:none}#rack-webprofiler #sidebar .sidebar__item:hover,#rack-webprofiler #sidebar .sidebar__item.active{background-color:#282f4a}#rack-webprofiler #sidebar .sidebar__item.sidebar__item--blank{display:block}#rack-webprofiler #sidebar .sidebar__item .sidebar__item-inner{display:table-cell;vertical-align:middle}#rack-webprofiler #sidebar .sidebar__item .sidebar__item-inner a{width:100%;height:100%;display:inline-block}#rack-webprofiler #sidebar .sidebar__item .icn{display:inline-block;vertical-align:middle;padding:0px 8px}#rack-webprofiler #sidebar .sidebar__item .icn img{fill:red}#rack-webprofiler #sidebar .sidebar__item i,#rack-webprofiler #sidebar .sidebar__item span{vertical-align:middle;font-weight:600;color:#f3fcf0}#rack-webprofiler #wrapper{box-sizing:border-box;width:100%;min-height:calc(100% - 80px);padding:20px}#rack-webprofiler .wrapper__container{box-sizing:border-box;width:100%;min-height:100%;padding:15px;border:1px #e6e6e6 solid;background-color:#fff}#rack-webprofiler .wrapper__container a{color:#444}#rack-webprofiler .wrapper__container a:hover{color:#666}
|
@@ -1,12 +1,31 @@
|
|
1
1
|
$dark_blue: #1c1f33;
|
2
|
-
$
|
2
|
+
$dark_blue_hover: #232740;
|
3
|
+
$dark_blue_light: #282f4a;
|
4
|
+
$tiny_grey: #f3fcf0;
|
5
|
+
$light_grey: #c4c2cc;
|
6
|
+
|
7
|
+
$success_color: #7ed321;
|
8
|
+
$warning_color: #f8e71c;
|
9
|
+
$danger_color: #d92b2e;
|
3
10
|
|
4
11
|
$fonts: "Open Sans", "Helvetica Neue", Arial, sans-serif;
|
5
12
|
|
6
13
|
$profiler_bar_background: $dark_blue;
|
7
14
|
$profiler_bar_border: $dark_blue_light;
|
8
|
-
$profiler_bar__item_hover: $
|
15
|
+
$profiler_bar__item_hover: $dark_blue_hover;
|
16
|
+
$profiler_bar__item_details_label_width: 100px;
|
9
17
|
|
10
18
|
$profiler_panel__sidebar_width: 180px;
|
11
19
|
$profiler_panel__sidebar_background: $dark_blue;
|
12
20
|
$profiler_panel__sidebar_item_hover: $dark_blue_light;
|
21
|
+
|
22
|
+
@mixin clearfix() {
|
23
|
+
&:before,
|
24
|
+
&:after {
|
25
|
+
content: '';
|
26
|
+
display: table;
|
27
|
+
}
|
28
|
+
&:after {
|
29
|
+
clear: both;
|
30
|
+
}
|
31
|
+
}
|
@@ -4,10 +4,12 @@
|
|
4
4
|
|
5
5
|
#rack-webprofiler-bar {
|
6
6
|
position: fixed;
|
7
|
+
height: auto;
|
7
8
|
left: 0;
|
8
9
|
bottom: 0;
|
9
10
|
font-family: $fonts;
|
10
|
-
|
11
|
+
// Specify the container font-size, to prevent a global stylesheet side-effect.
|
12
|
+
font-size: 16px;
|
11
13
|
|
12
14
|
@include normalize;
|
13
15
|
|
@@ -31,35 +33,38 @@
|
|
31
33
|
display: table;
|
32
34
|
}
|
33
35
|
.rack-webprofiler__item {
|
34
|
-
box-sizing: border-box;
|
35
36
|
display: table-cell;
|
36
|
-
height: 40px;
|
37
|
-
padding: 10px;
|
38
37
|
position: relative;
|
39
38
|
background-color: $profiler_bar_background;
|
40
|
-
border-top: 1px $profiler_bar_border solid;
|
41
|
-
border-right: 1px $profiler_bar_border solid;
|
42
39
|
|
43
|
-
a
|
44
|
-
|
45
|
-
|
46
|
-
|
40
|
+
a,
|
41
|
+
.rack-webprofiler__item-content {
|
42
|
+
// Position is important here, because .details will base itself on it!
|
43
|
+
position: relative;
|
44
|
+
display: block;
|
45
|
+
height: 40px;
|
46
|
+
padding: 10px;
|
47
|
+
box-sizing: border-box;
|
48
|
+
line-height: 20px;
|
49
|
+
border-top: 1px $profiler_bar_border solid;
|
50
|
+
border-right: 1px $profiler_bar_border solid;
|
47
51
|
}
|
48
52
|
}
|
49
|
-
.rack-webprofiler__item--has-drop {
|
50
|
-
cursor: pointer;
|
51
|
-
}
|
52
53
|
.rack-webprofiler__item:hover {
|
53
54
|
background-color: $profiler_bar__item_hover;
|
54
55
|
}
|
55
|
-
.rack-webprofiler__item:hover .
|
56
|
+
.rack-webprofiler__item:hover .details {
|
56
57
|
display: block;
|
57
58
|
}
|
58
59
|
.rack-webprofiler__item i.icn {
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
60
|
+
float: left;
|
61
|
+
height: 20px;
|
62
|
+
margin-right: 5px;
|
63
|
+
img {
|
64
|
+
display: block;
|
65
|
+
height: 100%;
|
66
|
+
width: auto;
|
67
|
+
}
|
63
68
|
}
|
64
69
|
.rack-webprofiler__item--close {
|
65
70
|
width: 45px;
|
@@ -74,64 +79,71 @@
|
|
74
79
|
.rack-webprofiler__item__label,
|
75
80
|
.rack-webprofiler__item__value {
|
76
81
|
font-weight: 600;
|
77
|
-
font-size:
|
78
|
-
color:
|
82
|
+
font-size: 14px;
|
83
|
+
color: $light_grey;
|
79
84
|
}
|
80
85
|
.rack-webprofiler__item__value {
|
81
|
-
|
86
|
+
float: left;
|
87
|
+
line-height: 20px;
|
88
|
+
color: $tiny_grey;
|
82
89
|
vertical-align: middle;
|
83
90
|
}
|
84
91
|
.rack-webprofiler__item__status-color {
|
85
92
|
display: block;
|
93
|
+
position: absolute;
|
86
94
|
width: 100%;
|
87
95
|
height: 4px;
|
88
|
-
position: absolute;
|
89
96
|
left: 0;
|
97
|
+
right: 0;
|
90
98
|
bottom: 0;
|
99
|
+
&.success {
|
100
|
+
background-color: $success_color;
|
101
|
+
}
|
102
|
+
&.warning {
|
103
|
+
background-color: $warning_color;
|
104
|
+
}
|
105
|
+
&.danger {
|
106
|
+
background-color: $danger_color;
|
107
|
+
}
|
91
108
|
}
|
92
|
-
|
93
|
-
|
94
|
-
}
|
95
|
-
.rack-webprofiler__item__status-color.warning {
|
96
|
-
background-color: #f8e71c;
|
97
|
-
}
|
98
|
-
.rack-webprofiler__item__status-color.error {
|
99
|
-
background-color: #d92b2e;
|
100
|
-
}
|
101
|
-
.rack-webprofiler__item__drop {
|
109
|
+
|
110
|
+
.details {
|
102
111
|
display: none;
|
103
|
-
width:
|
104
|
-
height: 1px;
|
112
|
+
width: auto;
|
105
113
|
position: absolute;
|
106
114
|
top: -1px;
|
107
115
|
left: -1px;
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
116
|
+
transform: translate3d(0, -100%, 0);
|
117
|
+
background: $dark_blue_hover;
|
118
|
+
|
119
|
+
.wrapper {
|
120
|
+
box-sizing: border-box;
|
121
|
+
padding: 10px;
|
122
|
+
border: 1px solid $dark_blue_light;
|
123
|
+
border-bottom: 0;
|
124
|
+
}
|
125
|
+
|
126
|
+
dl {
|
127
|
+
dt {
|
128
|
+
float: left;
|
129
|
+
clear: left;
|
130
|
+
width: $profiler_bar__item_details_label_width;
|
131
|
+
overflow: hidden;
|
132
|
+
text-overflow: ellipsis;
|
133
|
+
font-weight: 600;
|
134
|
+
color: $light_grey;
|
135
|
+
}
|
136
|
+
dd {
|
137
|
+
margin-left: $profiler_bar__item_details_label_width;
|
138
|
+
font-weight: 400;
|
139
|
+
color: $tiny_grey;
|
140
|
+
}
|
141
|
+
dt,
|
142
|
+
dd {
|
143
|
+
text-align: left;
|
144
|
+
white-space: nowrap;
|
145
|
+
}
|
146
|
+
}
|
135
147
|
}
|
136
148
|
}
|
137
149
|
|