scout_realtime 0.5.1
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.
- 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,138 @@
|
|
|
1
|
+
require 'time'
|
|
2
|
+
require 'rack/utils'
|
|
3
|
+
require 'rack/mime'
|
|
4
|
+
|
|
5
|
+
module Rack
|
|
6
|
+
# Rack::File serves files below the +root+ directory given, according to the
|
|
7
|
+
# path info of the Rack request.
|
|
8
|
+
# e.g. when Rack::File.new("/etc") is used, you can access 'passwd' file
|
|
9
|
+
# as http://localhost:9292/passwd
|
|
10
|
+
#
|
|
11
|
+
# Handlers can detect if bodies are a Rack::File, and use mechanisms
|
|
12
|
+
# like sendfile on the +path+.
|
|
13
|
+
|
|
14
|
+
class File
|
|
15
|
+
SEPS = Regexp.union(*[::File::SEPARATOR, ::File::ALT_SEPARATOR].compact)
|
|
16
|
+
ALLOWED_VERBS = %w[GET HEAD]
|
|
17
|
+
|
|
18
|
+
attr_accessor :root
|
|
19
|
+
attr_accessor :path
|
|
20
|
+
attr_accessor :cache_control
|
|
21
|
+
|
|
22
|
+
alias :to_path :path
|
|
23
|
+
|
|
24
|
+
def initialize(root, headers={}, default_mime = 'text/plain')
|
|
25
|
+
@root = root
|
|
26
|
+
@headers = headers
|
|
27
|
+
@default_mime = default_mime
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def call(env)
|
|
31
|
+
dup._call(env)
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
F = ::File
|
|
35
|
+
|
|
36
|
+
def _call(env)
|
|
37
|
+
unless ALLOWED_VERBS.include? env["REQUEST_METHOD"]
|
|
38
|
+
return fail(405, "Method Not Allowed")
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
path_info = Utils.unescape(env["PATH_INFO"])
|
|
42
|
+
parts = path_info.split SEPS
|
|
43
|
+
|
|
44
|
+
clean = []
|
|
45
|
+
|
|
46
|
+
parts.each do |part|
|
|
47
|
+
next if part.empty? || part == '.'
|
|
48
|
+
part == '..' ? clean.pop : clean << part
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
@path = F.join(@root, *clean)
|
|
52
|
+
|
|
53
|
+
available = begin
|
|
54
|
+
F.file?(@path) && F.readable?(@path)
|
|
55
|
+
rescue SystemCallError
|
|
56
|
+
false
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
if available
|
|
60
|
+
serving(env)
|
|
61
|
+
else
|
|
62
|
+
fail(404, "File not found: #{path_info}")
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
def serving(env)
|
|
67
|
+
last_modified = F.mtime(@path).httpdate
|
|
68
|
+
return [304, {}, []] if env['HTTP_IF_MODIFIED_SINCE'] == last_modified
|
|
69
|
+
|
|
70
|
+
headers = { "Last-Modified" => last_modified }
|
|
71
|
+
mime = Mime.mime_type(F.extname(@path), @default_mime)
|
|
72
|
+
headers["Content-Type"] = mime if mime
|
|
73
|
+
|
|
74
|
+
# Set custom headers
|
|
75
|
+
@headers.each { |field, content| headers[field] = content } if @headers
|
|
76
|
+
|
|
77
|
+
response = [ 200, headers, env["REQUEST_METHOD"] == "HEAD" ? [] : self ]
|
|
78
|
+
|
|
79
|
+
# NOTE:
|
|
80
|
+
# We check via File::size? whether this file provides size info
|
|
81
|
+
# via stat (e.g. /proc files often don't), otherwise we have to
|
|
82
|
+
# figure it out by reading the whole file into memory.
|
|
83
|
+
size = F.size?(@path) || Utils.bytesize(F.read(@path))
|
|
84
|
+
|
|
85
|
+
ranges = Rack::Utils.byte_ranges(env, size)
|
|
86
|
+
if ranges.nil? || ranges.length > 1
|
|
87
|
+
# No ranges, or multiple ranges (which we don't support):
|
|
88
|
+
# TODO: Support multiple byte-ranges
|
|
89
|
+
response[0] = 200
|
|
90
|
+
@range = 0..size-1
|
|
91
|
+
elsif ranges.empty?
|
|
92
|
+
# Unsatisfiable. Return error, and file size:
|
|
93
|
+
response = fail(416, "Byte range unsatisfiable")
|
|
94
|
+
response[1]["Content-Range"] = "bytes */#{size}"
|
|
95
|
+
return response
|
|
96
|
+
else
|
|
97
|
+
# Partial content:
|
|
98
|
+
@range = ranges[0]
|
|
99
|
+
response[0] = 206
|
|
100
|
+
response[1]["Content-Range"] = "bytes #{@range.begin}-#{@range.end}/#{size}"
|
|
101
|
+
size = @range.end - @range.begin + 1
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
response[1]["Content-Length"] = size.to_s
|
|
105
|
+
response
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
def each
|
|
109
|
+
F.open(@path, "rb") do |file|
|
|
110
|
+
file.seek(@range.begin)
|
|
111
|
+
remaining_len = @range.end-@range.begin+1
|
|
112
|
+
while remaining_len > 0
|
|
113
|
+
part = file.read([8192, remaining_len].min)
|
|
114
|
+
break unless part
|
|
115
|
+
remaining_len -= part.length
|
|
116
|
+
|
|
117
|
+
yield part
|
|
118
|
+
end
|
|
119
|
+
end
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
private
|
|
123
|
+
|
|
124
|
+
def fail(status, body)
|
|
125
|
+
body += "\n"
|
|
126
|
+
[
|
|
127
|
+
status,
|
|
128
|
+
{
|
|
129
|
+
"Content-Type" => "text/plain",
|
|
130
|
+
"Content-Length" => body.size.to_s,
|
|
131
|
+
"X-Cascade" => "pass"
|
|
132
|
+
},
|
|
133
|
+
[body]
|
|
134
|
+
]
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
end
|
|
138
|
+
end
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
require 'rack/content_length'
|
|
2
|
+
require 'rack/rewindable_input'
|
|
3
|
+
|
|
4
|
+
module Rack
|
|
5
|
+
module Handler
|
|
6
|
+
class CGI
|
|
7
|
+
def self.run(app, options=nil)
|
|
8
|
+
$stdin.binmode
|
|
9
|
+
serve app
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def self.serve(app)
|
|
13
|
+
env = ENV.to_hash
|
|
14
|
+
env.delete "HTTP_CONTENT_LENGTH"
|
|
15
|
+
|
|
16
|
+
env["SCRIPT_NAME"] = "" if env["SCRIPT_NAME"] == "/"
|
|
17
|
+
|
|
18
|
+
env.update({"rack.version" => Rack::VERSION,
|
|
19
|
+
"rack.input" => Rack::RewindableInput.new($stdin),
|
|
20
|
+
"rack.errors" => $stderr,
|
|
21
|
+
|
|
22
|
+
"rack.multithread" => false,
|
|
23
|
+
"rack.multiprocess" => true,
|
|
24
|
+
"rack.run_once" => true,
|
|
25
|
+
|
|
26
|
+
"rack.url_scheme" => ["yes", "on", "1"].include?(ENV["HTTPS"]) ? "https" : "http"
|
|
27
|
+
})
|
|
28
|
+
|
|
29
|
+
env["QUERY_STRING"] ||= ""
|
|
30
|
+
env["HTTP_VERSION"] ||= env["SERVER_PROTOCOL"]
|
|
31
|
+
env["REQUEST_PATH"] ||= "/"
|
|
32
|
+
|
|
33
|
+
status, headers, body = app.call(env)
|
|
34
|
+
begin
|
|
35
|
+
send_headers status, headers
|
|
36
|
+
send_body body
|
|
37
|
+
ensure
|
|
38
|
+
body.close if body.respond_to? :close
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def self.send_headers(status, headers)
|
|
43
|
+
$stdout.print "Status: #{status}\r\n"
|
|
44
|
+
headers.each { |k, vs|
|
|
45
|
+
vs.split("\n").each { |v|
|
|
46
|
+
$stdout.print "#{k}: #{v}\r\n"
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
$stdout.print "\r\n"
|
|
50
|
+
$stdout.flush
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def self.send_body(body)
|
|
54
|
+
body.each { |part|
|
|
55
|
+
$stdout.print part
|
|
56
|
+
$stdout.flush
|
|
57
|
+
}
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
end
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
require 'fcgi'
|
|
2
|
+
require 'socket'
|
|
3
|
+
require 'rack/content_length'
|
|
4
|
+
require 'rack/rewindable_input'
|
|
5
|
+
|
|
6
|
+
if defined? FCGI::Stream
|
|
7
|
+
class FCGI::Stream
|
|
8
|
+
alias _rack_read_without_buffer read
|
|
9
|
+
|
|
10
|
+
def read(n, buffer=nil)
|
|
11
|
+
buf = _rack_read_without_buffer n
|
|
12
|
+
buffer.replace(buf.to_s) if buffer
|
|
13
|
+
buf
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
module Rack
|
|
19
|
+
module Handler
|
|
20
|
+
class FastCGI
|
|
21
|
+
def self.run(app, options={})
|
|
22
|
+
if options[:File]
|
|
23
|
+
STDIN.reopen(UNIXServer.new(options[:File]))
|
|
24
|
+
elsif options[:Port]
|
|
25
|
+
STDIN.reopen(TCPServer.new(options[:Host], options[:Port]))
|
|
26
|
+
end
|
|
27
|
+
FCGI.each { |request|
|
|
28
|
+
serve request, app
|
|
29
|
+
}
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def self.valid_options
|
|
33
|
+
{
|
|
34
|
+
"Host=HOST" => "Hostname to listen on (default: localhost)",
|
|
35
|
+
"Port=PORT" => "Port to listen on (default: 8080)",
|
|
36
|
+
"File=PATH" => "Creates a Domain socket at PATH instead of a TCP socket. Ignores Host and Port if set.",
|
|
37
|
+
}
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def self.serve(request, app)
|
|
41
|
+
env = request.env
|
|
42
|
+
env.delete "HTTP_CONTENT_LENGTH"
|
|
43
|
+
|
|
44
|
+
env["SCRIPT_NAME"] = "" if env["SCRIPT_NAME"] == "/"
|
|
45
|
+
|
|
46
|
+
rack_input = RewindableInput.new(request.in)
|
|
47
|
+
|
|
48
|
+
env.update({"rack.version" => Rack::VERSION,
|
|
49
|
+
"rack.input" => rack_input,
|
|
50
|
+
"rack.errors" => request.err,
|
|
51
|
+
|
|
52
|
+
"rack.multithread" => false,
|
|
53
|
+
"rack.multiprocess" => true,
|
|
54
|
+
"rack.run_once" => false,
|
|
55
|
+
|
|
56
|
+
"rack.url_scheme" => ["yes", "on", "1"].include?(env["HTTPS"]) ? "https" : "http"
|
|
57
|
+
})
|
|
58
|
+
|
|
59
|
+
env["QUERY_STRING"] ||= ""
|
|
60
|
+
env["HTTP_VERSION"] ||= env["SERVER_PROTOCOL"]
|
|
61
|
+
env["REQUEST_PATH"] ||= "/"
|
|
62
|
+
env.delete "CONTENT_TYPE" if env["CONTENT_TYPE"] == ""
|
|
63
|
+
env.delete "CONTENT_LENGTH" if env["CONTENT_LENGTH"] == ""
|
|
64
|
+
|
|
65
|
+
begin
|
|
66
|
+
status, headers, body = app.call(env)
|
|
67
|
+
begin
|
|
68
|
+
send_headers request.out, status, headers
|
|
69
|
+
send_body request.out, body
|
|
70
|
+
ensure
|
|
71
|
+
body.close if body.respond_to? :close
|
|
72
|
+
end
|
|
73
|
+
ensure
|
|
74
|
+
rack_input.close
|
|
75
|
+
request.finish
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
def self.send_headers(out, status, headers)
|
|
80
|
+
out.print "Status: #{status}\r\n"
|
|
81
|
+
headers.each { |k, vs|
|
|
82
|
+
vs.split("\n").each { |v|
|
|
83
|
+
out.print "#{k}: #{v}\r\n"
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
out.print "\r\n"
|
|
87
|
+
out.flush
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
def self.send_body(out, body)
|
|
91
|
+
body.each { |part|
|
|
92
|
+
out.print part
|
|
93
|
+
out.flush
|
|
94
|
+
}
|
|
95
|
+
end
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
end
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
require 'lsapi'
|
|
2
|
+
require 'rack/content_length'
|
|
3
|
+
require 'rack/rewindable_input'
|
|
4
|
+
|
|
5
|
+
module Rack
|
|
6
|
+
module Handler
|
|
7
|
+
class LSWS
|
|
8
|
+
def self.run(app, options=nil)
|
|
9
|
+
while LSAPI.accept != nil
|
|
10
|
+
serve app
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
def self.serve(app)
|
|
14
|
+
env = ENV.to_hash
|
|
15
|
+
env.delete "HTTP_CONTENT_LENGTH"
|
|
16
|
+
env["SCRIPT_NAME"] = "" if env["SCRIPT_NAME"] == "/"
|
|
17
|
+
|
|
18
|
+
rack_input = RewindableInput.new($stdin.read.to_s)
|
|
19
|
+
|
|
20
|
+
env.update(
|
|
21
|
+
"rack.version" => Rack::VERSION,
|
|
22
|
+
"rack.input" => rack_input,
|
|
23
|
+
"rack.errors" => $stderr,
|
|
24
|
+
"rack.multithread" => false,
|
|
25
|
+
"rack.multiprocess" => true,
|
|
26
|
+
"rack.run_once" => false,
|
|
27
|
+
"rack.url_scheme" => ["yes", "on", "1"].include?(ENV["HTTPS"]) ? "https" : "http"
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
env["QUERY_STRING"] ||= ""
|
|
31
|
+
env["HTTP_VERSION"] ||= env["SERVER_PROTOCOL"]
|
|
32
|
+
env["REQUEST_PATH"] ||= "/"
|
|
33
|
+
status, headers, body = app.call(env)
|
|
34
|
+
begin
|
|
35
|
+
send_headers status, headers
|
|
36
|
+
send_body body
|
|
37
|
+
ensure
|
|
38
|
+
body.close if body.respond_to? :close
|
|
39
|
+
end
|
|
40
|
+
ensure
|
|
41
|
+
rack_input.close
|
|
42
|
+
end
|
|
43
|
+
def self.send_headers(status, headers)
|
|
44
|
+
print "Status: #{status}\r\n"
|
|
45
|
+
headers.each { |k, vs|
|
|
46
|
+
vs.split("\n").each { |v|
|
|
47
|
+
print "#{k}: #{v}\r\n"
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
print "\r\n"
|
|
51
|
+
STDOUT.flush
|
|
52
|
+
end
|
|
53
|
+
def self.send_body(body)
|
|
54
|
+
body.each { |part|
|
|
55
|
+
print part
|
|
56
|
+
STDOUT.flush
|
|
57
|
+
}
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
end
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
require 'mongrel'
|
|
2
|
+
require 'stringio'
|
|
3
|
+
require 'rack/content_length'
|
|
4
|
+
require 'rack/chunked'
|
|
5
|
+
|
|
6
|
+
module Rack
|
|
7
|
+
module Handler
|
|
8
|
+
class Mongrel < ::Mongrel::HttpHandler
|
|
9
|
+
def self.run(app, options={})
|
|
10
|
+
server = ::Mongrel::HttpServer.new(
|
|
11
|
+
options[:Host] || '0.0.0.0',
|
|
12
|
+
options[:Port] || 8080,
|
|
13
|
+
options[:num_processors] || 950,
|
|
14
|
+
options[:throttle] || 0,
|
|
15
|
+
options[:timeout] || 60)
|
|
16
|
+
# Acts like Rack::URLMap, utilizing Mongrel's own path finding methods.
|
|
17
|
+
# Use is similar to #run, replacing the app argument with a hash of
|
|
18
|
+
# { path=>app, ... } or an instance of Rack::URLMap.
|
|
19
|
+
if options[:map]
|
|
20
|
+
if app.is_a? Hash
|
|
21
|
+
app.each do |path, appl|
|
|
22
|
+
path = '/'+path unless path[0] == ?/
|
|
23
|
+
server.register(path, Rack::Handler::Mongrel.new(appl))
|
|
24
|
+
end
|
|
25
|
+
elsif app.is_a? URLMap
|
|
26
|
+
app.instance_variable_get(:@mapping).each do |(host, path, appl)|
|
|
27
|
+
next if !host.nil? && !options[:Host].nil? && options[:Host] != host
|
|
28
|
+
path = '/'+path unless path[0] == ?/
|
|
29
|
+
server.register(path, Rack::Handler::Mongrel.new(appl))
|
|
30
|
+
end
|
|
31
|
+
else
|
|
32
|
+
raise ArgumentError, "first argument should be a Hash or URLMap"
|
|
33
|
+
end
|
|
34
|
+
else
|
|
35
|
+
server.register('/', Rack::Handler::Mongrel.new(app))
|
|
36
|
+
end
|
|
37
|
+
yield server if block_given?
|
|
38
|
+
server.run.join
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def self.valid_options
|
|
42
|
+
{
|
|
43
|
+
"Host=HOST" => "Hostname to listen on (default: localhost)",
|
|
44
|
+
"Port=PORT" => "Port to listen on (default: 8080)",
|
|
45
|
+
"Processors=N" => "Number of concurrent processors to accept (default: 950)",
|
|
46
|
+
"Timeout=N" => "Time before a request is dropped for inactivity (default: 60)",
|
|
47
|
+
"Throttle=N" => "Throttle time between socket.accept calls in hundredths of a second (default: 0)",
|
|
48
|
+
}
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def initialize(app)
|
|
52
|
+
@app = app
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def process(request, response)
|
|
56
|
+
env = Hash[request.params]
|
|
57
|
+
env.delete "HTTP_CONTENT_TYPE"
|
|
58
|
+
env.delete "HTTP_CONTENT_LENGTH"
|
|
59
|
+
|
|
60
|
+
env["SCRIPT_NAME"] = "" if env["SCRIPT_NAME"] == "/"
|
|
61
|
+
|
|
62
|
+
rack_input = request.body || StringIO.new('')
|
|
63
|
+
rack_input.set_encoding(Encoding::BINARY) if rack_input.respond_to?(:set_encoding)
|
|
64
|
+
|
|
65
|
+
env.update({"rack.version" => Rack::VERSION,
|
|
66
|
+
"rack.input" => rack_input,
|
|
67
|
+
"rack.errors" => $stderr,
|
|
68
|
+
|
|
69
|
+
"rack.multithread" => true,
|
|
70
|
+
"rack.multiprocess" => false, # ???
|
|
71
|
+
"rack.run_once" => false,
|
|
72
|
+
|
|
73
|
+
"rack.url_scheme" => ["yes", "on", "1"].include?(env["HTTPS"]) ? "https" : "http"
|
|
74
|
+
})
|
|
75
|
+
env["QUERY_STRING"] ||= ""
|
|
76
|
+
|
|
77
|
+
status, headers, body = @app.call(env)
|
|
78
|
+
|
|
79
|
+
begin
|
|
80
|
+
response.status = status.to_i
|
|
81
|
+
response.send_status(nil)
|
|
82
|
+
|
|
83
|
+
headers.each { |k, vs|
|
|
84
|
+
vs.split("\n").each { |v|
|
|
85
|
+
response.header[k] = v
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
response.send_header
|
|
89
|
+
|
|
90
|
+
body.each { |part|
|
|
91
|
+
response.write part
|
|
92
|
+
response.socket.flush
|
|
93
|
+
}
|
|
94
|
+
ensure
|
|
95
|
+
body.close if body.respond_to? :close
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
end
|
|
100
|
+
end
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
require 'scgi'
|
|
2
|
+
require 'stringio'
|
|
3
|
+
require 'rack/content_length'
|
|
4
|
+
require 'rack/chunked'
|
|
5
|
+
|
|
6
|
+
module Rack
|
|
7
|
+
module Handler
|
|
8
|
+
class SCGI < ::SCGI::Processor
|
|
9
|
+
attr_accessor :app
|
|
10
|
+
|
|
11
|
+
def self.run(app, options=nil)
|
|
12
|
+
options[:Socket] = UNIXServer.new(options[:File]) if options[:File]
|
|
13
|
+
new(options.merge(:app=>app,
|
|
14
|
+
:host=>options[:Host],
|
|
15
|
+
:port=>options[:Port],
|
|
16
|
+
:socket=>options[:Socket])).listen
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def self.valid_options
|
|
20
|
+
{
|
|
21
|
+
"Host=HOST" => "Hostname to listen on (default: localhost)",
|
|
22
|
+
"Port=PORT" => "Port to listen on (default: 8080)",
|
|
23
|
+
}
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def initialize(settings = {})
|
|
27
|
+
@app = settings[:app]
|
|
28
|
+
super(settings)
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def process_request(request, input_body, socket)
|
|
32
|
+
env = Hash[request]
|
|
33
|
+
env.delete "HTTP_CONTENT_TYPE"
|
|
34
|
+
env.delete "HTTP_CONTENT_LENGTH"
|
|
35
|
+
env["REQUEST_PATH"], env["QUERY_STRING"] = env["REQUEST_URI"].split('?', 2)
|
|
36
|
+
env["HTTP_VERSION"] ||= env["SERVER_PROTOCOL"]
|
|
37
|
+
env["PATH_INFO"] = env["REQUEST_PATH"]
|
|
38
|
+
env["QUERY_STRING"] ||= ""
|
|
39
|
+
env["SCRIPT_NAME"] = ""
|
|
40
|
+
|
|
41
|
+
rack_input = StringIO.new(input_body)
|
|
42
|
+
rack_input.set_encoding(Encoding::BINARY) if rack_input.respond_to?(:set_encoding)
|
|
43
|
+
|
|
44
|
+
env.update({"rack.version" => Rack::VERSION,
|
|
45
|
+
"rack.input" => rack_input,
|
|
46
|
+
"rack.errors" => $stderr,
|
|
47
|
+
"rack.multithread" => true,
|
|
48
|
+
"rack.multiprocess" => true,
|
|
49
|
+
"rack.run_once" => false,
|
|
50
|
+
|
|
51
|
+
"rack.url_scheme" => ["yes", "on", "1"].include?(env["HTTPS"]) ? "https" : "http"
|
|
52
|
+
})
|
|
53
|
+
status, headers, body = app.call(env)
|
|
54
|
+
begin
|
|
55
|
+
socket.write("Status: #{status}\r\n")
|
|
56
|
+
headers.each do |k, vs|
|
|
57
|
+
vs.split("\n").each { |v| socket.write("#{k}: #{v}\r\n")}
|
|
58
|
+
end
|
|
59
|
+
socket.write("\r\n")
|
|
60
|
+
body.each {|s| socket.write(s)}
|
|
61
|
+
ensure
|
|
62
|
+
body.close if body.respond_to? :close
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
require "thin"
|
|
2
|
+
require "rack/content_length"
|
|
3
|
+
require "rack/chunked"
|
|
4
|
+
|
|
5
|
+
module Rack
|
|
6
|
+
module Handler
|
|
7
|
+
class Thin
|
|
8
|
+
def self.run(app, options={})
|
|
9
|
+
host = options.delete(:Host) || '0.0.0.0'
|
|
10
|
+
port = options.delete(:Port) || 8080
|
|
11
|
+
args = [host, port, app, options]
|
|
12
|
+
# Thin versions below 0.8.0 do not support additional options
|
|
13
|
+
args.pop if ::Thin::VERSION::MAJOR < 1 && ::Thin::VERSION::MINOR < 8
|
|
14
|
+
server = ::Thin::Server.new(*args)
|
|
15
|
+
yield server if block_given?
|
|
16
|
+
server.start
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def self.valid_options
|
|
20
|
+
{
|
|
21
|
+
"Host=HOST" => "Hostname to listen on (default: localhost)",
|
|
22
|
+
"Port=PORT" => "Port to listen on (default: 8080)",
|
|
23
|
+
}
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
require 'webrick'
|
|
2
|
+
require 'stringio'
|
|
3
|
+
require 'rack/content_length'
|
|
4
|
+
|
|
5
|
+
module Rack
|
|
6
|
+
module Handler
|
|
7
|
+
class WEBrick < ::WEBrick::HTTPServlet::AbstractServlet
|
|
8
|
+
def self.run(app, options={})
|
|
9
|
+
options[:BindAddress] = options.delete(:Host) if options[:Host]
|
|
10
|
+
options[:Port] ||= 8080
|
|
11
|
+
@server = ::WEBrick::HTTPServer.new(options)
|
|
12
|
+
@server.mount "/", Rack::Handler::WEBrick, app
|
|
13
|
+
yield @server if block_given?
|
|
14
|
+
@server.start
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def self.valid_options
|
|
18
|
+
{
|
|
19
|
+
"Host=HOST" => "Hostname to listen on (default: localhost)",
|
|
20
|
+
"Port=PORT" => "Port to listen on (default: 8080)",
|
|
21
|
+
}
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def self.shutdown
|
|
25
|
+
@server.shutdown
|
|
26
|
+
@server = nil
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def initialize(server, app)
|
|
30
|
+
super server
|
|
31
|
+
@app = app
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def service(req, res)
|
|
35
|
+
env = req.meta_vars
|
|
36
|
+
env.delete_if { |k, v| v.nil? }
|
|
37
|
+
|
|
38
|
+
rack_input = StringIO.new(req.body.to_s)
|
|
39
|
+
rack_input.set_encoding(Encoding::BINARY) if rack_input.respond_to?(:set_encoding)
|
|
40
|
+
|
|
41
|
+
env.update({"rack.version" => Rack::VERSION,
|
|
42
|
+
"rack.input" => rack_input,
|
|
43
|
+
"rack.errors" => $stderr,
|
|
44
|
+
|
|
45
|
+
"rack.multithread" => true,
|
|
46
|
+
"rack.multiprocess" => false,
|
|
47
|
+
"rack.run_once" => false,
|
|
48
|
+
|
|
49
|
+
"rack.url_scheme" => ["yes", "on", "1"].include?(ENV["HTTPS"]) ? "https" : "http"
|
|
50
|
+
})
|
|
51
|
+
|
|
52
|
+
env["HTTP_VERSION"] ||= env["SERVER_PROTOCOL"]
|
|
53
|
+
env["QUERY_STRING"] ||= ""
|
|
54
|
+
unless env["PATH_INFO"] == ""
|
|
55
|
+
path, n = req.request_uri.path, env["SCRIPT_NAME"].length
|
|
56
|
+
env["PATH_INFO"] = path[n, path.length-n]
|
|
57
|
+
end
|
|
58
|
+
env["REQUEST_PATH"] ||= [env["SCRIPT_NAME"], env["PATH_INFO"]].join
|
|
59
|
+
|
|
60
|
+
status, headers, body = @app.call(env)
|
|
61
|
+
begin
|
|
62
|
+
res.status = status.to_i
|
|
63
|
+
headers.each { |k, vs|
|
|
64
|
+
if k.downcase == "set-cookie"
|
|
65
|
+
res.cookies.concat vs.split("\n")
|
|
66
|
+
else
|
|
67
|
+
# Since WEBrick won't accept repeated headers,
|
|
68
|
+
# merge the values per RFC 1945 section 4.2.
|
|
69
|
+
res[k] = vs.split("\n").join(", ")
|
|
70
|
+
end
|
|
71
|
+
}
|
|
72
|
+
body.each { |part|
|
|
73
|
+
res.body << part
|
|
74
|
+
}
|
|
75
|
+
ensure
|
|
76
|
+
body.close if body.respond_to? :close
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
end
|