rack-webprofiler 0.1.0.pre.beta2 → 0.1.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 +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
|
[ ](https://rubygems.org/gems/rack-webprofiler)
|
6
|
-
[ ](https://travis-ci.org/rack-profiler/rack-webprofiler)
|
7
|
+
[ ](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
|
|