scout_realtime 0.5.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +21 -0
- data/CHANGELOG.md +7 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +37 -0
- data/Rakefile +16 -0
- data/Vagrantfile +7 -0
- data/bin/scout_realtime +117 -0
- data/lib/scout_realtime/lib/aggregator.rb +8 -0
- data/lib/scout_realtime/lib/metric.rb +36 -0
- data/lib/scout_realtime/lib/multi_aggregator.rb +12 -0
- data/lib/scout_realtime/lib/ring_buffer.rb +25 -0
- data/lib/scout_realtime/lib/trollop.rb +782 -0
- data/lib/scout_realtime/main.rb +76 -0
- data/lib/scout_realtime/models/cpu.rb +21 -0
- data/lib/scout_realtime/models/disk.rb +21 -0
- data/lib/scout_realtime/models/memory.rb +17 -0
- data/lib/scout_realtime/models/network.rb +14 -0
- data/lib/scout_realtime/models/processes.rb +13 -0
- data/lib/scout_realtime/runner.rb +34 -0
- data/lib/scout_realtime/version.rb +5 -0
- data/lib/scout_realtime/web/favicon.ico +0 -0
- data/lib/scout_realtime/web/images/logo.png +0 -0
- data/lib/scout_realtime/web/images/pause.png +0 -0
- data/lib/scout_realtime/web/images/play.png +0 -0
- data/lib/scout_realtime/web/javascripts/application.js +265 -0
- data/lib/scout_realtime/web/javascripts/bootstrap.min.js +7 -0
- data/lib/scout_realtime/web/javascripts/charts.js +189 -0
- data/lib/scout_realtime/web/javascripts/d3.barchart.js +210 -0
- data/lib/scout_realtime/web/javascripts/d3.linechart.js +168 -0
- data/lib/scout_realtime/web/javascripts/d3.v3.min.js +5 -0
- data/lib/scout_realtime/web/javascripts/handlebars-v1.1.0.js +2563 -0
- data/lib/scout_realtime/web/javascripts/jquery.js +3010 -0
- data/lib/scout_realtime/web/javascripts/metrics_for_development.js +6 -0
- data/lib/scout_realtime/web/stylesheets/bootstrap-theme.min.css +7 -0
- data/lib/scout_realtime/web/stylesheets/bootstrap.min.css +7 -0
- data/lib/scout_realtime/web/stylesheets/styles.css +254 -0
- data/lib/scout_realtime/web/views/graph.erb +6 -0
- data/lib/scout_realtime/web/views/header.erb +8 -0
- data/lib/scout_realtime/web/views/index.erb +21 -0
- data/lib/scout_realtime/web/views/layout.erb +33 -0
- data/lib/scout_realtime/web/views/overview_charts.erb +30 -0
- data/lib/scout_realtime/web/views/processes.erb +31 -0
- data/lib/scout_realtime/web/views/sidebar.erb +19 -0
- data/lib/scout_realtime/web_app.rb +59 -0
- data/lib/scout_realtime.rb +58 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/argf/bytes.rb +1 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/argf/chars.rb +1 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/argf/each.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/argf/each_byte.rb +9 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/argf/each_char.rb +35 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/argf/each_line.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/argf/getbyte.rb +5 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/argf/lines.rb +5 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/argf/readbyte.rb +5 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/argf.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/array/collect.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/array/combination.rb +24 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/array/cycle.rb +16 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/array/delete_if.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/array/each.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/array/each_index.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/array/find_index.rb +1 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/array/flatten.rb +47 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/array/index.rb +15 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/array/map.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/array/permutation.rb +30 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/array/pop.rb +15 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/array/product.rb +32 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/array/reject.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/array/reverse_each.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/array/rindex.rb +15 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/array/select.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/array/shift.rb +13 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/array/shuffle.rb +17 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/array.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/binding/eval.rb +7 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/binding.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/dir/each.rb +7 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/dir/foreach.rb +9 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/dir.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/enumerable/count.rb +17 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/enumerable/cycle.rb +24 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/enumerable/detect.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/enumerable/drop.rb +13 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/enumerable/drop_while.rb +16 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/enumerable/each_cons.rb +4 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/enumerable/each_slice.rb +4 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/enumerable/each_with_index.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/enumerable/entries.rb +11 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/enumerable/find.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/enumerable/find_all.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/enumerable/find_index.rb +21 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/enumerable/first.rb +21 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/enumerable/group_by.rb +14 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/enumerable/inject.rb +14 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/enumerable/max_by.rb +16 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/enumerable/min_by.rb +16 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/enumerable/minmax.rb +21 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/enumerable/minmax_by.rb +19 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/enumerable/none.rb +7 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/enumerable/one.rb +23 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/enumerable/partition.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/enumerable/reduce.rb +1 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/enumerable/reject.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/enumerable/reverse_each.rb +12 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/enumerable/select.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/enumerable/sort_by.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/enumerable/take.rb +9 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/enumerable/take_while.rb +14 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/enumerable/to_a.rb +12 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/enumerable.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/enumerator/each.rb +6 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/enumerator/next.rb +15 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/enumerator/rewind.rb +13 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/enumerator/with_index.rb +14 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/enumerator.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/env/delete_if.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/env/each.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/env/each_key.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/env/each_pair.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/env/each_value.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/env/reject.rb +4 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/env/select.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/env.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/fixnum/div.rb +7 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/fixnum/fdiv.rb +7 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/fixnum.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/float/fdiv.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/float.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/gc/stress.rb +9 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/gc.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/hash/constructor.rb +25 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/hash/delete_if.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/hash/each.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/hash/each_key.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/hash/each_pair.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/hash/each_value.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/hash/eql.rb +1 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/hash/hash.rb +17 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/hash/reject.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/hash/select.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/hash.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/integer/downto.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/integer/even.rb +7 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/integer/odd.rb +7 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/integer/ord.rb +7 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/integer/pred.rb +7 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/integer/times.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/integer/upto.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/integer.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/io/bytes.rb +1 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/io/chars.rb +1 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/io/each.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/io/each_byte.rb +6 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/io/each_char.rb +34 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/io/each_line.rb +6 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/io/foreach.rb +7 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/io/getbyte.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/io/lines.rb +1 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/io/readbyte.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/io.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/kernel/__method__.rb +8 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/kernel/instance_exec.rb +10 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/kernel/tap.rb +8 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/kernel.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/method/name.rb +49 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/method.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/module/class_exec.rb +1 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/module/module_exec.rb +11 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/module.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/numeric/step.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/numeric.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/object_space/each_object.rb +5 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/object_space.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/process/exec.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/process.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/range/each.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/range/step.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/range.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/regexp/union.rb +11 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/regexp.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/stdlib/tmpdir.rb +44 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/stdlib.rb +1 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/stop_iteration.rb +14 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/string/bytes.rb +1 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/string/bytesize.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/string/each.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/string/each_byte.rb +5 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/string/each_char.rb +13 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/string/each_line.rb +5 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/string/end_with.rb +12 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/string/lines.rb +1 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/string/partition.rb +20 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/string/rpartition.rb +19 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/string/start_with.rb +12 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/string/upto.rb +15 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/string.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/struct/each.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/struct/each_pair.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/struct.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/symbol/to_proc.rb +8 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7/symbol.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.7.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.8.rb +2 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.8.rb +2 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/array/sample.rb +19 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/array/try_convert.rb +7 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/array.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/dir/to_path.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/dir.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/enumerable/each_with_index.rb +14 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/enumerable/each_with_object.rb +9 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/enumerable.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/enumerator/new.rb +40 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/enumerator/with_object.rb +6 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/enumerator.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/env/key.rb +5 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/env.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/file/atime.rb +5 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/file/basename.rb +5 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/file/binary.rb +6 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/file/blockdev.rb +5 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/file/chardev.rb +5 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/file/chmod.rb +5 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/file/chown.rb +5 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/file/ctime.rb +5 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/file/delete.rb +5 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/file/directory.rb +5 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/file/dirname.rb +5 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/file/executable.rb +5 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/file/executable_real.rb +5 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/file/exist.rb +5 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/file/exists.rb +5 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/file/expand_path.rb +14 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/file/extname.rb +5 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/file/file.rb +5 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/file/ftype.rb +5 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/file/grpowned.rb +5 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/file/join.rb +5 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/file/lchmod.rb +5 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/file/lchown.rb +5 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/file/link.rb +5 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/file/lstat.rb +5 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/file/mtime.rb +5 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/file/new.rb +5 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/file/open.rb +23 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/file/owned.rb +5 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/file/pipe.rb +5 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/file/readable.rb +5 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/file/readable_real.rb +5 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/file/readlink.rb +5 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/file/rename.rb +5 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/file/setgid.rb +5 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/file/setuid.rb +5 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/file/size.rb +14 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/file/socket.rb +5 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/file/split.rb +5 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/file/stat.rb +5 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/file/sticky.rb +5 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/file/symlink.rb +6 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/file/to_path.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/file/truncate.rb +5 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/file/unlink.rb +5 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/file/writable.rb +5 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/file/writable_real.rb +5 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/file/zero.rb +5 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/file.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/float/round.rb +21 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/float.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/hash/assoc.rb +12 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/hash/default_proc.rb +14 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/hash/key.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/hash/rassoc.rb +9 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/hash/try_convert.rb +7 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/hash.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/integer/magnitude.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/integer/round.rb +24 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/integer.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/io/binread.rb +10 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/io/open.rb +21 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/io/try_convert.rb +7 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/io/ungetbyte.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/io.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/kernel/__callee__.rb +7 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/kernel/define_singleton_method.rb +9 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/kernel/public_method.rb +11 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/kernel/public_send.rb +13 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/kernel/require_relative.rb +14 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/kernel.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/math/log.rb +20 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/math/log2.rb +5 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/math.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/numeric/round.rb +11 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/numeric.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/proc/case_compare.rb +6 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/proc/curry.rb +24 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/proc/lambda.rb +40 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/proc/yield.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/proc.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/range/cover.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/range.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/regexp/try_convert.rb +7 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/regexp.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/stdlib/prime.rb +497 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/stdlib.rb +1 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/string/ascii_only.rb +7 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/string/chr.rb +7 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/string/clear.rb +8 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/string/codepoints.rb +8 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/string/each_codepoint.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/string/getbyte.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/string/ord.rb +7 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/string/setbyte.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/string/try_convert.rb +7 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/string.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/symbol/capitalize.rb +7 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/symbol/casecmp.rb +8 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/symbol/comparable.rb +7 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/symbol/comparison.rb +8 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/symbol/downcase.rb +7 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/symbol/element_reference.rb +7 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/symbol/empty.rb +7 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/symbol/length.rb +7 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/symbol/match.rb +9 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/symbol/next.rb +1 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/symbol/size.rb +7 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/symbol/succ.rb +8 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/symbol/swapcase.rb +7 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/symbol/upcase.rb +7 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1/symbol.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.1.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.2/array/keep_if.rb +8 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.2/array/product.rb +26 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.2/array/repeated_combination.rb +25 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.2/array/repeated_permutation.rb +26 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.2/array/rotate.rb +17 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.2/array/select.rb +8 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.2/array/sort_by.rb +9 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.2/array/uniq.rb +30 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.2/array.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.2/complex/to_r.rb +10 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.2/complex.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.2/dir/home.rb +5 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.2/dir.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.2/enumerable/chunk.rb +39 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.2/enumerable/collect_concat.rb +1 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.2/enumerable/each_entry.rb +11 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.2/enumerable/flat_map.rb +11 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.2/enumerable/slice_before.rb +30 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.2/enumerable.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.2/float/infinity.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.2/float/nan.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.2/float.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.2/hash/keep_if.rb +8 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.2/hash/select.rb +9 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.2/hash.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.2/kernel/singleton_class.rb +7 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.2/kernel.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.2/random.rb +1 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.2/stdlib/matrix/eigenvalue_decomposition.rb +886 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.2/stdlib/matrix/lup_decomposition.rb +218 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.2/stdlib/matrix.rb +1871 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.2/stdlib/set.rb +13 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.2/stdlib.rb +1 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.2.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.3/file/null.rb +16 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.3/file.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.3/io/advise.rb +24 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.3/io/binwrite.rb +7 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.3/io/write.rb +7 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.3/io.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.3/string/byteslice.rb +36 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.3/string/prepend.rb +10 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.3/string.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.3.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/1.9.rb +2 -0
- data/lib/vendor/backports-3.3.5/lib/backports/2.0.0/array/bsearch.rb +32 -0
- data/lib/vendor/backports-3.3.5/lib/backports/2.0.0/array.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/2.0.0/enumerable/lazy.rb +216 -0
- data/lib/vendor/backports-3.3.5/lib/backports/2.0.0/enumerable.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/2.0.0/enumerator/lazy.rb +1 -0
- data/lib/vendor/backports-3.3.5/lib/backports/2.0.0/enumerator.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/2.0.0/env/to_h.rb +5 -0
- data/lib/vendor/backports-3.3.5/lib/backports/2.0.0/env.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/2.0.0/hash/default_proc.rb +16 -0
- data/lib/vendor/backports-3.3.5/lib/backports/2.0.0/hash/to_h.rb +7 -0
- data/lib/vendor/backports-3.3.5/lib/backports/2.0.0/hash.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/2.0.0/nil/to_h.rb +7 -0
- data/lib/vendor/backports-3.3.5/lib/backports/2.0.0/nil.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/2.0.0/range/bsearch.rb +49 -0
- data/lib/vendor/backports-3.3.5/lib/backports/2.0.0/range.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/2.0.0/stdlib/abbrev.rb +1 -0
- data/lib/vendor/backports-3.3.5/lib/backports/2.0.0/stdlib/fake_stdlib_lib.rb +1 -0
- data/lib/vendor/backports-3.3.5/lib/backports/2.0.0/stdlib/ostruct.rb +27 -0
- data/lib/vendor/backports-3.3.5/lib/backports/2.0.0/stdlib.rb +1 -0
- data/lib/vendor/backports-3.3.5/lib/backports/2.0.0/struct/to_h.rb +9 -0
- data/lib/vendor/backports-3.3.5/lib/backports/2.0.0/struct.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/2.0.0.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/2.0.rb +2 -0
- data/lib/vendor/backports-3.3.5/lib/backports/basic_object.rb +53 -0
- data/lib/vendor/backports-3.3.5/lib/backports/extra/random/MT19937.rb +76 -0
- data/lib/vendor/backports-3.3.5/lib/backports/extra/random/bits_and_bytes.rb +91 -0
- data/lib/vendor/backports-3.3.5/lib/backports/extra/random/implementation.rb +93 -0
- data/lib/vendor/backports-3.3.5/lib/backports/extra/random/load.rb +17 -0
- data/lib/vendor/backports-3.3.5/lib/backports/force/array_map.rb +1 -0
- data/lib/vendor/backports-3.3.5/lib/backports/force/enumerable_map.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports/force/hash_select.rb +9 -0
- data/lib/vendor/backports-3.3.5/lib/backports/force/string_length.rb +10 -0
- data/lib/vendor/backports-3.3.5/lib/backports/force/string_size.rb +1 -0
- data/lib/vendor/backports-3.3.5/lib/backports/rails/array.rb +6 -0
- data/lib/vendor/backports-3.3.5/lib/backports/rails/enumerable.rb +12 -0
- data/lib/vendor/backports-3.3.5/lib/backports/rails/hash.rb +31 -0
- data/lib/vendor/backports-3.3.5/lib/backports/rails/kernel.rb +6 -0
- data/lib/vendor/backports-3.3.5/lib/backports/rails/module.rb +6 -0
- data/lib/vendor/backports-3.3.5/lib/backports/rails/string.rb +42 -0
- data/lib/vendor/backports-3.3.5/lib/backports/rails.rb +4 -0
- data/lib/vendor/backports-3.3.5/lib/backports/tools.rb +343 -0
- data/lib/vendor/backports-3.3.5/lib/backports/version.rb +3 -0
- data/lib/vendor/backports-3.3.5/lib/backports.rb +4 -0
- data/lib/vendor/dante-0.2.0/lib/dante/runner.rb +275 -0
- data/lib/vendor/dante-0.2.0/lib/dante/version.rb +3 -0
- data/lib/vendor/dante-0.2.0/lib/dante.rb +26 -0
- data/lib/vendor/rack-1.5.2/lib/rack/auth/abstract/handler.rb +37 -0
- data/lib/vendor/rack-1.5.2/lib/rack/auth/abstract/request.rb +43 -0
- data/lib/vendor/rack-1.5.2/lib/rack/auth/basic.rb +58 -0
- data/lib/vendor/rack-1.5.2/lib/rack/auth/digest/md5.rb +129 -0
- data/lib/vendor/rack-1.5.2/lib/rack/auth/digest/nonce.rb +51 -0
- data/lib/vendor/rack-1.5.2/lib/rack/auth/digest/params.rb +53 -0
- data/lib/vendor/rack-1.5.2/lib/rack/auth/digest/request.rb +41 -0
- data/lib/vendor/rack-1.5.2/lib/rack/backports/uri/common_18.rb +56 -0
- data/lib/vendor/rack-1.5.2/lib/rack/backports/uri/common_192.rb +52 -0
- data/lib/vendor/rack-1.5.2/lib/rack/backports/uri/common_193.rb +29 -0
- data/lib/vendor/rack-1.5.2/lib/rack/body_proxy.rb +39 -0
- data/lib/vendor/rack-1.5.2/lib/rack/builder.rb +149 -0
- data/lib/vendor/rack-1.5.2/lib/rack/cascade.rb +52 -0
- data/lib/vendor/rack-1.5.2/lib/rack/chunked.rb +58 -0
- data/lib/vendor/rack-1.5.2/lib/rack/commonlogger.rb +64 -0
- data/lib/vendor/rack-1.5.2/lib/rack/conditionalget.rb +67 -0
- data/lib/vendor/rack-1.5.2/lib/rack/config.rb +20 -0
- data/lib/vendor/rack-1.5.2/lib/rack/content_length.rb +33 -0
- data/lib/vendor/rack-1.5.2/lib/rack/content_type.rb +29 -0
- data/lib/vendor/rack-1.5.2/lib/rack/deflater.rb +116 -0
- data/lib/vendor/rack-1.5.2/lib/rack/directory.rb +161 -0
- data/lib/vendor/rack-1.5.2/lib/rack/etag.rb +64 -0
- data/lib/vendor/rack-1.5.2/lib/rack/file.rb +138 -0
- data/lib/vendor/rack-1.5.2/lib/rack/handler/cgi.rb +61 -0
- data/lib/vendor/rack-1.5.2/lib/rack/handler/evented_mongrel.rb +8 -0
- data/lib/vendor/rack-1.5.2/lib/rack/handler/fastcgi.rb +98 -0
- data/lib/vendor/rack-1.5.2/lib/rack/handler/lsws.rb +61 -0
- data/lib/vendor/rack-1.5.2/lib/rack/handler/mongrel.rb +100 -0
- data/lib/vendor/rack-1.5.2/lib/rack/handler/scgi.rb +67 -0
- data/lib/vendor/rack-1.5.2/lib/rack/handler/swiftiplied_mongrel.rb +8 -0
- data/lib/vendor/rack-1.5.2/lib/rack/handler/thin.rb +27 -0
- data/lib/vendor/rack-1.5.2/lib/rack/handler/webrick.rb +81 -0
- data/lib/vendor/rack-1.5.2/lib/rack/handler.rb +107 -0
- data/lib/vendor/rack-1.5.2/lib/rack/head.rb +22 -0
- data/lib/vendor/rack-1.5.2/lib/rack/lint.rb +699 -0
- data/lib/vendor/rack-1.5.2/lib/rack/lobster.rb +65 -0
- data/lib/vendor/rack-1.5.2/lib/rack/lock.rb +26 -0
- data/lib/vendor/rack-1.5.2/lib/rack/logger.rb +18 -0
- data/lib/vendor/rack-1.5.2/lib/rack/methodoverride.rb +31 -0
- data/lib/vendor/rack-1.5.2/lib/rack/mime.rb +677 -0
- data/lib/vendor/rack-1.5.2/lib/rack/mock.rb +190 -0
- data/lib/vendor/rack-1.5.2/lib/rack/multipart/generator.rb +93 -0
- data/lib/vendor/rack-1.5.2/lib/rack/multipart/parser.rb +176 -0
- data/lib/vendor/rack-1.5.2/lib/rack/multipart/uploaded_file.rb +34 -0
- data/lib/vendor/rack-1.5.2/lib/rack/multipart.rb +34 -0
- data/lib/vendor/rack-1.5.2/lib/rack/nulllogger.rb +18 -0
- data/lib/vendor/rack-1.5.2/lib/rack/recursive.rb +61 -0
- data/lib/vendor/rack-1.5.2/lib/rack/reloader.rb +109 -0
- data/lib/vendor/rack-1.5.2/lib/rack/request.rb +380 -0
- data/lib/vendor/rack-1.5.2/lib/rack/response.rb +155 -0
- data/lib/vendor/rack-1.5.2/lib/rack/rewindable_input.rb +104 -0
- data/lib/vendor/rack-1.5.2/lib/rack/runtime.rb +27 -0
- data/lib/vendor/rack-1.5.2/lib/rack/sendfile.rb +155 -0
- data/lib/vendor/rack-1.5.2/lib/rack/server.rb +362 -0
- data/lib/vendor/rack-1.5.2/lib/rack/session/abstract/id.rb +398 -0
- data/lib/vendor/rack-1.5.2/lib/rack/session/cookie.rb +178 -0
- data/lib/vendor/rack-1.5.2/lib/rack/session/memcache.rb +93 -0
- data/lib/vendor/rack-1.5.2/lib/rack/session/pool.rb +79 -0
- data/lib/vendor/rack-1.5.2/lib/rack/showexceptions.rb +378 -0
- data/lib/vendor/rack-1.5.2/lib/rack/showstatus.rb +113 -0
- data/lib/vendor/rack-1.5.2/lib/rack/static.rb +153 -0
- data/lib/vendor/rack-1.5.2/lib/rack/urlmap.rb +76 -0
- data/lib/vendor/rack-1.5.2/lib/rack/utils/okjson.rb +599 -0
- data/lib/vendor/rack-1.5.2/lib/rack/utils.rb +628 -0
- data/lib/vendor/rack-1.5.2/lib/rack.rb +87 -0
- data/lib/vendor/rack-protection-1.5.1/lib/rack/protection/authenticity_token.rb +31 -0
- data/lib/vendor/rack-protection-1.5.1/lib/rack/protection/base.rb +119 -0
- data/lib/vendor/rack-protection-1.5.1/lib/rack/protection/escaped_params.rb +87 -0
- data/lib/vendor/rack-protection-1.5.1/lib/rack/protection/form_token.rb +23 -0
- data/lib/vendor/rack-protection-1.5.1/lib/rack/protection/frame_options.rb +37 -0
- data/lib/vendor/rack-protection-1.5.1/lib/rack/protection/http_origin.rb +32 -0
- data/lib/vendor/rack-protection-1.5.1/lib/rack/protection/ip_spoofing.rb +23 -0
- data/lib/vendor/rack-protection-1.5.1/lib/rack/protection/json_csrf.rb +35 -0
- data/lib/vendor/rack-protection-1.5.1/lib/rack/protection/path_traversal.rb +47 -0
- data/lib/vendor/rack-protection-1.5.1/lib/rack/protection/remote_referrer.rb +20 -0
- data/lib/vendor/rack-protection-1.5.1/lib/rack/protection/remote_token.rb +22 -0
- data/lib/vendor/rack-protection-1.5.1/lib/rack/protection/session_hijacking.rb +36 -0
- data/lib/vendor/rack-protection-1.5.1/lib/rack/protection/version.rb +16 -0
- data/lib/vendor/rack-protection-1.5.1/lib/rack/protection/xss_header.rb +25 -0
- data/lib/vendor/rack-protection-1.5.1/lib/rack/protection.rb +40 -0
- data/lib/vendor/rack-protection-1.5.1/lib/rack-protection.rb +1 -0
- data/lib/vendor/sinatra-1.4.4/.yardopts +5 -0
- data/lib/vendor/sinatra-1.4.4/lib/sinatra/base.rb +2034 -0
- data/lib/vendor/sinatra-1.4.4/lib/sinatra/images/404.png +0 -0
- data/lib/vendor/sinatra-1.4.4/lib/sinatra/images/500.png +0 -0
- data/lib/vendor/sinatra-1.4.4/lib/sinatra/main.rb +34 -0
- data/lib/vendor/sinatra-1.4.4/lib/sinatra/show_exceptions.rb +345 -0
- data/lib/vendor/sinatra-1.4.4/lib/sinatra/version.rb +3 -0
- data/lib/vendor/sinatra-1.4.4/lib/sinatra.rb +4 -0
- data/lib/vendor/sinatra-contrib-1.4.1/lib/sinatra/capture.rb +124 -0
- data/lib/vendor/sinatra-contrib-1.4.1/lib/sinatra/config_file.rb +167 -0
- data/lib/vendor/sinatra-contrib-1.4.1/lib/sinatra/content_for.rb +125 -0
- data/lib/vendor/sinatra-contrib-1.4.1/lib/sinatra/contrib/all.rb +2 -0
- data/lib/vendor/sinatra-contrib-1.4.1/lib/sinatra/contrib/setup.rb +53 -0
- data/lib/vendor/sinatra-contrib-1.4.1/lib/sinatra/contrib/version.rb +17 -0
- data/lib/vendor/sinatra-contrib-1.4.1/lib/sinatra/contrib.rb +39 -0
- data/lib/vendor/sinatra-contrib-1.4.1/lib/sinatra/cookies.rb +331 -0
- data/lib/vendor/sinatra-contrib-1.4.1/lib/sinatra/decompile.rb +121 -0
- data/lib/vendor/sinatra-contrib-1.4.1/lib/sinatra/engine_tracking.rb +96 -0
- data/lib/vendor/sinatra-contrib-1.4.1/lib/sinatra/extension.rb +95 -0
- data/lib/vendor/sinatra-contrib-1.4.1/lib/sinatra/json.rb +131 -0
- data/lib/vendor/sinatra-contrib-1.4.1/lib/sinatra/link_header.rb +132 -0
- data/lib/vendor/sinatra-contrib-1.4.1/lib/sinatra/multi_route.rb +87 -0
- data/lib/vendor/sinatra-contrib-1.4.1/lib/sinatra/namespace.rb +284 -0
- data/lib/vendor/sinatra-contrib-1.4.1/lib/sinatra/reloader.rb +394 -0
- data/lib/vendor/sinatra-contrib-1.4.1/lib/sinatra/respond_with.rb +247 -0
- data/lib/vendor/sinatra-contrib-1.4.1/lib/sinatra/streaming.rb +243 -0
- data/lib/vendor/sinatra-contrib-1.4.1/lib/sinatra/test_helpers.rb +87 -0
- data/lib/vendor/tilt-1.4.1/lib/tilt/asciidoc.rb +34 -0
- data/lib/vendor/tilt-1.4.1/lib/tilt/builder.rb +40 -0
- data/lib/vendor/tilt-1.4.1/lib/tilt/coffee.rb +54 -0
- data/lib/vendor/tilt-1.4.1/lib/tilt/css.rb +80 -0
- data/lib/vendor/tilt-1.4.1/lib/tilt/csv.rb +71 -0
- data/lib/vendor/tilt-1.4.1/lib/tilt/erb.rb +110 -0
- data/lib/vendor/tilt-1.4.1/lib/tilt/etanni.rb +27 -0
- data/lib/vendor/tilt-1.4.1/lib/tilt/haml.rb +64 -0
- data/lib/vendor/tilt-1.4.1/lib/tilt/liquid.rb +45 -0
- data/lib/vendor/tilt-1.4.1/lib/tilt/markaby.rb +52 -0
- data/lib/vendor/tilt-1.4.1/lib/tilt/markdown.rb +214 -0
- data/lib/vendor/tilt-1.4.1/lib/tilt/nokogiri.rb +43 -0
- data/lib/vendor/tilt-1.4.1/lib/tilt/plain.rb +20 -0
- data/lib/vendor/tilt-1.4.1/lib/tilt/radius.rb +55 -0
- data/lib/vendor/tilt-1.4.1/lib/tilt/rdoc.rb +47 -0
- data/lib/vendor/tilt-1.4.1/lib/tilt/string.rb +21 -0
- data/lib/vendor/tilt-1.4.1/lib/tilt/template.rb +292 -0
- data/lib/vendor/tilt-1.4.1/lib/tilt/textile.rb +30 -0
- data/lib/vendor/tilt-1.4.1/lib/tilt/wiki.rb +58 -0
- data/lib/vendor/tilt-1.4.1/lib/tilt/yajl.rb +94 -0
- data/lib/vendor/tilt-1.4.1/lib/tilt.rb +204 -0
- data/scout_realtime.gemspec +30 -0
- data/test/data_for_testing.rb +1 -0
- data/test/lib/metric_test.rb +48 -0
- data/test/models/cpu_test.rb +24 -0
- data/test/models/disk_test.rb +24 -0
- data/test/models/memory_test.rb +24 -0
- data/test/models/network_test.rb +24 -0
- data/test/models/processes_test.rb +24 -0
- data/test/runner_test.rb +30 -0
- data/test/test_helper.rb +4 -0
- metadata +730 -0
@@ -0,0 +1,189 @@
|
|
1
|
+
var ChartsView = {
|
2
|
+
init: function(params) {
|
3
|
+
var _this = this;
|
4
|
+
this.active = false;
|
5
|
+
this.charts = [];
|
6
|
+
$.each(params, function(name, value) {
|
7
|
+
_this[name] = value;
|
8
|
+
});
|
9
|
+
},
|
10
|
+
|
11
|
+
pollForUpdates: function() {
|
12
|
+
var _this = this;
|
13
|
+
var timeOffset = 0;
|
14
|
+
this.poller = setInterval(function() {
|
15
|
+
_this.update(timeOffset++);
|
16
|
+
}, _this.pollInterval);
|
17
|
+
},
|
18
|
+
|
19
|
+
update: function (timeOffset) {
|
20
|
+
var _this = this;
|
21
|
+
$.getJSON(_this.url + '?time_offset=' + timeOffset,function (data) {
|
22
|
+
_this.updateData(data);
|
23
|
+
if (_this.active) {
|
24
|
+
_this.updateCharts();
|
25
|
+
}
|
26
|
+
}).fail(function () {
|
27
|
+
console.log("error fetching data");
|
28
|
+
});
|
29
|
+
},
|
30
|
+
|
31
|
+
setActive: function() {
|
32
|
+
this.active = true;
|
33
|
+
this.updateCharts();
|
34
|
+
},
|
35
|
+
};
|
36
|
+
|
37
|
+
var Chart = {
|
38
|
+
init: function(params) {
|
39
|
+
var _this = this;
|
40
|
+
$.each(params, function(name, value) {
|
41
|
+
_this[name] = value;
|
42
|
+
});
|
43
|
+
},
|
44
|
+
|
45
|
+
renderData: function() {
|
46
|
+
this.barChart.data = this.data;
|
47
|
+
if (this.data.length) { this.barChart.draw() };
|
48
|
+
},
|
49
|
+
|
50
|
+
updatedLatestValue: function() {
|
51
|
+
this.$latestValue.html(this.formattedValue(this.latestValue));
|
52
|
+
},
|
53
|
+
|
54
|
+
/*
|
55
|
+
* For the displays where the latest value is positioned above the chart, the latest value need to be aligned
|
56
|
+
* with the last rectangle in the chart svg element. This is because the rectangles may not use the full width of the svg
|
57
|
+
* to avoid aliased lines.
|
58
|
+
*/
|
59
|
+
positionLatestValue: function() {
|
60
|
+
if (this.latestValuePositioned) {return true} // only need to position once
|
61
|
+
$lastRect = $(this.chartSVG).children('g').last();
|
62
|
+
// Workaround - FF doesn't return SVG position() relative to the parent but to the entire viewport.
|
63
|
+
left = $lastRect.get(0).getBoundingClientRect().right - $(this.chartSVG).get(0).getBoundingClientRect().left;
|
64
|
+
margin = this.$container.width()-left;
|
65
|
+
this.$latestValue.css("margin-right",margin);
|
66
|
+
if ($chartSub = this.$container.children(".chart_sub")) {
|
67
|
+
$chartSub.css("margin-right",margin);
|
68
|
+
}
|
69
|
+
this.latestValuePositioned = true;
|
70
|
+
},
|
71
|
+
|
72
|
+
formattedValue: function(value, meta_index) {
|
73
|
+
meta_index = typeof meta_index !== 'undefined' ? meta_index : 0; // default to first set of meta values
|
74
|
+
// numberToHumanSize?
|
75
|
+
/*
|
76
|
+
if(this.units && (this.units.indexOf("KB") !== -1 || this.units.indexOf("MB") !== -1)) {
|
77
|
+
var numString;
|
78
|
+
if(this.units.indexOf("KB") !== -1) {
|
79
|
+
numString = numberToHumanSize(this.latestValue * 1024);
|
80
|
+
} else if(this.units.indexOf("MB") !== -1) {
|
81
|
+
numString = numberToHumanSize(this.latestValue * 1024 * 1024);
|
82
|
+
}
|
83
|
+
this.latestValue = numString.split(" ")[0];
|
84
|
+
this.units = this.units.replace("KB", numString.split(" ")[1]);
|
85
|
+
}
|
86
|
+
*/
|
87
|
+
var formattedUnits;
|
88
|
+
var currentMeta;
|
89
|
+
if(this.meta[meta_index] == null) {
|
90
|
+
currentMeta = {};
|
91
|
+
} else {
|
92
|
+
currentMeta = this.meta[meta_index];
|
93
|
+
}
|
94
|
+
if(typeof currentMeta.units == 'undefined') {
|
95
|
+
formattedUnits = '';
|
96
|
+
} else if(currentMeta.units == '%') {
|
97
|
+
formattedUnits = currentMeta.units;
|
98
|
+
} else {
|
99
|
+
formattedUnits = ' ' + currentMeta.units;
|
100
|
+
}
|
101
|
+
return numberFormatter(value, currentMeta.precision, currentMeta.delimiter) + formattedUnits;
|
102
|
+
},
|
103
|
+
|
104
|
+
labelOrBlank: function(meta_index) {
|
105
|
+
if(this.meta[meta_index] == null) {
|
106
|
+
return '';
|
107
|
+
} else {
|
108
|
+
return this.meta[meta_index].label + ': ';
|
109
|
+
}
|
110
|
+
}
|
111
|
+
};
|
112
|
+
|
113
|
+
// based on https://github.com/jblz/Javascript-Number-Formatter/blob/master/numberFormatter.js
|
114
|
+
|
115
|
+
function numberFormatter ( num, places, ksep, dsep ) {
|
116
|
+
var sign = '';
|
117
|
+
if(num < 0) { sign = '-'; }
|
118
|
+
num = Math.abs(num);
|
119
|
+
var rounder = function( n, places ) {
|
120
|
+
n2 = parseFloat(n);
|
121
|
+
if( isNaN(n2) ) return n;
|
122
|
+
places = parseInt(places);
|
123
|
+
if( isNaN(places) ) places = 0;
|
124
|
+
var factor= Math.pow(10,places);
|
125
|
+
return Math.floor(n*factor+((n*factor*10)%10>=5?1:0))/factor;
|
126
|
+
};
|
127
|
+
var num = rounder( num, places );
|
128
|
+
if ( isNaN( num ) ) return num;
|
129
|
+
if ( 'undefined' == typeof places ) places = 0;
|
130
|
+
if ( 'undefined' == typeof ksep ) ksep = ',';
|
131
|
+
if ( 'undefined' == typeof dsep ) dsep = '.';
|
132
|
+
num = num.toString();
|
133
|
+
if ( places > 0 ) {
|
134
|
+
var dot = num.indexOf( '.' );
|
135
|
+
var rlength = num.substr( dot ).length - 1;
|
136
|
+
if ( -1 == dot ) {
|
137
|
+
num = num + '.';
|
138
|
+
for ( var i = 0; i < places; i++ ) {
|
139
|
+
num = num + '0';
|
140
|
+
}
|
141
|
+
}
|
142
|
+
else if ( places > rlength ) {
|
143
|
+
var diff = places - rlength;
|
144
|
+
for ( var i = 0; i < diff; i++ ) {
|
145
|
+
num = num + '0';
|
146
|
+
}
|
147
|
+
}
|
148
|
+
}
|
149
|
+
|
150
|
+
var l = '', m = '', r = '';
|
151
|
+
num.replace( /^([0-9]*)?(\.)?([0-9]*)?$/, function( $0, $1, $2, $3 ) {
|
152
|
+
var llen = $1.length;
|
153
|
+
if ( llen > 3 ) {
|
154
|
+
for ( var i = llen - 1; i >= 0; i-- ) {
|
155
|
+
var x = i - llen + 1;
|
156
|
+
if ( x != 0 && x % 3 == 0 ) l = ksep + l;
|
157
|
+
l = $1[i] + l;
|
158
|
+
}
|
159
|
+
}
|
160
|
+
else {
|
161
|
+
l = $1;
|
162
|
+
}
|
163
|
+
if ( $2 == '.' && ! isNaN( $3 ) ) {
|
164
|
+
m = dsep;
|
165
|
+
r = $3;
|
166
|
+
}
|
167
|
+
});
|
168
|
+
return sign + l + m + r;
|
169
|
+
}
|
170
|
+
|
171
|
+
function formatTime(timestamp) {
|
172
|
+
var date = new Date(timestamp);
|
173
|
+
var monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
|
174
|
+
var month = monthNames[date.getMonth()];
|
175
|
+
var hour = date.getHours();
|
176
|
+
var ampm;
|
177
|
+
if(hour > 12) {
|
178
|
+
hour = hour - 12;
|
179
|
+
ampm = 'pm';
|
180
|
+
} else {
|
181
|
+
ampm = 'am';
|
182
|
+
}
|
183
|
+
// only print date if not today
|
184
|
+
dateString = ''
|
185
|
+
if (date.toDateString() != new Date().toDateString()) {
|
186
|
+
dateString += month + ' ' + date.getDate() + ', ';
|
187
|
+
}
|
188
|
+
return dateString + hour + ':' + (date.getMinutes()<10?'0':'') + date.getMinutes() + ampm;
|
189
|
+
}
|
@@ -0,0 +1,210 @@
|
|
1
|
+
/* new BarChart({ element: this.chartSVG, data: this.data, yMax: this.yMax, addColors: this.colors, parent: this })
|
2
|
+
*/
|
3
|
+
function BarChart(params) {
|
4
|
+
this.data = params.data;
|
5
|
+
this.parent = params.parent;
|
6
|
+
var element = params.element;
|
7
|
+
var colors = ["#65A7DE"]; // default color is light blue
|
8
|
+
var currentYMax = params.yMax;
|
9
|
+
var numberOfBars = this.data.length;
|
10
|
+
if(params.addColors) {
|
11
|
+
colors = colors.concat(params.addColors);
|
12
|
+
}
|
13
|
+
var color = d3.scale.ordinal()
|
14
|
+
.range(colors)
|
15
|
+
.domain([0, (this.data.length ? this.data[0].value.length-1 : 0)])
|
16
|
+
|
17
|
+
var selection, width, height, rangeWidth, barWidth, y, x, yWithMinimum, heightWithMinimum, tooltip;
|
18
|
+
|
19
|
+
this.setYMax = function(yMax) {
|
20
|
+
currentYMax = yMax;
|
21
|
+
}
|
22
|
+
|
23
|
+
function setViewDependentVariables() {
|
24
|
+
selection = d3.select(element);
|
25
|
+
// get the width and height form the selection
|
26
|
+
width = selection.node().clientWidth || parseInt($(selection.node()).css('width'));
|
27
|
+
height = selection.node().clientHeight || parseInt($(selection.node()).css('height'));
|
28
|
+
|
29
|
+
// want the same width for each bar. with anti-aliasing enabled, the widths will be integers but aren't
|
30
|
+
// guarenteed to be the same width. this uses the greatest possible width of the svg element where the bars
|
31
|
+
// will all be the same width.
|
32
|
+
rangeWidth = Math.floor(width / numberOfBars)*numberOfBars;
|
33
|
+
barWidth = (rangeWidth / numberOfBars) - 1;
|
34
|
+
|
35
|
+
y = d3.scale.linear().range([height, 0]);
|
36
|
+
x = d3.time.scale().rangeRound([0, rangeWidth]);
|
37
|
+
|
38
|
+
// y and height are modified to always show the first series even if it isn't large enough
|
39
|
+
// to be displayed. this ensures a dashed line is always displayed vs. missing blocks.
|
40
|
+
yWithMinimum = function(d, i) {
|
41
|
+
var yValue = y(d.y1);
|
42
|
+
if (i==0 && (y(d.y0) - y(d.y1)) < 1 && y(0) == height) {
|
43
|
+
yValue = height - 1.5; // height of the container - 1px (height we're using as minimum) - 0.5 (anti-aliasing)
|
44
|
+
}
|
45
|
+
return yValue;
|
46
|
+
}
|
47
|
+
|
48
|
+
heightWithMinimum = function(d, i) {
|
49
|
+
var height = Math.abs(y(d.y0) - y(d.y1));
|
50
|
+
if (i==0) {
|
51
|
+
height = d3.max( [height,1] );
|
52
|
+
}
|
53
|
+
return height;
|
54
|
+
}
|
55
|
+
|
56
|
+
if($('#charts-tooltip').length > 0) {
|
57
|
+
tooltip = d3.select('#charts-tooltip');
|
58
|
+
} else {
|
59
|
+
tooltip = d3.select('body').append('div')
|
60
|
+
.attr('id', 'charts-tooltip')
|
61
|
+
.attr('class', 'modal-tooltip')
|
62
|
+
.style('opacity', 0);
|
63
|
+
}
|
64
|
+
}
|
65
|
+
|
66
|
+
/* passing in anything other than false will make the charts update without a sliding effect.
|
67
|
+
Pass in false (or nothing at all), and the bars will slide left for the new data. */
|
68
|
+
this.draw = function(suppressAnimation) {
|
69
|
+
if(!selection) { setViewDependentVariables(); } // only call the first time we draw
|
70
|
+
var animationDuration = suppressAnimation ? 0 : 1000;
|
71
|
+
var data = this.data;
|
72
|
+
var _this = this;
|
73
|
+
var stackedData = data.map(function(d){
|
74
|
+
y0 = 0;
|
75
|
+
formattedTime = formatTime(d.time);
|
76
|
+
return { value: d.value.map(
|
77
|
+
function(d) {
|
78
|
+
if(d >= 0) {
|
79
|
+
thisY0 = y0;
|
80
|
+
thisY1 = y0 += d;
|
81
|
+
//return { d: d, time: formattedTime, y0: y0, y1: y0 += d }
|
82
|
+
} else {
|
83
|
+
thisY1 = y0;
|
84
|
+
thisY0 = y0 += d;
|
85
|
+
//return { d: d, time: formattedTime, y0: y0 += d, y1: y0 - d }
|
86
|
+
}
|
87
|
+
return { d: d, time: formattedTime, y0: thisY0, y1: thisY1 }
|
88
|
+
}
|
89
|
+
), time: d.time };
|
90
|
+
})
|
91
|
+
|
92
|
+
// time update
|
93
|
+
var timeMin = d3.min(data.map(function(d) {return d.time}));
|
94
|
+
// adds the step to the timeMax. otherwise, the last data element is drawn on 100% of the x scale.
|
95
|
+
// want the last data element to fully fit in the svg element.
|
96
|
+
var timeMax = d3.max(data.map(function(d) {return d.time})) + step(data); // add a minute to the max
|
97
|
+
x.domain([timeMin, timeMax]);
|
98
|
+
y.domain([yMin(data), yMax(data)]);
|
99
|
+
var state = selection.selectAll(".g")
|
100
|
+
.data(stackedData, function(d) { return d.time; });
|
101
|
+
// initialise entering bars and then do the transition
|
102
|
+
var stateEnter = state
|
103
|
+
.enter().append("g")
|
104
|
+
.attr("class", "g")
|
105
|
+
.attr("transform", function(d) { return "translate(" + x(d.time + enterStep(state)) + ",0)"; })
|
106
|
+
|
107
|
+
stateEnter.selectAll("rect")
|
108
|
+
.data(function(d) { return d.value; })
|
109
|
+
.enter().append("rect")
|
110
|
+
.attr("width", barWidth)
|
111
|
+
.attr("y", function(d,i) { return yWithMinimum(d, i); })
|
112
|
+
.attr("height", function(d,i) { return heightWithMinimum(d, i); })
|
113
|
+
.attr("class", "bar")
|
114
|
+
.style("fill", function(d,i) { return color(i); })
|
115
|
+
.on("mouseover", function(d, i) {
|
116
|
+
tooltip.transition()
|
117
|
+
.duration(200)
|
118
|
+
.style('opacity', 1)
|
119
|
+
tooltip.html(tooltipHTML(_this,d,i))
|
120
|
+
.style("left", (d3.event.pageX) + 20 + "px")
|
121
|
+
.style("top", (d3.event.pageY) + "px");
|
122
|
+
})
|
123
|
+
.on("mouseout", function(d) {
|
124
|
+
tooltip.transition()
|
125
|
+
.duration(200)
|
126
|
+
.style('opacity', 0);
|
127
|
+
});
|
128
|
+
|
129
|
+
|
130
|
+
// transition entering and updating bars
|
131
|
+
state.transition()
|
132
|
+
.duration(animationDuration)
|
133
|
+
.attr("transform", function(d) { return "translate(" + x(d.time) + ",0)"; })
|
134
|
+
.attr('width', barWidth);
|
135
|
+
|
136
|
+
// rescale height to new data
|
137
|
+
state.selectAll('rect').transition()
|
138
|
+
.duration(animationDuration)
|
139
|
+
.attr("y", function(d,i) { return yWithMinimum(d, i); })
|
140
|
+
.attr("height", function(d,i) { return heightWithMinimum(d, i); });
|
141
|
+
|
142
|
+
// remove shifted bar that is not displayed anymore
|
143
|
+
state.exit()
|
144
|
+
.transition()
|
145
|
+
.duration(animationDuration)
|
146
|
+
.attr("transform", function(d) { return "translate(" + x(d.time) + ",0)"; })
|
147
|
+
.remove();
|
148
|
+
}
|
149
|
+
|
150
|
+
function yMax(data) {
|
151
|
+
dataMax = d3.max(data, function(d) {
|
152
|
+
var total = 0;
|
153
|
+
$.each(d.value, function(i, value) {
|
154
|
+
total += value;
|
155
|
+
});
|
156
|
+
return total;
|
157
|
+
});
|
158
|
+
return d3.max([(currentYMax||0), dataMax]);
|
159
|
+
}
|
160
|
+
|
161
|
+
function yMin(data) {
|
162
|
+
dataMin = d3.min(data, function(d) {
|
163
|
+
var total = 0;
|
164
|
+
$.each(d.value, function(i, value) {
|
165
|
+
total += value;
|
166
|
+
});
|
167
|
+
return total;
|
168
|
+
});
|
169
|
+
return d3.min([0, dataMin]);
|
170
|
+
}
|
171
|
+
|
172
|
+
/* When new data are added via enter(), they are transitioned from the right to the left unless
|
173
|
+
* >= 6 new elements will be added. This is a bit of a hack to not apply a transition when the page is
|
174
|
+
* initially loaded, but may actually look better when a refresh results in a lot more data
|
175
|
+
* (shifting a lot of elements looks wrong).
|
176
|
+
*/
|
177
|
+
function enterStep(state) {
|
178
|
+
var val;
|
179
|
+
// why 6? our highest interval is 5 minutes, so on initial, clients on this interval will show 30/5=6 bars.
|
180
|
+
if (state.enter()[0].length >= 6) {
|
181
|
+
val=0;
|
182
|
+
} else {
|
183
|
+
val=step(state.data());
|
184
|
+
}
|
185
|
+
return val;
|
186
|
+
}
|
187
|
+
|
188
|
+
// Returns the time interval interval btw data values in ms
|
189
|
+
function step(data) {
|
190
|
+
return data[1].time-data[0].time
|
191
|
+
}
|
192
|
+
|
193
|
+
/* Formats the text for the tooltips. Logic:
|
194
|
+
* If there is only one layer, don't print the label. Put time+value on same line.
|
195
|
+
* If there is more than one layer, put time on first line, then label+value on the next line.
|
196
|
+
*/
|
197
|
+
function tooltipHTML(chart,d,i) {
|
198
|
+
var tooltipHTML = ''
|
199
|
+
if (chart.parent.meta.length > 1) {
|
200
|
+
tooltipHTML = d.time + "<br/>";
|
201
|
+
tooltipHTML += "<span class='label'>" + chart.parent.meta[i].label + "</span>";
|
202
|
+
} else {
|
203
|
+
tooltipHTML += "<span class='label'>" + d.time+ "</span>";
|
204
|
+
}
|
205
|
+
tooltipHTML += "<strong>"+chart.parent.formattedValue(d.d)+"</strong>";
|
206
|
+
return tooltipHTML;
|
207
|
+
}
|
208
|
+
|
209
|
+
return this;
|
210
|
+
}
|
@@ -0,0 +1,168 @@
|
|
1
|
+
function lineChart(params) {
|
2
|
+
this.data = params.data;
|
3
|
+
this.yScaleMax = params.yScaleMax;
|
4
|
+
this.element = params.element;
|
5
|
+
this.metadata = params.metadata;
|
6
|
+
var line, path, x, y, barWidth, height, selection, chartInfo, latestValue, chartId;
|
7
|
+
|
8
|
+
this.draw = function() {
|
9
|
+
var _this = this;
|
10
|
+
selection = d3.select(this.element);
|
11
|
+
chartId = $(selection[0]).data('collector') + $(selection[0]).data('instance-name');
|
12
|
+
// get the width and height form the selection
|
13
|
+
var width = selection.node().clientWidth || parseInt($(selection.node()).css('width'));
|
14
|
+
height = selection.node().clientHeight || parseInt($(selection.node()).css('height'));
|
15
|
+
y = d3.scale.linear().range([height, 0]);
|
16
|
+
x = d3.time.scale().range([0, width]);
|
17
|
+
now = new Date();
|
18
|
+
x.domain([new Date(now - 60 * refreshInterval), now]);
|
19
|
+
var currentYMax = d3.max([this.yScaleMax, yMax(this.data)]);
|
20
|
+
if(this.yScaleMax) {
|
21
|
+
var currentYMin = d3.min([0,yMin(this.data)]);
|
22
|
+
} else {
|
23
|
+
var currentYMin = yMin(this.data);
|
24
|
+
}
|
25
|
+
y.domain([currentYMin, currentYMax])
|
26
|
+
|
27
|
+
barWidth = width / this.data.length;
|
28
|
+
|
29
|
+
// used to handle clipping, but not sure how it works (or if it is doing anything)
|
30
|
+
selection.append("defs").append("clipPath")
|
31
|
+
.attr("id", "clip-" + chartId)
|
32
|
+
.attr("class", "clip-path")
|
33
|
+
.append("rect")
|
34
|
+
.attr("width", width - (barWidth * 2)) // new data points are drawn outside of clip area
|
35
|
+
.attr("height", height);
|
36
|
+
|
37
|
+
line = d3.svg.line()
|
38
|
+
.interpolate("basis")
|
39
|
+
.x(function(d, i) { return x(d.time); })
|
40
|
+
.y(function(d, i) { return y(d.value[0]); });
|
41
|
+
|
42
|
+
|
43
|
+
chartInfo = $(selection[0]).parent().siblings('.chart_info');
|
44
|
+
latestValue = $(selection[0]).parent().siblings('.latest_value');
|
45
|
+
latestValue.html(this.format(this.data[this.data.length - 1].value[0]));
|
46
|
+
|
47
|
+
chartSection = selection.selectAll("rect")
|
48
|
+
.data(this.data);
|
49
|
+
|
50
|
+
chartSection.enter()
|
51
|
+
.append("rect")
|
52
|
+
.attr("class", "chart_section")
|
53
|
+
.attr("width", barWidth)
|
54
|
+
.attr("height", height)
|
55
|
+
.attr("transform", function(d, i) { return "translate(" + (x(d.time) - barWidth) + ",0)"; })
|
56
|
+
.on("mouseover", function(d) {
|
57
|
+
//latestValue.html(_this.format(d.value[0]));
|
58
|
+
chartInfo.html(_this.tooltip(d));
|
59
|
+
})
|
60
|
+
.on("mouseout", function(d) {
|
61
|
+
chartInfo.html("");
|
62
|
+
});
|
63
|
+
|
64
|
+
path = selection.append("g")
|
65
|
+
.attr("clip-path", "url(#clip-" + chartId + ")")
|
66
|
+
.append("path")
|
67
|
+
.datum(this.data)
|
68
|
+
.attr("class", "line")
|
69
|
+
.attr("d", line);
|
70
|
+
|
71
|
+
this.refresh();
|
72
|
+
} // this.draw
|
73
|
+
|
74
|
+
this.refresh = function() {
|
75
|
+
var _this = this;
|
76
|
+
if(window.refresher) {
|
77
|
+
var now = new Date();
|
78
|
+
// update domains
|
79
|
+
x.domain([new Date(now - 60 * refreshInterval), now.getTime()]);
|
80
|
+
var currentYMax = d3.max([this.yScaleMax, yMax(this.data)]);
|
81
|
+
if(this.yScaleMax > 0) {
|
82
|
+
var currentYMin = d3.min([0,yMin(this.data)]);
|
83
|
+
} else {
|
84
|
+
var currentYMin = yMin(this.data);
|
85
|
+
}
|
86
|
+
y.domain([currentYMin, currentYMax]);
|
87
|
+
|
88
|
+
latestValue.html(this.format(this.data[this.data.length - 1].value[0]));
|
89
|
+
|
90
|
+
path
|
91
|
+
// update the line - this isn't part of the transition. new points will be off to the right.
|
92
|
+
.attr("d", line)
|
93
|
+
.attr("transform", null)
|
94
|
+
// slide the path to the left 1 second
|
95
|
+
.transition()
|
96
|
+
.duration(refreshInterval - 50) // duration is the same as the update interval...if it equals the update interval, it gets canceled?
|
97
|
+
.ease("linear")
|
98
|
+
.attr("transform", "translate(" + x(x.domain()[0] - refreshInterval) + ")")
|
99
|
+
.each("end", function() {
|
100
|
+
_this.refresh();
|
101
|
+
});
|
102
|
+
|
103
|
+
chartSection = selection.selectAll("rect")
|
104
|
+
.data(this.data);
|
105
|
+
|
106
|
+
chartSection.enter()
|
107
|
+
.append("rect")
|
108
|
+
.attr("class", "chart_section")
|
109
|
+
.attr("width", barWidth)
|
110
|
+
.attr("height", height)
|
111
|
+
.attr("transform", function(d, i) { return "translate(" + (x(d.time) - barWidth) + ",0)"; })
|
112
|
+
.on("mouseover", function(d) {
|
113
|
+
chartInfo.html(_this.tooltip(d));
|
114
|
+
})
|
115
|
+
.on("mouseout", function(d) {
|
116
|
+
chartInfo.html("");
|
117
|
+
})
|
118
|
+
.transition()
|
119
|
+
.duration(0)
|
120
|
+
.attr("transform", function(d, i) { return "translate(" + (x(d.time) - barWidth) + ",0)"; })
|
121
|
+
} else {
|
122
|
+
setTimeout(function() { _this.refresh() }, refreshInterval);
|
123
|
+
}
|
124
|
+
}
|
125
|
+
|
126
|
+
/* Given an array of data, iterates through and returns the maximum value. */
|
127
|
+
function yMax(data) {
|
128
|
+
dataMax = d3.max(data, function(d) {
|
129
|
+
var total = 0;
|
130
|
+
$.each(d.value, function(i, value) {
|
131
|
+
total += value;
|
132
|
+
});
|
133
|
+
return total;
|
134
|
+
});
|
135
|
+
return dataMax;
|
136
|
+
}
|
137
|
+
|
138
|
+
/* Given an array of data, iterates through and returns the minimum value. */
|
139
|
+
function yMin(data) {
|
140
|
+
dataMin = d3.min(data, function(d) {
|
141
|
+
var total = 0;
|
142
|
+
$.each(d.value, function(i, value) {
|
143
|
+
total += value;
|
144
|
+
});
|
145
|
+
return total;
|
146
|
+
});
|
147
|
+
return dataMin;
|
148
|
+
}
|
149
|
+
|
150
|
+
this.format = function(value) {
|
151
|
+
var formattedUnits = ( this.metadata.units == '%' ? '%' : ' ' + this.metadata.units )
|
152
|
+
return(value.toFixed(this.metadata.precision) + formattedUnits);
|
153
|
+
}
|
154
|
+
|
155
|
+
this.tooltip = function(data) {
|
156
|
+
var tooltipStr = '';
|
157
|
+
if(data.valueBreakdown) {
|
158
|
+
for(var key in data.valueBreakdown) {
|
159
|
+
tooltipStr += key + ': ' + this.format(data.valueBreakdown[key]) + '; ';
|
160
|
+
}
|
161
|
+
} else {
|
162
|
+
tooltipStr = this.format(data.value[0]);
|
163
|
+
}
|
164
|
+
return tooltipStr;
|
165
|
+
}
|
166
|
+
|
167
|
+
return this;
|
168
|
+
}
|