middleman 0.10.17 → 0.11.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/middleman.gemspec +2 -2680
- metadata +1 -2679
- data/vendor/gems/cache/builder-2.1.2.gem +0 -0
- data/vendor/gems/cache/compass-0.8.17.gem +0 -0
- data/vendor/gems/cache/configuration-1.1.0.gem +0 -0
- data/vendor/gems/cache/cucumber-0.4.4.gem +0 -0
- data/vendor/gems/cache/daemons-1.0.10.gem +0 -0
- data/vendor/gems/cache/diff-lcs-1.1.2.gem +0 -0
- data/vendor/gems/cache/eventmachine-0.12.10.gem +0 -0
- data/vendor/gems/cache/extlib-0.9.13.gem +0 -0
- data/vendor/gems/cache/haml-2.2.13.gem +0 -0
- data/vendor/gems/cache/highline-1.5.1.gem +0 -0
- data/vendor/gems/cache/json-1.2.0.gem +0 -0
- data/vendor/gems/cache/launchy-0.3.3.gem +0 -0
- data/vendor/gems/cache/polyglot-0.2.9.gem +0 -0
- data/vendor/gems/cache/rack-1.0.1.gem +0 -0
- data/vendor/gems/cache/rack-test-0.5.1.gem +0 -0
- data/vendor/gems/cache/rack-test-0.5.2.gem +0 -0
- data/vendor/gems/cache/rake-0.8.7.gem +0 -0
- data/vendor/gems/cache/rdoc-2.4.3.gem +0 -0
- data/vendor/gems/cache/rspec-1.2.9.gem +0 -0
- data/vendor/gems/cache/sdoc-0.2.14.1.gem +0 -0
- data/vendor/gems/cache/shotgun-0.4.gem +0 -0
- data/vendor/gems/cache/sinatra-0.9.4.gem +0 -0
- data/vendor/gems/cache/sinatra-content-for-0.2.gem +0 -0
- data/vendor/gems/cache/sprockets-1.0.2.gem +0 -0
- data/vendor/gems/cache/templater-1.0.0.gem +0 -0
- data/vendor/gems/cache/term-ansicolor-1.0.4.gem +0 -0
- data/vendor/gems/cache/thin-1.2.5.gem +0 -0
- data/vendor/gems/cache/treetop-1.4.2.gem +0 -0
- data/vendor/gems/cache/yui-compressor-0.9.1.gem +0 -0
- data/vendor/gems/environment.rb +0 -158
- data/vendor/gems/gems/builder-2.1.2/CHANGES +0 -85
- data/vendor/gems/gems/builder-2.1.2/README +0 -210
- data/vendor/gems/gems/builder-2.1.2/Rakefile +0 -263
- data/vendor/gems/gems/builder-2.1.2/doc/releases/builder-1.2.4.rdoc +0 -31
- data/vendor/gems/gems/builder-2.1.2/doc/releases/builder-2.0.0.rdoc +0 -46
- data/vendor/gems/gems/builder-2.1.2/doc/releases/builder-2.1.1.rdoc +0 -58
- data/vendor/gems/gems/builder-2.1.2/lib/blankslate.rb +0 -113
- data/vendor/gems/gems/builder-2.1.2/lib/builder.rb +0 -13
- data/vendor/gems/gems/builder-2.1.2/lib/builder/blankslate.rb +0 -20
- data/vendor/gems/gems/builder-2.1.2/lib/builder/xchar.rb +0 -115
- data/vendor/gems/gems/builder-2.1.2/lib/builder/xmlbase.rb +0 -139
- data/vendor/gems/gems/builder-2.1.2/lib/builder/xmlevents.rb +0 -63
- data/vendor/gems/gems/builder-2.1.2/lib/builder/xmlmarkup.rb +0 -328
- data/vendor/gems/gems/builder-2.1.2/scripts/publish.rb +0 -17
- data/vendor/gems/gems/builder-2.1.2/test/performance.rb +0 -30
- data/vendor/gems/gems/builder-2.1.2/test/preload.rb +0 -29
- data/vendor/gems/gems/builder-2.1.2/test/test_xchar.rb +0 -37
- data/vendor/gems/gems/builder-2.1.2/test/testblankslate.rb +0 -183
- data/vendor/gems/gems/builder-2.1.2/test/testeventbuilder.rb +0 -133
- data/vendor/gems/gems/builder-2.1.2/test/testmarkupbuilder.rb +0 -449
- data/vendor/gems/gems/compass-0.8.17/CHANGELOG.markdown +0 -557
- data/vendor/gems/gems/compass-0.8.17/LICENSE.markdown +0 -29
- data/vendor/gems/gems/compass-0.8.17/README.markdown +0 -44
- data/vendor/gems/gems/compass-0.8.17/REVISION +0 -1
- data/vendor/gems/gems/compass-0.8.17/Rakefile +0 -127
- data/vendor/gems/gems/compass-0.8.17/VERSION.yml +0 -4
- data/vendor/gems/gems/compass-0.8.17/bin/compass +0 -8
- data/vendor/gems/gems/compass-0.8.17/deps.rip +0 -1
- data/vendor/gems/gems/compass-0.8.17/examples/README.markdown +0 -4
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_default/config.rb +0 -7
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_default/images/grid.png +0 -0
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_default/index.html.haml +0 -85
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_default/parts/elements.html.haml +0 -282
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_default/parts/forms.html.haml +0 -190
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_default/parts/grid.html.haml +0 -274
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_default/parts/test-small.jpg +0 -0
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_default/parts/test.jpg +0 -0
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_default/parts/valid.png +0 -0
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_default/src/ie.sass +0 -3
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_default/src/images/grid.png +0 -0
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_default/src/print.sass +0 -3
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_default/src/screen.sass +0 -8
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_plugins/config.rb +0 -8
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_plugins/images/buttons/cross.png +0 -0
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_plugins/images/buttons/key.png +0 -0
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_plugins/images/buttons/tick.png +0 -0
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_plugins/images/grid.png +0 -0
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_plugins/images/link_icons/doc.png +0 -0
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_plugins/images/link_icons/email.png +0 -0
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_plugins/images/link_icons/external.png +0 -0
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_plugins/images/link_icons/feed.png +0 -0
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_plugins/images/link_icons/im.png +0 -0
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_plugins/images/link_icons/pdf.png +0 -0
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_plugins/images/link_icons/visited.png +0 -0
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_plugins/images/link_icons/xls.png +0 -0
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_plugins/images/test-small.jpg +0 -0
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_plugins/images/test.jpg +0 -0
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_plugins/images/valid.png +0 -0
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_plugins/index.html.haml +0 -96
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_plugins/plugins/buttons.html.haml +0 -67
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_plugins/plugins/fancy_type.html.haml +0 -100
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_plugins/plugins/link_icons.html.haml +0 -61
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_plugins/plugins/rtl.html.haml +0 -100
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_plugins/src/buttons.sass +0 -49
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_plugins/src/ie.sass +0 -3
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_plugins/src/images/grid.png +0 -0
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_plugins/src/link_icons.sass +0 -13
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_plugins/src/print.sass +0 -3
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_plugins/src/rtl_screen.sass +0 -13
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_plugins/src/screen.sass +0 -11
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_scoped/images/grid.png +0 -0
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_scoped/src/ie.sass +0 -3
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_scoped/src/print.sass +0 -3
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_scoped/src/screen.sass +0 -4
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_scoped_form/images/grid.png +0 -0
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_scoped_form/src/ie.sass +0 -3
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_scoped_form/src/print.sass +0 -3
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_scoped_form/src/screen.sass +0 -10
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_semantic/config.rb +0 -7
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_semantic/images/grid.png +0 -0
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_semantic/index.html.haml +0 -86
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_semantic/parts/fancy_type.html.haml +0 -100
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_semantic/parts/liquid.html.haml +0 -100
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_semantic/parts/test-small.jpg +0 -0
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_semantic/parts/test.jpg +0 -0
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_semantic/parts/valid.png +0 -0
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_semantic/src/ie.sass +0 -3
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_semantic/src/images/grid.png +0 -0
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_semantic/src/liquid.sass +0 -70
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_semantic/src/print.sass +0 -3
- data/vendor/gems/gems/compass-0.8.17/examples/blueprint_semantic/src/screen.sass +0 -71
- data/vendor/gems/gems/compass-0.8.17/examples/compass/compass.html.haml +0 -39
- data/vendor/gems/gems/compass-0.8.17/examples/compass/config.rb +0 -7
- data/vendor/gems/gems/compass-0.8.17/examples/compass/images/blue_arrow.gif +0 -0
- data/vendor/gems/gems/compass-0.8.17/examples/compass/src/compass.sass +0 -47
- data/vendor/gems/gems/compass-0.8.17/examples/compass/src/images/blue_arrow.gif +0 -0
- data/vendor/gems/gems/compass-0.8.17/examples/compass/src/sticky_footer.sass +0 -11
- data/vendor/gems/gems/compass-0.8.17/examples/compass/src/utilities.sass +0 -108
- data/vendor/gems/gems/compass-0.8.17/examples/compass/sticky_footer.html.haml +0 -14
- data/vendor/gems/gems/compass-0.8.17/examples/compass/utilities.html.haml +0 -189
- data/vendor/gems/gems/compass-0.8.17/examples/logo/logo.html.haml +0 -40
- data/vendor/gems/gems/compass-0.8.17/examples/logo/src/ie.sass +0 -6
- data/vendor/gems/gems/compass-0.8.17/examples/logo/src/print.sass +0 -6
- data/vendor/gems/gems/compass-0.8.17/examples/logo/src/screen.sass +0 -29
- data/vendor/gems/gems/compass-0.8.17/examples/yui/divisions.html.haml +0 -179
- data/vendor/gems/gems/compass-0.8.17/examples/yui/index.html.haml +0 -19
- data/vendor/gems/gems/compass-0.8.17/examples/yui/src/screen.sass +0 -13
- data/vendor/gems/gems/compass-0.8.17/examples/yui/sub_divisions.html.haml +0 -169
- data/vendor/gems/gems/compass-0.8.17/examples/yui/templates.html.haml +0 -54
- data/vendor/gems/gems/compass-0.8.17/examples/yui/test.jpg +0 -0
- data/vendor/gems/gems/compass-0.8.17/examples/yui/typography.html.haml +0 -132
- data/vendor/gems/gems/compass-0.8.17/frameworks/blueprint.rb +0 -2
- data/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/stylesheets/_blueprint.sass +0 -3
- data/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/stylesheets/blueprint/_ie.sass +0 -93
- data/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/stylesheets/blueprint/_print.sass +0 -83
- data/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/stylesheets/blueprint/_reset.sass +0 -3
- data/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/stylesheets/blueprint/_screen.sass +0 -15
- data/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/stylesheets/blueprint/modules/_buttons.sass +0 -84
- data/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/stylesheets/blueprint/modules/_colors.sass +0 -33
- data/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/stylesheets/blueprint/modules/_debug.sass +0 -9
- data/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/stylesheets/blueprint/modules/_fancy_type.sass +0 -82
- data/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/stylesheets/blueprint/modules/_form.sass +0 -55
- data/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/stylesheets/blueprint/modules/_grid.sass +0 -178
- data/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/stylesheets/blueprint/modules/_interaction.sass +0 -58
- data/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/stylesheets/blueprint/modules/_link_icons.sass +0 -44
- data/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/stylesheets/blueprint/modules/_liquid.sass +0 -141
- data/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/stylesheets/blueprint/modules/_reset.sass +0 -56
- data/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/stylesheets/blueprint/modules/_rtl.sass +0 -104
- data/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/stylesheets/blueprint/modules/_scaffolding.sass +0 -47
- data/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/stylesheets/blueprint/modules/_typography.sass +0 -155
- data/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/stylesheets/blueprint/modules/_utilities.sass +0 -37
- data/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/templates/buttons/buttons.sass +0 -49
- data/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/templates/buttons/buttons/cross.png +0 -0
- data/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/templates/buttons/buttons/key.png +0 -0
- data/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/templates/buttons/buttons/tick.png +0 -0
- data/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/templates/buttons/manifest.rb +0 -5
- data/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/templates/link_icons/link_icons.sass +0 -13
- data/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/templates/link_icons/link_icons/doc.png +0 -0
- data/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/templates/link_icons/link_icons/email.png +0 -0
- data/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/templates/link_icons/link_icons/external.png +0 -0
- data/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/templates/link_icons/link_icons/feed.png +0 -0
- data/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/templates/link_icons/link_icons/im.png +0 -0
- data/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/templates/link_icons/link_icons/pdf.png +0 -0
- data/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/templates/link_icons/link_icons/visited.png +0 -0
- data/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/templates/link_icons/link_icons/xls.png +0 -0
- data/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/templates/link_icons/manifest.rb +0 -10
- data/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/templates/project/grid.png +0 -0
- data/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/templates/project/ie.sass +0 -15
- data/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/templates/project/manifest.rb +0 -6
- data/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/templates/project/partials/_base.sass +0 -11
- data/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/templates/project/print.sass +0 -3
- data/vendor/gems/gems/compass-0.8.17/frameworks/blueprint/templates/project/screen.sass +0 -40
- data/vendor/gems/gems/compass-0.8.17/frameworks/compass.rb +0 -2
- data/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/_compass.sass +0 -1
- data/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/_layout.sass +0 -1
- data/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/_misc.sass +0 -24
- data/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/_reset.sass +0 -3
- data/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/_utilities.sass +0 -6
- data/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/layout/_sticky_footer.sass +0 -17
- data/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/utilities/_general.sass +0 -6
- data/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/utilities/_links.sass +0 -3
- data/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/utilities/_lists.sass +0 -3
- data/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/utilities/_print.sass +0 -24
- data/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/utilities/_sprites.sass +0 -1
- data/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/utilities/_tables.sass +0 -3
- data/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/utilities/_text.sass +0 -2
- data/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/utilities/general/_clearfix.sass +0 -24
- data/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/utilities/general/_float.sass +0 -17
- data/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/utilities/general/_hacks.sass +0 -6
- data/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/utilities/general/_inline_block.sass +0 -6
- data/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/utilities/general/_reset.sass +0 -134
- data/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/utilities/general/_tabs.sass +0 -0
- data/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/utilities/general/_tag_cloud.sass +0 -19
- data/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/utilities/links/_hover_link.sass +0 -5
- data/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/utilities/links/_link_colors.sass +0 -24
- data/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/utilities/links/_unstyled_link.sass +0 -5
- data/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/utilities/lists/_bullets.sass +0 -21
- data/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/utilities/lists/_horizontal_list.sass +0 -52
- data/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/utilities/lists/_inline_list.sass +0 -29
- data/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/utilities/sprites/_sprite_img.sass +0 -12
- data/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/utilities/tables/_alternating_rows_and_columns.sass +0 -20
- data/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/utilities/tables/_borders.sass +0 -27
- data/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/utilities/tables/_scaffolding.sass +0 -9
- data/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/utilities/text/_ellipsis.sass +0 -13
- data/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/utilities/text/_nowrap.sass +0 -3
- data/vendor/gems/gems/compass-0.8.17/frameworks/compass/stylesheets/compass/utilities/text/_replacement.sass +0 -17
- data/vendor/gems/gems/compass-0.8.17/frameworks/compass/templates/ellipsis/ellipsis.sass +0 -6
- data/vendor/gems/gems/compass-0.8.17/frameworks/compass/templates/ellipsis/manifest.rb +0 -2
- data/vendor/gems/gems/compass-0.8.17/frameworks/compass/templates/ellipsis/xml/ellipsis.xml +0 -14
- data/vendor/gems/gems/compass-0.8.17/frameworks/compass/templates/project/ie.sass +0 -6
- data/vendor/gems/gems/compass-0.8.17/frameworks/compass/templates/project/manifest.rb +0 -3
- data/vendor/gems/gems/compass-0.8.17/frameworks/compass/templates/project/print.sass +0 -6
- data/vendor/gems/gems/compass-0.8.17/frameworks/compass/templates/project/screen.sass +0 -13
- data/vendor/gems/gems/compass-0.8.17/frameworks/yui.rb +0 -2
- data/vendor/gems/gems/compass-0.8.17/frameworks/yui/stylesheets/_yui.sass +0 -7
- data/vendor/gems/gems/compass-0.8.17/frameworks/yui/stylesheets/yui/modules/_base.sass +0 -60
- data/vendor/gems/gems/compass-0.8.17/frameworks/yui/stylesheets/yui/modules/_fonts.sass +0 -38
- data/vendor/gems/gems/compass-0.8.17/frameworks/yui/stylesheets/yui/modules/_grids.sass +0 -341
- data/vendor/gems/gems/compass-0.8.17/frameworks/yui/stylesheets/yui/modules/_reset.sass +0 -61
- data/vendor/gems/gems/compass-0.8.17/frameworks/yui/templates/project/manifest.rb +0 -1
- data/vendor/gems/gems/compass-0.8.17/frameworks/yui/templates/project/screen.sass +0 -4
- data/vendor/gems/gems/compass-0.8.17/lib/compass.rb +0 -23
- data/vendor/gems/gems/compass-0.8.17/lib/compass/actions.rb +0 -110
- data/vendor/gems/gems/compass-0.8.17/lib/compass/app_integration.rb +0 -5
- data/vendor/gems/gems/compass-0.8.17/lib/compass/app_integration/merb.rb +0 -43
- data/vendor/gems/gems/compass-0.8.17/lib/compass/app_integration/rails.rb +0 -12
- data/vendor/gems/gems/compass-0.8.17/lib/compass/app_integration/rails/action_controller.rb +0 -15
- data/vendor/gems/gems/compass-0.8.17/lib/compass/app_integration/rails/sass_plugin.rb +0 -5
- data/vendor/gems/gems/compass-0.8.17/lib/compass/app_integration/rails/templates/compass-install-rails.rb +0 -80
- data/vendor/gems/gems/compass-0.8.17/lib/compass/app_integration/rails/urls.rb +0 -14
- data/vendor/gems/gems/compass-0.8.17/lib/compass/commands/base.rb +0 -33
- data/vendor/gems/gems/compass-0.8.17/lib/compass/commands/create_project.rb +0 -19
- data/vendor/gems/gems/compass-0.8.17/lib/compass/commands/generate_grid_background.rb +0 -24
- data/vendor/gems/gems/compass-0.8.17/lib/compass/commands/installer_command.rb +0 -31
- data/vendor/gems/gems/compass-0.8.17/lib/compass/commands/list_frameworks.rb +0 -16
- data/vendor/gems/gems/compass-0.8.17/lib/compass/commands/print_version.rb +0 -23
- data/vendor/gems/gems/compass-0.8.17/lib/compass/commands/project_base.rb +0 -112
- data/vendor/gems/gems/compass-0.8.17/lib/compass/commands/stamp_pattern.rb +0 -33
- data/vendor/gems/gems/compass-0.8.17/lib/compass/commands/update_project.rb +0 -34
- data/vendor/gems/gems/compass-0.8.17/lib/compass/commands/validate_project.rb +0 -21
- data/vendor/gems/gems/compass-0.8.17/lib/compass/commands/watch_project.rb +0 -64
- data/vendor/gems/gems/compass-0.8.17/lib/compass/commands/write_configuration.rb +0 -28
- data/vendor/gems/gems/compass-0.8.17/lib/compass/compiler.rb +0 -54
- data/vendor/gems/gems/compass-0.8.17/lib/compass/configuration.rb +0 -324
- data/vendor/gems/gems/compass-0.8.17/lib/compass/core_ext.rb +0 -14
- data/vendor/gems/gems/compass-0.8.17/lib/compass/dependencies.rb +0 -10
- data/vendor/gems/gems/compass-0.8.17/lib/compass/errors.rb +0 -7
- data/vendor/gems/gems/compass-0.8.17/lib/compass/exec.rb +0 -251
- data/vendor/gems/gems/compass-0.8.17/lib/compass/frameworks.rb +0 -29
- data/vendor/gems/gems/compass-0.8.17/lib/compass/grid_builder.rb +0 -72
- data/vendor/gems/gems/compass-0.8.17/lib/compass/installers.rb +0 -5
- data/vendor/gems/gems/compass-0.8.17/lib/compass/installers/base.rb +0 -158
- data/vendor/gems/gems/compass-0.8.17/lib/compass/installers/manifest.rb +0 -58
- data/vendor/gems/gems/compass-0.8.17/lib/compass/installers/rails.rb +0 -135
- data/vendor/gems/gems/compass-0.8.17/lib/compass/installers/stand_alone.rb +0 -60
- data/vendor/gems/gems/compass-0.8.17/lib/compass/logger.rb +0 -42
- data/vendor/gems/gems/compass-0.8.17/lib/compass/sass_extensions.rb +0 -5
- data/vendor/gems/gems/compass-0.8.17/lib/compass/sass_extensions/functions.rb +0 -19
- data/vendor/gems/gems/compass-0.8.17/lib/compass/sass_extensions/functions/display.rb +0 -22
- data/vendor/gems/gems/compass-0.8.17/lib/compass/sass_extensions/functions/enumerate.rb +0 -6
- data/vendor/gems/gems/compass-0.8.17/lib/compass/sass_extensions/functions/inline_image.rb +0 -35
- data/vendor/gems/gems/compass-0.8.17/lib/compass/sass_extensions/functions/selectors.rb +0 -39
- data/vendor/gems/gems/compass-0.8.17/lib/compass/sass_extensions/functions/urls.rb +0 -105
- data/vendor/gems/gems/compass-0.8.17/lib/compass/sass_extensions/monkey_patches.rb +0 -3
- data/vendor/gems/gems/compass-0.8.17/lib/compass/sass_extensions/monkey_patches/stylesheet_updating.rb +0 -23
- data/vendor/gems/gems/compass-0.8.17/lib/compass/test_case.rb +0 -38
- data/vendor/gems/gems/compass-0.8.17/lib/compass/validator.rb +0 -10
- data/vendor/gems/gems/compass-0.8.17/lib/compass/version.rb +0 -57
- data/vendor/gems/gems/compass-0.8.17/lib/vendor/fssm.rb +0 -41
- data/vendor/gems/gems/compass-0.8.17/lib/vendor/fssm/backends/fsevents.rb +0 -37
- data/vendor/gems/gems/compass-0.8.17/lib/vendor/fssm/backends/polling.rb +0 -26
- data/vendor/gems/gems/compass-0.8.17/lib/vendor/fssm/cache.rb +0 -193
- data/vendor/gems/gems/compass-0.8.17/lib/vendor/fssm/ext.rb +0 -37
- data/vendor/gems/gems/compass-0.8.17/lib/vendor/fssm/fsevents.rb +0 -129
- data/vendor/gems/gems/compass-0.8.17/lib/vendor/fssm/monitor.rb +0 -25
- data/vendor/gems/gems/compass-0.8.17/lib/vendor/fssm/path.rb +0 -91
- data/vendor/gems/gems/compass-0.8.17/lib/vendor/fssm/state.rb +0 -54
- data/vendor/gems/gems/compass-0.8.17/lib/vendor/fssm/support.rb +0 -22
- data/vendor/gems/gems/compass-0.8.17/lib/vendor/fssm/tree.rb +0 -176
- data/vendor/gems/gems/compass-0.8.17/test/command_line_helper.rb +0 -102
- data/vendor/gems/gems/compass-0.8.17/test/command_line_test.rb +0 -66
- data/vendor/gems/gems/compass-0.8.17/test/compass_test.rb +0 -141
- data/vendor/gems/gems/compass-0.8.17/test/configuration_test.rb +0 -118
- data/vendor/gems/gems/compass-0.8.17/test/fixtures/stylesheets/blueprint/config.rb +0 -9
- data/vendor/gems/gems/compass-0.8.17/test/fixtures/stylesheets/blueprint/css/typography.css +0 -158
- data/vendor/gems/gems/compass-0.8.17/test/fixtures/stylesheets/blueprint/images/grid.png +0 -0
- data/vendor/gems/gems/compass-0.8.17/test/fixtures/stylesheets/blueprint/sass/ie.sass +0 -3
- data/vendor/gems/gems/compass-0.8.17/test/fixtures/stylesheets/blueprint/sass/print.sass +0 -3
- data/vendor/gems/gems/compass-0.8.17/test/fixtures/stylesheets/blueprint/sass/screen.sass +0 -17
- data/vendor/gems/gems/compass-0.8.17/test/fixtures/stylesheets/blueprint/sass/typography.sass +0 -3
- data/vendor/gems/gems/compass-0.8.17/test/fixtures/stylesheets/compass/config.rb +0 -9
- data/vendor/gems/gems/compass-0.8.17/test/fixtures/stylesheets/compass/css/layout.css +0 -13
- data/vendor/gems/gems/compass-0.8.17/test/fixtures/stylesheets/compass/css/print.css +0 -18
- data/vendor/gems/gems/compass-0.8.17/test/fixtures/stylesheets/compass/css/reset.css +0 -60
- data/vendor/gems/gems/compass-0.8.17/test/fixtures/stylesheets/compass/css/utilities.css +0 -17
- data/vendor/gems/gems/compass-0.8.17/test/fixtures/stylesheets/compass/sass/layout.sass +0 -3
- data/vendor/gems/gems/compass-0.8.17/test/fixtures/stylesheets/compass/sass/print.sass +0 -5
- data/vendor/gems/gems/compass-0.8.17/test/fixtures/stylesheets/compass/sass/reset.sass +0 -10
- data/vendor/gems/gems/compass-0.8.17/test/fixtures/stylesheets/compass/sass/utilities.sass +0 -6
- data/vendor/gems/gems/compass-0.8.17/test/fixtures/stylesheets/image_urls/config.rb +0 -17
- data/vendor/gems/gems/compass-0.8.17/test/fixtures/stylesheets/image_urls/css/screen.css +0 -3
- data/vendor/gems/gems/compass-0.8.17/test/fixtures/stylesheets/image_urls/images/grid.png +0 -0
- data/vendor/gems/gems/compass-0.8.17/test/fixtures/stylesheets/image_urls/sass/screen.sass +0 -6
- data/vendor/gems/gems/compass-0.8.17/test/fixtures/stylesheets/yui/config.rb +0 -9
- data/vendor/gems/gems/compass-0.8.17/test/fixtures/stylesheets/yui/css/mixins.css +0 -13
- data/vendor/gems/gems/compass-0.8.17/test/fixtures/stylesheets/yui/sass/base.sass +0 -3
- data/vendor/gems/gems/compass-0.8.17/test/fixtures/stylesheets/yui/sass/fonts.sass +0 -3
- data/vendor/gems/gems/compass-0.8.17/test/fixtures/stylesheets/yui/sass/grids.sass +0 -3
- data/vendor/gems/gems/compass-0.8.17/test/fixtures/stylesheets/yui/sass/mixins.sass +0 -16
- data/vendor/gems/gems/compass-0.8.17/test/rails_integration_test.rb +0 -83
- data/vendor/gems/gems/compass-0.8.17/test/sass_extensions_test.rb +0 -31
- data/vendor/gems/gems/compass-0.8.17/test/test_case_helper.rb +0 -13
- data/vendor/gems/gems/compass-0.8.17/test/test_helper.rb +0 -21
- data/vendor/gems/gems/compass-0.8.17/test/test_rails_helper.rb +0 -20
- data/vendor/gems/gems/configuration-1.1.0/README +0 -197
- data/vendor/gems/gems/configuration-1.1.0/README.erb +0 -69
- data/vendor/gems/gems/configuration-1.1.0/Rakefile +0 -241
- data/vendor/gems/gems/configuration-1.1.0/config/a.rb +0 -5
- data/vendor/gems/gems/configuration-1.1.0/config/b.rb +0 -19
- data/vendor/gems/gems/configuration-1.1.0/config/c.rb +0 -8
- data/vendor/gems/gems/configuration-1.1.0/config/d.rb +0 -5
- data/vendor/gems/gems/configuration-1.1.0/config/e.rb +0 -13
- data/vendor/gems/gems/configuration-1.1.0/configuration.gemspec +0 -28
- data/vendor/gems/gems/configuration-1.1.0/lib/configuration.rb +0 -199
- data/vendor/gems/gems/configuration-1.1.0/samples/a.rb +0 -11
- data/vendor/gems/gems/configuration-1.1.0/samples/b.rb +0 -11
- data/vendor/gems/gems/configuration-1.1.0/samples/c.rb +0 -11
- data/vendor/gems/gems/configuration-1.1.0/samples/d.rb +0 -14
- data/vendor/gems/gems/configuration-1.1.0/samples/e.rb +0 -12
- data/vendor/gems/gems/cucumber-0.4.4/.gitattributes +0 -1
- data/vendor/gems/gems/cucumber-0.4.4/.gitignore +0 -17
- data/vendor/gems/gems/cucumber-0.4.4/History.txt +0 -1269
- data/vendor/gems/gems/cucumber-0.4.4/LICENSE +0 -22
- data/vendor/gems/gems/cucumber-0.4.4/Manifest.txt +0 -0
- data/vendor/gems/gems/cucumber-0.4.4/README.rdoc +0 -26
- data/vendor/gems/gems/cucumber-0.4.4/Rakefile +0 -63
- data/vendor/gems/gems/cucumber-0.4.4/VERSION.yml +0 -5
- data/vendor/gems/gems/cucumber-0.4.4/bin/cucumber +0 -16
- data/vendor/gems/gems/cucumber-0.4.4/cucumber.gemspec +0 -750
- data/vendor/gems/gems/cucumber-0.4.4/cucumber.yml +0 -4
- data/vendor/gems/gems/cucumber-0.4.4/examples/dos_line_endings/Rakefile +0 -6
- data/vendor/gems/gems/cucumber-0.4.4/examples/dos_line_endings/features/dos_line_endings.feature +0 -9
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/README.textile +0 -18
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/Rakefile +0 -32
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/ar/Rakefile +0 -6
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/ar/features/addition.feature +0 -17
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/ar/features/step_definitons/calculator_steps.rb +0 -24
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/ar/lib/calculator.rb +0 -11
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/bg/Rakefile +0 -6
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/bg/features/addition.feature +0 -12
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/bg/features/consecutive_calculations.feature +0 -19
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/bg/features/division.feature +0 -17
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/bg/features/step_definitons/calculator_steps.rb +0 -24
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/bg/features/support/env.rb +0 -6
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/bg/features/support/world.rb +0 -8
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/bg/lib/calculator.rb +0 -24
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/cat/Rakefile +0 -6
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/cat/features/step_definitons/calculator_steps.rb +0 -21
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/cat/features/suma.feature +0 -17
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/cat/lib/calculadora.rb +0 -16
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/da/Rakefile +0 -6
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/da/features/sammenlaegning.feature +0 -18
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/da/features/step_definitons/lommeregner_steps.rb +0 -24
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/da/lib/lommeregner.rb +0 -11
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/de/.gitignore +0 -1
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/de/Rakefile +0 -6
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/de/features/addition.feature +0 -17
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/de/features/division.feature +0 -10
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/de/features/step_definitons/calculator_steps.rb +0 -24
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/de/lib/calculator.rb +0 -14
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/en-lol/Rakefile +0 -6
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/en-lol/features/step_definitions/cucumbrz_steps.rb +0 -16
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/en-lol/features/stuffing.feature +0 -8
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/en-lol/features/support/env.rb +0 -8
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/en-lol/lib/basket.rb +0 -12
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/en-lol/lib/belly.rb +0 -11
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/en/.gitignore +0 -1
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/en/Rakefile +0 -6
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/en/features/addition.feature +0 -17
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/en/features/division.feature +0 -10
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/en/features/step_definitons/calculator_steps.rb +0 -24
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/en/lib/calculator.rb +0 -14
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/es/Rakefile +0 -6
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/es/features/adicion.feature +0 -17
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/es/features/step_definitons/calculador_steps.rb +0 -21
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/es/lib/calculador.rb +0 -14
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/et/Rakefile +0 -6
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/et/features/jagamine.feature +0 -10
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/et/features/liitmine.feature +0 -17
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/et/features/step_definitions/kalkulaator_steps.rb +0 -24
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/et/lib/kalkulaator.rb +0 -14
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/fi/.gitignore +0 -1
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/fi/Rakefile +0 -6
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/fi/features/jakolasku.feature +0 -10
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/fi/features/step_definitons/laskin_steps.rb +0 -24
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/fi/features/yhteenlasku.feature +0 -17
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/fi/lib/laskin.rb +0 -14
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/fr/Rakefile +0 -6
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/fr/features/addition.feature +0 -18
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/fr/features/step_definitions/calculatrice_steps.rb +0 -25
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/fr/lib/calculatrice.rb +0 -10
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/he/Rakefile +0 -6
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/he/features/addition.feature +0 -17
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/he/features/division.feature +0 -10
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/he/features/step_definitons/calculator_steps.rb +0 -24
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/he/lib/calculator.rb +0 -14
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/hu/.gitignore +0 -1
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/hu/Rakefile +0 -6
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/hu/features/addition.feature +0 -17
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/hu/features/division.feature +0 -10
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/hu/features/step_definitons/calculator_steps.rb +0 -25
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/hu/lib/calculator.rb +0 -14
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/id/.gitignore +0 -1
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/id/Rakefile +0 -6
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/id/features/addition.feature +0 -17
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/id/features/division.feature +0 -10
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/id/features/step_definitons/calculator_steps.rb +0 -24
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/id/lib/calculator.rb +0 -14
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/it/Rakefile +0 -6
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/it/features/somma.feature +0 -11
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/it/features/step_definitons/calcolatrice_steps.rb +0 -24
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/it/lib/calcolatrice.rb +0 -11
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/ja/.gitignore +0 -1
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/ja/Rakefile +0 -6
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/ja/features/addition.feature +0 -17
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/ja/features/division.feature +0 -10
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/ja/features/step_definitons/calculator_steps.rb +0 -24
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/ja/lib/calculator.rb +0 -14
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/ko/.gitignore +0 -1
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/ko/Rakefile +0 -6
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/ko/features/addition.feature +0 -17
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/ko/features/division.feature +0 -11
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/ko/features/step_definitons/calculator_steps.rb +0 -24
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/ko/lib/calculator.rb +0 -14
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/lt/.gitignore +0 -1
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/lt/Rakefile +0 -6
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/lt/features/addition.feature +0 -17
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/lt/features/division.feature +0 -10
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/lt/features/step_definitons/calculator_steps.rb +0 -24
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/lt/lib/calculator.rb +0 -14
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/lv/Rakefile +0 -6
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/lv/features/addition.feature +0 -17
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/lv/features/division.feature +0 -10
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/lv/features/step_definitons/calculator_steps.rb +0 -24
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/lv/lib/calculator.rb +0 -14
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/no/Rakefile +0 -6
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/no/features/step_definitons/kalkulator_steps.rb +0 -17
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/no/features/summering.feature +0 -19
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/no/features/support/env.rb +0 -6
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/no/lib/kalkulator.rb +0 -11
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/pl/.gitignore +0 -1
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/pl/Rakefile +0 -6
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/pl/features/addition.feature +0 -17
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/pl/features/division.feature +0 -10
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/pl/features/step_definitons/calculator_steps.rb +0 -24
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/pl/features/support/env.rb +0 -6
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/pl/lib/calculator.rb +0 -14
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/pt/Rakefile +0 -6
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/pt/features/adicao.feature +0 -11
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/pt/features/step_definitions/calculadora_steps.rb +0 -20
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/pt/features/support/env.rb +0 -6
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/pt/lib/calculadora.rb +0 -10
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/ro/Rakefile +0 -6
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/ro/features/step_definitons/calculator_steps.rb +0 -24
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/ro/features/suma.feature +0 -11
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/ro/lib/calculator.rb +0 -11
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/ru/Rakefile +0 -6
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/ru/features/addition.feature +0 -11
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/ru/features/consecutive_calculations.feature +0 -17
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/ru/features/division.feature +0 -16
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/ru/features/step_definitons/calculator_steps.rb +0 -19
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/ru/features/support/env.rb +0 -6
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/ru/features/support/world.rb +0 -8
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/ru/lib/calculator.rb +0 -24
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/se/Rakefile +0 -6
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/se/features/step_definitons/kalkulator_steps.rb +0 -24
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/se/features/summering.feature +0 -18
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/se/lib/kalkulator.rb +0 -11
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/sk/.gitignore +0 -1
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/sk/Rakefile +0 -6
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/sk/features/addition.feature +0 -17
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/sk/features/division.feature +0 -10
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/sk/features/step_definitons/calculator_steps.rb +0 -24
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/sk/lib/calculator.rb +0 -14
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/sr-latn/Rakefile +0 -6
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/sr-latn/features/sabiranje.feature +0 -18
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/sr-latn/features/step_definitons/calculator_steps.rb +0 -24
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/sr-latn/lib/calculator.rb +0 -12
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/sr/Rakefile +0 -6
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/sr/features/sabiranje.feature +0 -18
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/sr/features/step_definitons/calculator_steps.rb +0 -24
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/sr/lib/calculator.rb +0 -12
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/tr/.gitignore +0 -1
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/tr/Rakefile +0 -6
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/tr/features/bolme.feature +0 -10
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/tr/features/step_definitons/hesap_makinesi_adimlari.rb +0 -24
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/tr/features/toplama.feature +0 -18
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/tr/lib/hesap_makinesi.rb +0 -15
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/uz/Rakefile +0 -6
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/uz/features/addition.feature +0 -10
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/uz/features/consecutive_calculations.feature +0 -17
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/uz/features/division.feature +0 -17
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/uz/features/step_definitons/calculator_steps.rb +0 -19
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/uz/features/support/env.rb +0 -6
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/uz/features/support/world.rb +0 -8
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/uz/lib/calculator.rb +0 -24
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/zh-CN/Rakefile +0 -6
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/zh-CN/features/addition.feature +0 -18
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/zh-CN/features/step_definitons/calculator_steps.rb +0 -26
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/zh-CN/lib/calculator.rb +0 -10
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/zh-TW/.gitignore +0 -1
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/zh-TW/Rakefile +0 -6
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/zh-TW/features/addition.feature +0 -17
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/zh-TW/features/division.feature +0 -11
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/zh-TW/features/step_definitons/calculator_steps.rb +0 -24
- data/vendor/gems/gems/cucumber-0.4.4/examples/i18n/zh-TW/lib/calculator.rb +0 -14
- data/vendor/gems/gems/cucumber-0.4.4/examples/junit/features/one_passing_one_failing.feature +0 -8
- data/vendor/gems/gems/cucumber-0.4.4/examples/junit/features/pending.feature +0 -5
- data/vendor/gems/gems/cucumber-0.4.4/examples/junit/features/step_definitions/steps.rb +0 -11
- data/vendor/gems/gems/cucumber-0.4.4/examples/python/features/fibonacci.feature +0 -19
- data/vendor/gems/gems/cucumber-0.4.4/examples/python/features/step_definitions/fib_steps.py +0 -11
- data/vendor/gems/gems/cucumber-0.4.4/examples/python/lib/.gitignore +0 -1
- data/vendor/gems/gems/cucumber-0.4.4/examples/python/lib/fib.py +0 -7
- data/vendor/gems/gems/cucumber-0.4.4/examples/ramaze/README.textile +0 -7
- data/vendor/gems/gems/cucumber-0.4.4/examples/ramaze/Rakefile +0 -6
- data/vendor/gems/gems/cucumber-0.4.4/examples/ramaze/app.rb +0 -21
- data/vendor/gems/gems/cucumber-0.4.4/examples/ramaze/features/add.feature +0 -11
- data/vendor/gems/gems/cucumber-0.4.4/examples/ramaze/features/step_definitions/add_steps.rb +0 -15
- data/vendor/gems/gems/cucumber-0.4.4/examples/ramaze/features/support/env.rb +0 -32
- data/vendor/gems/gems/cucumber-0.4.4/examples/ramaze/layout/default.html.erb +0 -8
- data/vendor/gems/gems/cucumber-0.4.4/examples/ramaze/view/index.html.erb +0 -5
- data/vendor/gems/gems/cucumber-0.4.4/examples/ruby2python/features/fibonacci.feature +0 -19
- data/vendor/gems/gems/cucumber-0.4.4/examples/ruby2python/features/step_definitions/fib_steps.rb +0 -7
- data/vendor/gems/gems/cucumber-0.4.4/examples/ruby2python/features/support/env.rb +0 -21
- data/vendor/gems/gems/cucumber-0.4.4/examples/ruby2python/lib/.gitignore +0 -1
- data/vendor/gems/gems/cucumber-0.4.4/examples/ruby2python/lib/fib.py +0 -7
- data/vendor/gems/gems/cucumber-0.4.4/examples/selenium/Rakefile +0 -6
- data/vendor/gems/gems/cucumber-0.4.4/examples/selenium/features/search.feature +0 -9
- data/vendor/gems/gems/cucumber-0.4.4/examples/selenium/features/step_definitons/search_steps.rb +0 -13
- data/vendor/gems/gems/cucumber-0.4.4/examples/selenium/features/support/env.rb +0 -19
- data/vendor/gems/gems/cucumber-0.4.4/examples/selenium_webrat/Rakefile +0 -6
- data/vendor/gems/gems/cucumber-0.4.4/examples/selenium_webrat/config.ru +0 -0
- data/vendor/gems/gems/cucumber-0.4.4/examples/selenium_webrat/features/search.feature +0 -9
- data/vendor/gems/gems/cucumber-0.4.4/examples/selenium_webrat/features/step_definitons/search_steps.rb +0 -13
- data/vendor/gems/gems/cucumber-0.4.4/examples/selenium_webrat/features/support/env.rb +0 -45
- data/vendor/gems/gems/cucumber-0.4.4/examples/self_test/.gitignore +0 -1
- data/vendor/gems/gems/cucumber-0.4.4/examples/self_test/README.textile +0 -6
- data/vendor/gems/gems/cucumber-0.4.4/examples/self_test/Rakefile +0 -6
- data/vendor/gems/gems/cucumber-0.4.4/examples/self_test/features/background/background_tagged_before_on_outline.feature +0 -12
- data/vendor/gems/gems/cucumber-0.4.4/examples/self_test/features/background/background_with_name.feature +0 -7
- data/vendor/gems/gems/cucumber-0.4.4/examples/self_test/features/background/failing_background.feature +0 -12
- data/vendor/gems/gems/cucumber-0.4.4/examples/self_test/features/background/failing_background_after_success.feature +0 -11
- data/vendor/gems/gems/cucumber-0.4.4/examples/self_test/features/background/multiline_args_background.feature +0 -32
- data/vendor/gems/gems/cucumber-0.4.4/examples/self_test/features/background/passing_background.feature +0 -10
- data/vendor/gems/gems/cucumber-0.4.4/examples/self_test/features/background/pending_background.feature +0 -10
- data/vendor/gems/gems/cucumber-0.4.4/examples/self_test/features/background/scenario_outline_failing_background.feature +0 -16
- data/vendor/gems/gems/cucumber-0.4.4/examples/self_test/features/background/scenario_outline_passing_background.feature +0 -16
- data/vendor/gems/gems/cucumber-0.4.4/examples/self_test/features/call_undefined_step_from_step_def.feature +0 -7
- data/vendor/gems/gems/cucumber-0.4.4/examples/self_test/features/failing_expectation.feature +0 -4
- data/vendor/gems/gems/cucumber-0.4.4/examples/self_test/features/lots_of_undefined.feature +0 -8
- data/vendor/gems/gems/cucumber-0.4.4/examples/self_test/features/multiline_name.feature +0 -27
- data/vendor/gems/gems/cucumber-0.4.4/examples/self_test/features/outline_sample.feature +0 -15
- data/vendor/gems/gems/cucumber-0.4.4/examples/self_test/features/sample.feature +0 -21
- data/vendor/gems/gems/cucumber-0.4.4/examples/self_test/features/search_sample.feature +0 -32
- data/vendor/gems/gems/cucumber-0.4.4/examples/self_test/features/step_definitions/sample_steps.rb +0 -81
- data/vendor/gems/gems/cucumber-0.4.4/examples/self_test/features/support/env.rb +0 -18
- data/vendor/gems/gems/cucumber-0.4.4/examples/self_test/features/tags_sample.feature +0 -17
- data/vendor/gems/gems/cucumber-0.4.4/examples/self_test/features/tons_of_cukes.feature +0 -52
- data/vendor/gems/gems/cucumber-0.4.4/examples/self_test/features/undefined_multiline_args.feature +0 -12
- data/vendor/gems/gems/cucumber-0.4.4/examples/self_test/list-of-features.txt +0 -1
- data/vendor/gems/gems/cucumber-0.4.4/examples/sinatra/README.textile +0 -13
- data/vendor/gems/gems/cucumber-0.4.4/examples/sinatra/Rakefile +0 -6
- data/vendor/gems/gems/cucumber-0.4.4/examples/sinatra/app.rb +0 -14
- data/vendor/gems/gems/cucumber-0.4.4/examples/sinatra/features/add.feature +0 -11
- data/vendor/gems/gems/cucumber-0.4.4/examples/sinatra/features/step_definitions/add_steps.rb +0 -15
- data/vendor/gems/gems/cucumber-0.4.4/examples/sinatra/features/support/env.rb +0 -30
- data/vendor/gems/gems/cucumber-0.4.4/examples/sinatra/views/add.erb +0 -5
- data/vendor/gems/gems/cucumber-0.4.4/examples/sinatra/views/layout.erb +0 -8
- data/vendor/gems/gems/cucumber-0.4.4/examples/steps_library/features/step_definitions/steps_lib1.rb +0 -8
- data/vendor/gems/gems/cucumber-0.4.4/examples/steps_library/features/step_definitions/steps_lib2.rb +0 -8
- data/vendor/gems/gems/cucumber-0.4.4/examples/test_unit/Rakefile +0 -6
- data/vendor/gems/gems/cucumber-0.4.4/examples/test_unit/features/step_definitions/test_unit_steps.rb +0 -23
- data/vendor/gems/gems/cucumber-0.4.4/examples/test_unit/features/test_unit.feature +0 -9
- data/vendor/gems/gems/cucumber-0.4.4/examples/tickets/Rakefile +0 -20
- data/vendor/gems/gems/cucumber-0.4.4/examples/tickets/features.html +0 -138
- data/vendor/gems/gems/cucumber-0.4.4/examples/tickets/features/172.feature +0 -28
- data/vendor/gems/gems/cucumber-0.4.4/examples/tickets/features/177/1.feature +0 -29
- data/vendor/gems/gems/cucumber-0.4.4/examples/tickets/features/177/2.feature +0 -21
- data/vendor/gems/gems/cucumber-0.4.4/examples/tickets/features/177/3.feature +0 -18
- data/vendor/gems/gems/cucumber-0.4.4/examples/tickets/features/180.feature +0 -7
- data/vendor/gems/gems/cucumber-0.4.4/examples/tickets/features/229/tagged_hooks.feature +0 -8
- data/vendor/gems/gems/cucumber-0.4.4/examples/tickets/features/229/tagged_hooks.rb +0 -14
- data/vendor/gems/gems/cucumber-0.4.4/examples/tickets/features/236.feature +0 -13
- data/vendor/gems/gems/cucumber-0.4.4/examples/tickets/features/241.feature +0 -13
- data/vendor/gems/gems/cucumber-0.4.4/examples/tickets/features/246.feature +0 -4
- data/vendor/gems/gems/cucumber-0.4.4/examples/tickets/features/248.feature +0 -11
- data/vendor/gems/gems/cucumber-0.4.4/examples/tickets/features/270/back.feature +0 -14
- data/vendor/gems/gems/cucumber-0.4.4/examples/tickets/features/270/back.steps.rb +0 -14
- data/vendor/gems/gems/cucumber-0.4.4/examples/tickets/features/272/hooks.feature +0 -26
- data/vendor/gems/gems/cucumber-0.4.4/examples/tickets/features/272/hooks_steps.rb +0 -53
- data/vendor/gems/gems/cucumber-0.4.4/examples/tickets/features/279/py_string_indent.feature +0 -25
- data/vendor/gems/gems/cucumber-0.4.4/examples/tickets/features/279/py_string_indent.steps.rb +0 -12
- data/vendor/gems/gems/cucumber-0.4.4/examples/tickets/features/279/wrong.feature_ +0 -11
- data/vendor/gems/gems/cucumber-0.4.4/examples/tickets/features/301/filter_background_tagged_hooks.feature +0 -6
- data/vendor/gems/gems/cucumber-0.4.4/examples/tickets/features/301/filter_background_tagged_hooks_steps.rb +0 -12
- data/vendor/gems/gems/cucumber-0.4.4/examples/tickets/features/306/only_background.feature +0 -4
- data/vendor/gems/gems/cucumber-0.4.4/examples/tickets/features/lib/eatting_machine.rb +0 -18
- data/vendor/gems/gems/cucumber-0.4.4/examples/tickets/features/lib/pantry.rb +0 -20
- data/vendor/gems/gems/cucumber-0.4.4/examples/tickets/features/scenario_outline.feature +0 -95
- data/vendor/gems/gems/cucumber-0.4.4/examples/tickets/features/step_definitons/246_steps.rb +0 -3
- data/vendor/gems/gems/cucumber-0.4.4/examples/tickets/features/step_definitons/248_steps.rb +0 -15
- data/vendor/gems/gems/cucumber-0.4.4/examples/tickets/features/step_definitons/scenario_outline_steps.rb +0 -42
- data/vendor/gems/gems/cucumber-0.4.4/examples/tickets/features/step_definitons/tickets_steps.rb +0 -81
- data/vendor/gems/gems/cucumber-0.4.4/examples/tickets/features/table_diffing.feature +0 -13
- data/vendor/gems/gems/cucumber-0.4.4/examples/tickets/features/tickets.feature +0 -28
- data/vendor/gems/gems/cucumber-0.4.4/examples/watir/README.textile +0 -16
- data/vendor/gems/gems/cucumber-0.4.4/examples/watir/Rakefile +0 -10
- data/vendor/gems/gems/cucumber-0.4.4/examples/watir/features/search.feature +0 -12
- data/vendor/gems/gems/cucumber-0.4.4/examples/watir/features/step_definitions/search_steps.rb +0 -26
- data/vendor/gems/gems/cucumber-0.4.4/examples/watir/features/support/env.rb +0 -32
- data/vendor/gems/gems/cucumber-0.4.4/examples/watir/features/support/screenshots.rb +0 -44
- data/vendor/gems/gems/cucumber-0.4.4/examples/webrat/features/search.feature +0 -12
- data/vendor/gems/gems/cucumber-0.4.4/examples/webrat/features/step_definitions/kvasir_steps.rb +0 -14
- data/vendor/gems/gems/cucumber-0.4.4/examples/webrat/features/support/env.rb +0 -17
- data/vendor/gems/gems/cucumber-0.4.4/features/announce.feature +0 -122
- data/vendor/gems/gems/cucumber-0.4.4/features/background.feature +0 -308
- data/vendor/gems/gems/cucumber-0.4.4/features/bug_371.feature +0 -32
- data/vendor/gems/gems/cucumber-0.4.4/features/bug_464.feature +0 -16
- data/vendor/gems/gems/cucumber-0.4.4/features/bug_475.feature +0 -43
- data/vendor/gems/gems/cucumber-0.4.4/features/call_many_steps.feature +0 -124
- data/vendor/gems/gems/cucumber-0.4.4/features/cucumber_cli.feature +0 -652
- data/vendor/gems/gems/cucumber-0.4.4/features/cucumber_cli_diff_disabled.feature +0 -52
- data/vendor/gems/gems/cucumber-0.4.4/features/cucumber_cli_outlines.feature +0 -105
- data/vendor/gems/gems/cucumber-0.4.4/features/custom_formatter.feature +0 -46
- data/vendor/gems/gems/cucumber-0.4.4/features/default_snippets.feature +0 -42
- data/vendor/gems/gems/cucumber-0.4.4/features/drb_server_integration.feature +0 -174
- data/vendor/gems/gems/cucumber-0.4.4/features/exception_in_after_block.feature +0 -100
- data/vendor/gems/gems/cucumber-0.4.4/features/exception_in_after_step_block.feature +0 -102
- data/vendor/gems/gems/cucumber-0.4.4/features/exception_in_before_block.feature +0 -78
- data/vendor/gems/gems/cucumber-0.4.4/features/exclude_files.feature +0 -20
- data/vendor/gems/gems/cucumber-0.4.4/features/expand.feature +0 -60
- data/vendor/gems/gems/cucumber-0.4.4/features/html_formatter.feature +0 -7
- data/vendor/gems/gems/cucumber-0.4.4/features/html_formatter/a.html +0 -183
- data/vendor/gems/gems/cucumber-0.4.4/features/junit_formatter.feature +0 -88
- data/vendor/gems/gems/cucumber-0.4.4/features/language_from_header.feature +0 -30
- data/vendor/gems/gems/cucumber-0.4.4/features/language_help.feature +0 -70
- data/vendor/gems/gems/cucumber-0.4.4/features/listener_debugger_formatter.feature +0 -41
- data/vendor/gems/gems/cucumber-0.4.4/features/multiline_names.feature +0 -43
- data/vendor/gems/gems/cucumber-0.4.4/features/negative_tagged_hooks.feature +0 -61
- data/vendor/gems/gems/cucumber-0.4.4/features/post_configuration_hook.feature +0 -37
- data/vendor/gems/gems/cucumber-0.4.4/features/profiles.feature +0 -112
- data/vendor/gems/gems/cucumber-0.4.4/features/rake_task.feature +0 -152
- data/vendor/gems/gems/cucumber-0.4.4/features/report_called_undefined_steps.feature +0 -34
- data/vendor/gems/gems/cucumber-0.4.4/features/simplest.feature +0 -11
- data/vendor/gems/gems/cucumber-0.4.4/features/snippet.feature +0 -22
- data/vendor/gems/gems/cucumber-0.4.4/features/step_definitions/cucumber_steps.rb +0 -154
- data/vendor/gems/gems/cucumber-0.4.4/features/step_definitions/extra_steps.rb +0 -2
- data/vendor/gems/gems/cucumber-0.4.4/features/step_definitions/simplest_steps.rb +0 -3
- data/vendor/gems/gems/cucumber-0.4.4/features/step_definitions/wire_steps.rb +0 -14
- data/vendor/gems/gems/cucumber-0.4.4/features/support/env.rb +0 -141
- data/vendor/gems/gems/cucumber-0.4.4/features/support/env.rb.simplest +0 -7
- data/vendor/gems/gems/cucumber-0.4.4/features/support/fake_wire_server.rb +0 -63
- data/vendor/gems/gems/cucumber-0.4.4/features/table_diffing.feature +0 -45
- data/vendor/gems/gems/cucumber-0.4.4/features/table_mapping.feature +0 -35
- data/vendor/gems/gems/cucumber-0.4.4/features/tag_logic.feature +0 -258
- data/vendor/gems/gems/cucumber-0.4.4/features/transform.feature +0 -231
- data/vendor/gems/gems/cucumber-0.4.4/features/unicode_table.feature +0 -35
- data/vendor/gems/gems/cucumber-0.4.4/features/usage_and_stepdefs_formatter.feature +0 -169
- data/vendor/gems/gems/cucumber-0.4.4/features/wire_protocol.feature +0 -177
- data/vendor/gems/gems/cucumber-0.4.4/features/work_in_progress.feature +0 -156
- data/vendor/gems/gems/cucumber-0.4.4/gem_tasks/contributors.rake +0 -13
- data/vendor/gems/gems/cucumber-0.4.4/gem_tasks/environment.rake +0 -7
- data/vendor/gems/gems/cucumber-0.4.4/gem_tasks/features.rake +0 -16
- data/vendor/gems/gems/cucumber-0.4.4/gem_tasks/fix_cr_lf.rake +0 -10
- data/vendor/gems/gems/cucumber-0.4.4/gem_tasks/flog.rake +0 -4
- data/vendor/gems/gems/cucumber-0.4.4/gem_tasks/rspec.rake +0 -15
- data/vendor/gems/gems/cucumber-0.4.4/gem_tasks/sass.rake +0 -4
- data/vendor/gems/gems/cucumber-0.4.4/gem_tasks/sdoc.rake +0 -12
- data/vendor/gems/gems/cucumber-0.4.4/lib/README.rdoc +0 -12
- data/vendor/gems/gems/cucumber-0.4.4/lib/autotest/cucumber.rb +0 -6
- data/vendor/gems/gems/cucumber-0.4.4/lib/autotest/cucumber_mixin.rb +0 -131
- data/vendor/gems/gems/cucumber-0.4.4/lib/autotest/cucumber_rails.rb +0 -6
- data/vendor/gems/gems/cucumber-0.4.4/lib/autotest/cucumber_rails_rspec.rb +0 -6
- data/vendor/gems/gems/cucumber-0.4.4/lib/autotest/cucumber_rspec.rb +0 -6
- data/vendor/gems/gems/cucumber-0.4.4/lib/autotest/discover.rb +0 -9
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber.rb +0 -15
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/ast.rb +0 -30
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/ast/background.rb +0 -75
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/ast/comment.rb +0 -31
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/ast/examples.rb +0 -36
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/ast/feature.rb +0 -85
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/ast/feature_element.rb +0 -68
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/ast/features.rb +0 -40
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/ast/outline_table.rb +0 -166
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/ast/py_string.rb +0 -59
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/ast/scenario.rb +0 -111
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/ast/scenario_outline.rb +0 -100
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/ast/step.rb +0 -121
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/ast/step_collection.rb +0 -76
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/ast/step_invocation.rb +0 -190
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/ast/table.rb +0 -655
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/ast/tags.rb +0 -122
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/ast/tree_walker.rb +0 -201
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/ast/visitor.rb +0 -11
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/broadcaster.rb +0 -13
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/cli/configuration.rb +0 -195
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/cli/drb_client.rb +0 -32
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/cli/language_help_formatter.rb +0 -72
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/cli/main.rb +0 -121
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/cli/options.rb +0 -403
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/cli/profile_loader.rb +0 -82
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/constantize.rb +0 -34
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/core_ext/instance_exec.rb +0 -98
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/core_ext/proc.rb +0 -30
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/core_ext/string.rb +0 -16
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/feature_file.rb +0 -54
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/filter.rb +0 -41
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/formatter/ansicolor.rb +0 -157
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/formatter/color_io.rb +0 -23
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/formatter/console.rb +0 -205
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/formatter/cucumber.css +0 -132
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/formatter/cucumber.sass +0 -139
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/formatter/debug.rb +0 -33
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/formatter/duration.rb +0 -13
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/formatter/html.rb +0 -369
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/formatter/junit.rb +0 -140
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/formatter/ordered_xml_markup.rb +0 -24
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/formatter/pdf.rb +0 -234
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/formatter/pretty.rb +0 -239
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/formatter/progress.rb +0 -73
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/formatter/rerun.rb +0 -48
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/formatter/stepdefs.rb +0 -14
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/formatter/steps.rb +0 -49
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/formatter/summary.rb +0 -35
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/formatter/tag_cloud.rb +0 -30
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/formatter/unicode.rb +0 -35
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/formatter/usage.rb +0 -127
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/language_support.rb +0 -30
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/language_support/language_methods.rb +0 -110
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/languages.yml +0 -611
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/parser.rb +0 -8
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/parser/common.rb +0 -170
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/parser/common.tt +0 -21
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/parser/feature.rb +0 -1517
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/parser/feature.tt +0 -281
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/parser/i18n.tt +0 -44
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/parser/natural_language.rb +0 -81
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/parser/py_string.rb +0 -276
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/parser/py_string.tt +0 -45
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/parser/table.rb +0 -305
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/parser/table.tt +0 -60
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/parser/treetop_ext.rb +0 -53
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/platform.rb +0 -31
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/py_support/py_dsl.py +0 -10
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/py_support/py_language.py +0 -10
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/py_support/py_language.rb +0 -81
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/rails/action_controller.rb +0 -38
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/rails/active_record.rb +0 -30
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/rails/rspec.rb +0 -10
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/rails/test_unit.rb +0 -9
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/rails/world.rb +0 -30
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/rake/task.rb +0 -166
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/rb_support/rb_dsl.rb +0 -102
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/rb_support/rb_hook.rb +0 -19
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/rb_support/rb_language.rb +0 -179
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/rb_support/rb_step_definition.rb +0 -75
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/rb_support/rb_transform.rb +0 -37
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/rb_support/rb_world.rb +0 -81
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/rb_support/regexp_argument_matcher.rb +0 -21
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/rspec_neuter.rb +0 -23
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/step_argument.rb +0 -9
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/step_definition_light.rb +0 -20
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/step_match.rb +0 -107
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/step_mother.rb +0 -351
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/webrat/element_locator.rb +0 -89
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/webrat/table_locator.rb +0 -1
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/wire_support/connection.rb +0 -42
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/wire_support/request_handler.rb +0 -19
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/wire_support/wire_exception.rb +0 -10
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/wire_support/wire_language.rb +0 -52
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/wire_support/wire_packet.rb +0 -34
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/wire_support/wire_protocol.rb +0 -64
- data/vendor/gems/gems/cucumber-0.4.4/lib/cucumber/wire_support/wire_step_definition.rb +0 -21
- data/vendor/gems/gems/cucumber-0.4.4/rails_generators/cucumber/USAGE +0 -11
- data/vendor/gems/gems/cucumber-0.4.4/rails_generators/cucumber/cucumber_generator.rb +0 -117
- data/vendor/gems/gems/cucumber-0.4.4/rails_generators/cucumber/templates/cucumber +0 -17
- data/vendor/gems/gems/cucumber-0.4.4/rails_generators/cucumber/templates/cucumber.rake +0 -46
- data/vendor/gems/gems/cucumber-0.4.4/rails_generators/cucumber/templates/cucumber_environment.rb +0 -30
- data/vendor/gems/gems/cucumber-0.4.4/rails_generators/cucumber/templates/env.rb +0 -49
- data/vendor/gems/gems/cucumber-0.4.4/rails_generators/cucumber/templates/paths.rb +0 -27
- data/vendor/gems/gems/cucumber-0.4.4/rails_generators/cucumber/templates/spork_env.rb +0 -57
- data/vendor/gems/gems/cucumber-0.4.4/rails_generators/cucumber/templates/version_check.rb +0 -31
- data/vendor/gems/gems/cucumber-0.4.4/rails_generators/cucumber/templates/webrat_steps.rb +0 -241
- data/vendor/gems/gems/cucumber-0.4.4/rails_generators/feature/USAGE +0 -12
- data/vendor/gems/gems/cucumber-0.4.4/rails_generators/feature/feature_generator.rb +0 -40
- data/vendor/gems/gems/cucumber-0.4.4/rails_generators/feature/templates/feature.erb +0 -31
- data/vendor/gems/gems/cucumber-0.4.4/rails_generators/feature/templates/steps.erb +0 -14
- data/vendor/gems/gems/cucumber-0.4.4/spec/cucumber/ast/background_spec.rb +0 -54
- data/vendor/gems/gems/cucumber-0.4.4/spec/cucumber/ast/feature_element_spec.rb +0 -41
- data/vendor/gems/gems/cucumber-0.4.4/spec/cucumber/ast/feature_factory.rb +0 -62
- data/vendor/gems/gems/cucumber-0.4.4/spec/cucumber/ast/feature_spec.rb +0 -44
- data/vendor/gems/gems/cucumber-0.4.4/spec/cucumber/ast/outline_table_spec.rb +0 -21
- data/vendor/gems/gems/cucumber-0.4.4/spec/cucumber/ast/py_string_spec.rb +0 -51
- data/vendor/gems/gems/cucumber-0.4.4/spec/cucumber/ast/scenario_outline_spec.rb +0 -73
- data/vendor/gems/gems/cucumber-0.4.4/spec/cucumber/ast/scenario_spec.rb +0 -45
- data/vendor/gems/gems/cucumber-0.4.4/spec/cucumber/ast/step_collection_spec.rb +0 -17
- data/vendor/gems/gems/cucumber-0.4.4/spec/cucumber/ast/step_spec.rb +0 -66
- data/vendor/gems/gems/cucumber-0.4.4/spec/cucumber/ast/table_spec.rb +0 -422
- data/vendor/gems/gems/cucumber-0.4.4/spec/cucumber/ast/tags_spec.rb +0 -29
- data/vendor/gems/gems/cucumber-0.4.4/spec/cucumber/ast/tree_walker_spec.rb +0 -11
- data/vendor/gems/gems/cucumber-0.4.4/spec/cucumber/broadcaster_spec.rb +0 -15
- data/vendor/gems/gems/cucumber-0.4.4/spec/cucumber/cli/configuration_spec.rb +0 -396
- data/vendor/gems/gems/cucumber-0.4.4/spec/cucumber/cli/drb_client_spec.rb +0 -77
- data/vendor/gems/gems/cucumber-0.4.4/spec/cucumber/cli/main_spec.rb +0 -172
- data/vendor/gems/gems/cucumber-0.4.4/spec/cucumber/cli/options_spec.rb +0 -338
- data/vendor/gems/gems/cucumber-0.4.4/spec/cucumber/cli/profile_loader_spec.rb +0 -10
- data/vendor/gems/gems/cucumber-0.4.4/spec/cucumber/core_ext/proc_spec.rb +0 -68
- data/vendor/gems/gems/cucumber-0.4.4/spec/cucumber/formatter/ansicolor_spec.rb +0 -31
- data/vendor/gems/gems/cucumber-0.4.4/spec/cucumber/formatter/color_io_spec.rb +0 -27
- data/vendor/gems/gems/cucumber-0.4.4/spec/cucumber/formatter/console_spec.rb +0 -20
- data/vendor/gems/gems/cucumber-0.4.4/spec/cucumber/formatter/duration_spec.rb +0 -22
- data/vendor/gems/gems/cucumber-0.4.4/spec/cucumber/formatter/html_spec.rb +0 -200
- data/vendor/gems/gems/cucumber-0.4.4/spec/cucumber/formatter/junit_spec.rb +0 -107
- data/vendor/gems/gems/cucumber-0.4.4/spec/cucumber/formatter/progress_spec.rb +0 -38
- data/vendor/gems/gems/cucumber-0.4.4/spec/cucumber/formatter/spec_helper.rb +0 -50
- data/vendor/gems/gems/cucumber-0.4.4/spec/cucumber/parser/feature_parser_spec.rb +0 -400
- data/vendor/gems/gems/cucumber-0.4.4/spec/cucumber/parser/table_parser_spec.rb +0 -52
- data/vendor/gems/gems/cucumber-0.4.4/spec/cucumber/rb_support/rb_step_definition_spec.rb +0 -132
- data/vendor/gems/gems/cucumber-0.4.4/spec/cucumber/rb_support/regexp_argument_matcher_spec.rb +0 -18
- data/vendor/gems/gems/cucumber-0.4.4/spec/cucumber/sell_cucumbers.feature +0 -19
- data/vendor/gems/gems/cucumber-0.4.4/spec/cucumber/step_match_spec.rb +0 -56
- data/vendor/gems/gems/cucumber-0.4.4/spec/cucumber/step_mother_spec.rb +0 -270
- data/vendor/gems/gems/cucumber-0.4.4/spec/cucumber/treetop_parser/empty_feature.feature +0 -4
- data/vendor/gems/gems/cucumber-0.4.4/spec/cucumber/treetop_parser/empty_scenario.feature +0 -9
- data/vendor/gems/gems/cucumber-0.4.4/spec/cucumber/treetop_parser/empty_scenario_outline.feature +0 -3
- data/vendor/gems/gems/cucumber-0.4.4/spec/cucumber/treetop_parser/fit_scenario.feature +0 -8
- data/vendor/gems/gems/cucumber-0.4.4/spec/cucumber/treetop_parser/given_scenario.feature +0 -9
- data/vendor/gems/gems/cucumber-0.4.4/spec/cucumber/treetop_parser/invalid_scenario_outlines.feature +0 -7
- data/vendor/gems/gems/cucumber-0.4.4/spec/cucumber/treetop_parser/multiline_steps.feature +0 -17
- data/vendor/gems/gems/cucumber-0.4.4/spec/cucumber/treetop_parser/multiple_tables.feature +0 -27
- data/vendor/gems/gems/cucumber-0.4.4/spec/cucumber/treetop_parser/scenario_outline.feature +0 -16
- data/vendor/gems/gems/cucumber-0.4.4/spec/cucumber/treetop_parser/spaces.feature +0 -12
- data/vendor/gems/gems/cucumber-0.4.4/spec/cucumber/treetop_parser/test_dos.feature +0 -25
- data/vendor/gems/gems/cucumber-0.4.4/spec/cucumber/treetop_parser/with_comments.feature +0 -23
- data/vendor/gems/gems/cucumber-0.4.4/spec/cucumber/treetop_parser/with_tags.feature +0 -18
- data/vendor/gems/gems/cucumber-0.4.4/spec/cucumber/wire_support/wire_language_spec.rb +0 -47
- data/vendor/gems/gems/cucumber-0.4.4/spec/cucumber/wire_support/wire_packet_spec.rb +0 -26
- data/vendor/gems/gems/cucumber-0.4.4/spec/cucumber/world/pending_spec.rb +0 -46
- data/vendor/gems/gems/cucumber-0.4.4/spec/spec.opts +0 -4
- data/vendor/gems/gems/cucumber-0.4.4/spec/spec_helper.rb +0 -18
- data/vendor/gems/gems/daemons-1.0.10/LICENSE +0 -29
- data/vendor/gems/gems/daemons-1.0.10/README +0 -223
- data/vendor/gems/gems/daemons-1.0.10/Rakefile +0 -84
- data/vendor/gems/gems/daemons-1.0.10/Releases +0 -126
- data/vendor/gems/gems/daemons-1.0.10/TODO +0 -6
- data/vendor/gems/gems/daemons-1.0.10/examples/call/call.rb +0 -56
- data/vendor/gems/gems/daemons-1.0.10/examples/call/call_monitor.rb +0 -55
- data/vendor/gems/gems/daemons-1.0.10/examples/daemonize/daemonize.rb +0 -20
- data/vendor/gems/gems/daemons-1.0.10/examples/run/ctrl_crash.rb +0 -17
- data/vendor/gems/gems/daemons-1.0.10/examples/run/ctrl_exec.rb +0 -16
- data/vendor/gems/gems/daemons-1.0.10/examples/run/ctrl_exit.rb +0 -15
- data/vendor/gems/gems/daemons-1.0.10/examples/run/ctrl_keep_pid_files.rb +0 -17
- data/vendor/gems/gems/daemons-1.0.10/examples/run/ctrl_monitor.rb +0 -16
- data/vendor/gems/gems/daemons-1.0.10/examples/run/ctrl_multiple.rb +0 -16
- data/vendor/gems/gems/daemons-1.0.10/examples/run/ctrl_normal.rb +0 -12
- data/vendor/gems/gems/daemons-1.0.10/examples/run/ctrl_ontop.rb +0 -16
- data/vendor/gems/gems/daemons-1.0.10/examples/run/ctrl_optionparser.rb +0 -43
- data/vendor/gems/gems/daemons-1.0.10/examples/run/ctrl_proc.rb +0 -25
- data/vendor/gems/gems/daemons-1.0.10/examples/run/ctrl_proc.rb.output +0 -101
- data/vendor/gems/gems/daemons-1.0.10/examples/run/ctrl_proc_multiple.rb +0 -22
- data/vendor/gems/gems/daemons-1.0.10/examples/run/ctrl_proc_multiple.rb.output +0 -2
- data/vendor/gems/gems/daemons-1.0.10/examples/run/ctrl_proc_simple.rb +0 -17
- data/vendor/gems/gems/daemons-1.0.10/examples/run/myserver.rb +0 -12
- data/vendor/gems/gems/daemons-1.0.10/examples/run/myserver_crashing.rb +0 -14
- data/vendor/gems/gems/daemons-1.0.10/examples/run/myserver_crashing.rb.output +0 -30
- data/vendor/gems/gems/daemons-1.0.10/examples/run/myserver_exiting.rb +0 -8
- data/vendor/gems/gems/daemons-1.0.10/lib/daemons.rb +0 -283
- data/vendor/gems/gems/daemons-1.0.10/lib/daemons/application.rb +0 -372
- data/vendor/gems/gems/daemons-1.0.10/lib/daemons/application_group.rb +0 -152
- data/vendor/gems/gems/daemons-1.0.10/lib/daemons/cmdline.rb +0 -117
- data/vendor/gems/gems/daemons-1.0.10/lib/daemons/controller.rb +0 -134
- data/vendor/gems/gems/daemons-1.0.10/lib/daemons/daemonize.rb +0 -263
- data/vendor/gems/gems/daemons-1.0.10/lib/daemons/exceptions.rb +0 -28
- data/vendor/gems/gems/daemons-1.0.10/lib/daemons/monitor.rb +0 -127
- data/vendor/gems/gems/daemons-1.0.10/lib/daemons/pid.rb +0 -101
- data/vendor/gems/gems/daemons-1.0.10/lib/daemons/pidfile.rb +0 -111
- data/vendor/gems/gems/daemons-1.0.10/lib/daemons/pidmem.rb +0 -10
- data/vendor/gems/gems/daemons-1.0.10/setup.rb +0 -1360
- data/vendor/gems/gems/diff-lcs-1.1.2/ChangeLog +0 -46
- data/vendor/gems/gems/diff-lcs-1.1.2/Install +0 -6
- data/vendor/gems/gems/diff-lcs-1.1.2/README +0 -76
- data/vendor/gems/gems/diff-lcs-1.1.2/Rakefile +0 -116
- data/vendor/gems/gems/diff-lcs-1.1.2/bin/htmldiff +0 -112
- data/vendor/gems/gems/diff-lcs-1.1.2/bin/ldiff +0 -45
- data/vendor/gems/gems/diff-lcs-1.1.2/lib/diff/lcs.rb +0 -1105
- data/vendor/gems/gems/diff-lcs-1.1.2/lib/diff/lcs/array.rb +0 -21
- data/vendor/gems/gems/diff-lcs-1.1.2/lib/diff/lcs/block.rb +0 -51
- data/vendor/gems/gems/diff-lcs-1.1.2/lib/diff/lcs/callbacks.rb +0 -322
- data/vendor/gems/gems/diff-lcs-1.1.2/lib/diff/lcs/change.rb +0 -169
- data/vendor/gems/gems/diff-lcs-1.1.2/lib/diff/lcs/hunk.rb +0 -257
- data/vendor/gems/gems/diff-lcs-1.1.2/lib/diff/lcs/ldiff.rb +0 -226
- data/vendor/gems/gems/diff-lcs-1.1.2/lib/diff/lcs/string.rb +0 -19
- data/vendor/gems/gems/diff-lcs-1.1.2/tests/00test.rb +0 -626
- data/vendor/gems/gems/eventmachine-0.12.10/.gitignore +0 -14
- data/vendor/gems/gems/eventmachine-0.12.10/README +0 -82
- data/vendor/gems/gems/eventmachine-0.12.10/Rakefile +0 -374
- data/vendor/gems/gems/eventmachine-0.12.10/docs/COPYING +0 -60
- data/vendor/gems/gems/eventmachine-0.12.10/docs/ChangeLog +0 -211
- data/vendor/gems/gems/eventmachine-0.12.10/docs/DEFERRABLES +0 -133
- data/vendor/gems/gems/eventmachine-0.12.10/docs/EPOLL +0 -141
- data/vendor/gems/gems/eventmachine-0.12.10/docs/GNU +0 -281
- data/vendor/gems/gems/eventmachine-0.12.10/docs/INSTALL +0 -13
- data/vendor/gems/gems/eventmachine-0.12.10/docs/KEYBOARD +0 -38
- data/vendor/gems/gems/eventmachine-0.12.10/docs/LEGAL +0 -25
- data/vendor/gems/gems/eventmachine-0.12.10/docs/LIGHTWEIGHT_CONCURRENCY +0 -70
- data/vendor/gems/gems/eventmachine-0.12.10/docs/PURE_RUBY +0 -75
- data/vendor/gems/gems/eventmachine-0.12.10/docs/RELEASE_NOTES +0 -94
- data/vendor/gems/gems/eventmachine-0.12.10/docs/SMTP +0 -2
- data/vendor/gems/gems/eventmachine-0.12.10/docs/SPAWNED_PROCESSES +0 -89
- data/vendor/gems/gems/eventmachine-0.12.10/docs/TODO +0 -8
- data/vendor/gems/gems/eventmachine-0.12.10/eventmachine.gemspec +0 -40
- data/vendor/gems/gems/eventmachine-0.12.10/examples/ex_channel.rb +0 -43
- data/vendor/gems/gems/eventmachine-0.12.10/examples/ex_queue.rb +0 -2
- data/vendor/gems/gems/eventmachine-0.12.10/examples/helper.rb +0 -2
- data/vendor/gems/gems/eventmachine-0.12.10/ext/binder.cpp +0 -125
- data/vendor/gems/gems/eventmachine-0.12.10/ext/binder.h +0 -46
- data/vendor/gems/gems/eventmachine-0.12.10/ext/cmain.cpp +0 -827
- data/vendor/gems/gems/eventmachine-0.12.10/ext/cplusplus.cpp +0 -202
- data/vendor/gems/gems/eventmachine-0.12.10/ext/ed.cpp +0 -1893
- data/vendor/gems/gems/eventmachine-0.12.10/ext/ed.h +0 -424
- data/vendor/gems/gems/eventmachine-0.12.10/ext/em.cpp +0 -2282
- data/vendor/gems/gems/eventmachine-0.12.10/ext/em.h +0 -232
- data/vendor/gems/gems/eventmachine-0.12.10/ext/emwin.cpp +0 -300
- data/vendor/gems/gems/eventmachine-0.12.10/ext/emwin.h +0 -94
- data/vendor/gems/gems/eventmachine-0.12.10/ext/epoll.cpp +0 -26
- data/vendor/gems/gems/eventmachine-0.12.10/ext/epoll.h +0 -25
- data/vendor/gems/gems/eventmachine-0.12.10/ext/eventmachine.h +0 -122
- data/vendor/gems/gems/eventmachine-0.12.10/ext/eventmachine_cpp.h +0 -96
- data/vendor/gems/gems/eventmachine-0.12.10/ext/extconf.rb +0 -148
- data/vendor/gems/gems/eventmachine-0.12.10/ext/fastfilereader/extconf.rb +0 -83
- data/vendor/gems/gems/eventmachine-0.12.10/ext/fastfilereader/mapper.cpp +0 -214
- data/vendor/gems/gems/eventmachine-0.12.10/ext/fastfilereader/mapper.h +0 -59
- data/vendor/gems/gems/eventmachine-0.12.10/ext/fastfilereader/rubymain.cpp +0 -127
- data/vendor/gems/gems/eventmachine-0.12.10/ext/files.cpp +0 -94
- data/vendor/gems/gems/eventmachine-0.12.10/ext/files.h +0 -65
- data/vendor/gems/gems/eventmachine-0.12.10/ext/kb.cpp +0 -81
- data/vendor/gems/gems/eventmachine-0.12.10/ext/page.cpp +0 -107
- data/vendor/gems/gems/eventmachine-0.12.10/ext/page.h +0 -51
- data/vendor/gems/gems/eventmachine-0.12.10/ext/pipe.cpp +0 -349
- data/vendor/gems/gems/eventmachine-0.12.10/ext/project.h +0 -151
- data/vendor/gems/gems/eventmachine-0.12.10/ext/rubymain.cpp +0 -1166
- data/vendor/gems/gems/eventmachine-0.12.10/ext/sigs.cpp +0 -89
- data/vendor/gems/gems/eventmachine-0.12.10/ext/sigs.h +0 -32
- data/vendor/gems/gems/eventmachine-0.12.10/ext/ssl.cpp +0 -460
- data/vendor/gems/gems/eventmachine-0.12.10/ext/ssl.h +0 -94
- data/vendor/gems/gems/eventmachine-0.12.10/java/.classpath +0 -8
- data/vendor/gems/gems/eventmachine-0.12.10/java/.project +0 -17
- data/vendor/gems/gems/eventmachine-0.12.10/java/src/com/rubyeventmachine/EmReactor.java +0 -570
- data/vendor/gems/gems/eventmachine-0.12.10/java/src/com/rubyeventmachine/EmReactorException.java +0 -40
- data/vendor/gems/gems/eventmachine-0.12.10/java/src/com/rubyeventmachine/EventableChannel.java +0 -69
- data/vendor/gems/gems/eventmachine-0.12.10/java/src/com/rubyeventmachine/EventableDatagramChannel.java +0 -189
- data/vendor/gems/gems/eventmachine-0.12.10/java/src/com/rubyeventmachine/EventableSocketChannel.java +0 -364
- data/vendor/gems/gems/eventmachine-0.12.10/java/src/com/rubyeventmachine/application/Application.java +0 -194
- data/vendor/gems/gems/eventmachine-0.12.10/java/src/com/rubyeventmachine/application/Connection.java +0 -74
- data/vendor/gems/gems/eventmachine-0.12.10/java/src/com/rubyeventmachine/application/ConnectionFactory.java +0 -37
- data/vendor/gems/gems/eventmachine-0.12.10/java/src/com/rubyeventmachine/application/DefaultConnectionFactory.java +0 -46
- data/vendor/gems/gems/eventmachine-0.12.10/java/src/com/rubyeventmachine/application/PeriodicTimer.java +0 -38
- data/vendor/gems/gems/eventmachine-0.12.10/java/src/com/rubyeventmachine/application/Timer.java +0 -54
- data/vendor/gems/gems/eventmachine-0.12.10/java/src/com/rubyeventmachine/tests/ApplicationTest.java +0 -109
- data/vendor/gems/gems/eventmachine-0.12.10/java/src/com/rubyeventmachine/tests/ConnectTest.java +0 -148
- data/vendor/gems/gems/eventmachine-0.12.10/java/src/com/rubyeventmachine/tests/EMTest.java +0 -80
- data/vendor/gems/gems/eventmachine-0.12.10/java/src/com/rubyeventmachine/tests/TestDatagrams.java +0 -53
- data/vendor/gems/gems/eventmachine-0.12.10/java/src/com/rubyeventmachine/tests/TestServers.java +0 -75
- data/vendor/gems/gems/eventmachine-0.12.10/java/src/com/rubyeventmachine/tests/TestTimers.java +0 -90
- data/vendor/gems/gems/eventmachine-0.12.10/lib/em/buftok.rb +0 -138
- data/vendor/gems/gems/eventmachine-0.12.10/lib/em/callback.rb +0 -26
- data/vendor/gems/gems/eventmachine-0.12.10/lib/em/channel.rb +0 -57
- data/vendor/gems/gems/eventmachine-0.12.10/lib/em/connection.rb +0 -564
- data/vendor/gems/gems/eventmachine-0.12.10/lib/em/deferrable.rb +0 -192
- data/vendor/gems/gems/eventmachine-0.12.10/lib/em/file_watch.rb +0 -54
- data/vendor/gems/gems/eventmachine-0.12.10/lib/em/future.rb +0 -61
- data/vendor/gems/gems/eventmachine-0.12.10/lib/em/messages.rb +0 -66
- data/vendor/gems/gems/eventmachine-0.12.10/lib/em/process_watch.rb +0 -44
- data/vendor/gems/gems/eventmachine-0.12.10/lib/em/processes.rb +0 -119
- data/vendor/gems/gems/eventmachine-0.12.10/lib/em/protocols.rb +0 -36
- data/vendor/gems/gems/eventmachine-0.12.10/lib/em/protocols/header_and_content.rb +0 -138
- data/vendor/gems/gems/eventmachine-0.12.10/lib/em/protocols/httpclient.rb +0 -263
- data/vendor/gems/gems/eventmachine-0.12.10/lib/em/protocols/httpclient2.rb +0 -590
- data/vendor/gems/gems/eventmachine-0.12.10/lib/em/protocols/line_and_text.rb +0 -125
- data/vendor/gems/gems/eventmachine-0.12.10/lib/em/protocols/linetext2.rb +0 -161
- data/vendor/gems/gems/eventmachine-0.12.10/lib/em/protocols/memcache.rb +0 -323
- data/vendor/gems/gems/eventmachine-0.12.10/lib/em/protocols/object_protocol.rb +0 -45
- data/vendor/gems/gems/eventmachine-0.12.10/lib/em/protocols/postgres3.rb +0 -247
- data/vendor/gems/gems/eventmachine-0.12.10/lib/em/protocols/saslauth.rb +0 -175
- data/vendor/gems/gems/eventmachine-0.12.10/lib/em/protocols/smtpclient.rb +0 -357
- data/vendor/gems/gems/eventmachine-0.12.10/lib/em/protocols/smtpserver.rb +0 -547
- data/vendor/gems/gems/eventmachine-0.12.10/lib/em/protocols/socks4.rb +0 -66
- data/vendor/gems/gems/eventmachine-0.12.10/lib/em/protocols/stomp.rb +0 -200
- data/vendor/gems/gems/eventmachine-0.12.10/lib/em/protocols/tcptest.rb +0 -53
- data/vendor/gems/gems/eventmachine-0.12.10/lib/em/queue.rb +0 -61
- data/vendor/gems/gems/eventmachine-0.12.10/lib/em/spawnable.rb +0 -85
- data/vendor/gems/gems/eventmachine-0.12.10/lib/em/streamer.rb +0 -130
- data/vendor/gems/gems/eventmachine-0.12.10/lib/em/timers.rb +0 -56
- data/vendor/gems/gems/eventmachine-0.12.10/lib/em/version.rb +0 -3
- data/vendor/gems/gems/eventmachine-0.12.10/lib/eventmachine.rb +0 -1592
- data/vendor/gems/gems/eventmachine-0.12.10/lib/evma.rb +0 -32
- data/vendor/gems/gems/eventmachine-0.12.10/lib/evma/callback.rb +0 -32
- data/vendor/gems/gems/eventmachine-0.12.10/lib/evma/container.rb +0 -75
- data/vendor/gems/gems/eventmachine-0.12.10/lib/evma/factory.rb +0 -77
- data/vendor/gems/gems/eventmachine-0.12.10/lib/evma/protocol.rb +0 -87
- data/vendor/gems/gems/eventmachine-0.12.10/lib/evma/reactor.rb +0 -48
- data/vendor/gems/gems/eventmachine-0.12.10/lib/jeventmachine.rb +0 -257
- data/vendor/gems/gems/eventmachine-0.12.10/lib/pr_eventmachine.rb +0 -1022
- data/vendor/gems/gems/eventmachine-0.12.10/setup.rb +0 -1585
- data/vendor/gems/gems/eventmachine-0.12.10/tasks/cpp.rake_example +0 -77
- data/vendor/gems/gems/eventmachine-0.12.10/tests/client.crt +0 -31
- data/vendor/gems/gems/eventmachine-0.12.10/tests/client.key +0 -51
- data/vendor/gems/gems/eventmachine-0.12.10/tests/test_attach.rb +0 -126
- data/vendor/gems/gems/eventmachine-0.12.10/tests/test_basic.rb +0 -284
- data/vendor/gems/gems/eventmachine-0.12.10/tests/test_channel.rb +0 -63
- data/vendor/gems/gems/eventmachine-0.12.10/tests/test_connection_count.rb +0 -35
- data/vendor/gems/gems/eventmachine-0.12.10/tests/test_defer.rb +0 -47
- data/vendor/gems/gems/eventmachine-0.12.10/tests/test_epoll.rb +0 -160
- data/vendor/gems/gems/eventmachine-0.12.10/tests/test_error_handler.rb +0 -35
- data/vendor/gems/gems/eventmachine-0.12.10/tests/test_errors.rb +0 -82
- data/vendor/gems/gems/eventmachine-0.12.10/tests/test_exc.rb +0 -55
- data/vendor/gems/gems/eventmachine-0.12.10/tests/test_file_watch.rb +0 -49
- data/vendor/gems/gems/eventmachine-0.12.10/tests/test_futures.rb +0 -198
- data/vendor/gems/gems/eventmachine-0.12.10/tests/test_get_sock_opt.rb +0 -30
- data/vendor/gems/gems/eventmachine-0.12.10/tests/test_handler_check.rb +0 -37
- data/vendor/gems/gems/eventmachine-0.12.10/tests/test_hc.rb +0 -218
- data/vendor/gems/gems/eventmachine-0.12.10/tests/test_httpclient.rb +0 -218
- data/vendor/gems/gems/eventmachine-0.12.10/tests/test_httpclient2.rb +0 -153
- data/vendor/gems/gems/eventmachine-0.12.10/tests/test_inactivity_timeout.rb +0 -50
- data/vendor/gems/gems/eventmachine-0.12.10/tests/test_kb.rb +0 -60
- data/vendor/gems/gems/eventmachine-0.12.10/tests/test_ltp.rb +0 -182
- data/vendor/gems/gems/eventmachine-0.12.10/tests/test_ltp2.rb +0 -317
- data/vendor/gems/gems/eventmachine-0.12.10/tests/test_next_tick.rb +0 -133
- data/vendor/gems/gems/eventmachine-0.12.10/tests/test_object_protocol.rb +0 -37
- data/vendor/gems/gems/eventmachine-0.12.10/tests/test_pause.rb +0 -70
- data/vendor/gems/gems/eventmachine-0.12.10/tests/test_pending_connect_timeout.rb +0 -48
- data/vendor/gems/gems/eventmachine-0.12.10/tests/test_process_watch.rb +0 -48
- data/vendor/gems/gems/eventmachine-0.12.10/tests/test_processes.rb +0 -128
- data/vendor/gems/gems/eventmachine-0.12.10/tests/test_proxy_connection.rb +0 -92
- data/vendor/gems/gems/eventmachine-0.12.10/tests/test_pure.rb +0 -125
- data/vendor/gems/gems/eventmachine-0.12.10/tests/test_queue.rb +0 -44
- data/vendor/gems/gems/eventmachine-0.12.10/tests/test_running.rb +0 -42
- data/vendor/gems/gems/eventmachine-0.12.10/tests/test_sasl.rb +0 -72
- data/vendor/gems/gems/eventmachine-0.12.10/tests/test_send_file.rb +0 -242
- data/vendor/gems/gems/eventmachine-0.12.10/tests/test_servers.rb +0 -76
- data/vendor/gems/gems/eventmachine-0.12.10/tests/test_smtpclient.rb +0 -83
- data/vendor/gems/gems/eventmachine-0.12.10/tests/test_smtpserver.rb +0 -85
- data/vendor/gems/gems/eventmachine-0.12.10/tests/test_spawn.rb +0 -322
- data/vendor/gems/gems/eventmachine-0.12.10/tests/test_ssl_args.rb +0 -79
- data/vendor/gems/gems/eventmachine-0.12.10/tests/test_ssl_methods.rb +0 -50
- data/vendor/gems/gems/eventmachine-0.12.10/tests/test_ssl_verify.rb +0 -82
- data/vendor/gems/gems/eventmachine-0.12.10/tests/test_timers.rb +0 -162
- data/vendor/gems/gems/eventmachine-0.12.10/tests/test_ud.rb +0 -36
- data/vendor/gems/gems/eventmachine-0.12.10/tests/testem.rb +0 -31
- data/vendor/gems/gems/eventmachine-0.12.10/web/whatis +0 -7
- data/vendor/gems/gems/extlib-0.9.13/History.txt +0 -77
- data/vendor/gems/gems/extlib-0.9.13/LICENSE +0 -47
- data/vendor/gems/gems/extlib-0.9.13/README +0 -0
- data/vendor/gems/gems/extlib-0.9.13/Rakefile +0 -180
- data/vendor/gems/gems/extlib-0.9.13/lib/extlib.rb +0 -50
- data/vendor/gems/gems/extlib-0.9.13/lib/extlib/array.rb +0 -36
- data/vendor/gems/gems/extlib-0.9.13/lib/extlib/assertions.rb +0 -8
- data/vendor/gems/gems/extlib-0.9.13/lib/extlib/blank.rb +0 -89
- data/vendor/gems/gems/extlib-0.9.13/lib/extlib/boolean.rb +0 -11
- data/vendor/gems/gems/extlib-0.9.13/lib/extlib/byte_array.rb +0 -6
- data/vendor/gems/gems/extlib-0.9.13/lib/extlib/class.rb +0 -177
- data/vendor/gems/gems/extlib-0.9.13/lib/extlib/datetime.rb +0 -29
- data/vendor/gems/gems/extlib-0.9.13/lib/extlib/dictionary.rb +0 -433
- data/vendor/gems/gems/extlib-0.9.13/lib/extlib/hash.rb +0 -442
- data/vendor/gems/gems/extlib-0.9.13/lib/extlib/hook.rb +0 -401
- data/vendor/gems/gems/extlib-0.9.13/lib/extlib/inflection.rb +0 -434
- data/vendor/gems/gems/extlib-0.9.13/lib/extlib/lazy_array.rb +0 -457
- data/vendor/gems/gems/extlib-0.9.13/lib/extlib/lazy_module.rb +0 -18
- data/vendor/gems/gems/extlib-0.9.13/lib/extlib/logger.rb +0 -198
- data/vendor/gems/gems/extlib-0.9.13/lib/extlib/mash.rb +0 -155
- data/vendor/gems/gems/extlib-0.9.13/lib/extlib/module.rb +0 -47
- data/vendor/gems/gems/extlib-0.9.13/lib/extlib/nil.rb +0 -5
- data/vendor/gems/gems/extlib-0.9.13/lib/extlib/numeric.rb +0 -5
- data/vendor/gems/gems/extlib-0.9.13/lib/extlib/object.rb +0 -175
- data/vendor/gems/gems/extlib-0.9.13/lib/extlib/object_space.rb +0 -13
- data/vendor/gems/gems/extlib-0.9.13/lib/extlib/pathname.rb +0 -20
- data/vendor/gems/gems/extlib-0.9.13/lib/extlib/pooling.rb +0 -235
- data/vendor/gems/gems/extlib-0.9.13/lib/extlib/rubygems.rb +0 -38
- data/vendor/gems/gems/extlib-0.9.13/lib/extlib/simple_set.rb +0 -66
- data/vendor/gems/gems/extlib-0.9.13/lib/extlib/string.rb +0 -175
- data/vendor/gems/gems/extlib-0.9.13/lib/extlib/struct.rb +0 -17
- data/vendor/gems/gems/extlib-0.9.13/lib/extlib/symbol.rb +0 -21
- data/vendor/gems/gems/extlib-0.9.13/lib/extlib/tasks/release.rb +0 -15
- data/vendor/gems/gems/extlib-0.9.13/lib/extlib/time.rb +0 -43
- data/vendor/gems/gems/extlib-0.9.13/lib/extlib/version.rb +0 -3
- data/vendor/gems/gems/extlib-0.9.13/lib/extlib/virtual_file.rb +0 -10
- data/vendor/gems/gems/extlib-0.9.13/spec/array_spec.rb +0 -39
- data/vendor/gems/gems/extlib-0.9.13/spec/blank_spec.rb +0 -85
- data/vendor/gems/gems/extlib-0.9.13/spec/byte_array_spec.rb +0 -7
- data/vendor/gems/gems/extlib-0.9.13/spec/class_spec.rb +0 -157
- data/vendor/gems/gems/extlib-0.9.13/spec/datetime_spec.rb +0 -22
- data/vendor/gems/gems/extlib-0.9.13/spec/hash_spec.rb +0 -537
- data/vendor/gems/gems/extlib-0.9.13/spec/hook_spec.rb +0 -1234
- data/vendor/gems/gems/extlib-0.9.13/spec/inflection/plural_spec.rb +0 -564
- data/vendor/gems/gems/extlib-0.9.13/spec/inflection/singular_spec.rb +0 -497
- data/vendor/gems/gems/extlib-0.9.13/spec/inflection_extras_spec.rb +0 -93
- data/vendor/gems/gems/extlib-0.9.13/spec/lazy_array_spec.rb +0 -1932
- data/vendor/gems/gems/extlib-0.9.13/spec/lazy_module_spec.rb +0 -38
- data/vendor/gems/gems/extlib-0.9.13/spec/mash_spec.rb +0 -311
- data/vendor/gems/gems/extlib-0.9.13/spec/module_spec.rb +0 -70
- data/vendor/gems/gems/extlib-0.9.13/spec/object_space_spec.rb +0 -9
- data/vendor/gems/gems/extlib-0.9.13/spec/object_spec.rb +0 -114
- data/vendor/gems/gems/extlib-0.9.13/spec/pooling_spec.rb +0 -511
- data/vendor/gems/gems/extlib-0.9.13/spec/simple_set_spec.rb +0 -57
- data/vendor/gems/gems/extlib-0.9.13/spec/spec.opts +0 -3
- data/vendor/gems/gems/extlib-0.9.13/spec/spec_helper.rb +0 -10
- data/vendor/gems/gems/extlib-0.9.13/spec/string_spec.rb +0 -220
- data/vendor/gems/gems/extlib-0.9.13/spec/struct_spec.rb +0 -12
- data/vendor/gems/gems/extlib-0.9.13/spec/symbol_spec.rb +0 -8
- data/vendor/gems/gems/extlib-0.9.13/spec/time_spec.rb +0 -29
- data/vendor/gems/gems/extlib-0.9.13/spec/try_call_spec.rb +0 -73
- data/vendor/gems/gems/extlib-0.9.13/spec/try_dup_spec.rb +0 -45
- data/vendor/gems/gems/extlib-0.9.13/spec/virtual_file_spec.rb +0 -21
- data/vendor/gems/gems/haml-2.2.13/.yardopts +0 -5
- data/vendor/gems/gems/haml-2.2.13/CONTRIBUTING +0 -4
- data/vendor/gems/gems/haml-2.2.13/MIT-LICENSE +0 -20
- data/vendor/gems/gems/haml-2.2.13/README.md +0 -347
- data/vendor/gems/gems/haml-2.2.13/REVISION +0 -1
- data/vendor/gems/gems/haml-2.2.13/Rakefile +0 -378
- data/vendor/gems/gems/haml-2.2.13/VERSION +0 -1
- data/vendor/gems/gems/haml-2.2.13/VERSION_NAME +0 -1
- data/vendor/gems/gems/haml-2.2.13/bin/css2sass +0 -7
- data/vendor/gems/gems/haml-2.2.13/bin/haml +0 -9
- data/vendor/gems/gems/haml-2.2.13/bin/html2haml +0 -7
- data/vendor/gems/gems/haml-2.2.13/bin/sass +0 -8
- data/vendor/gems/gems/haml-2.2.13/extra/haml-mode.el +0 -662
- data/vendor/gems/gems/haml-2.2.13/extra/sass-mode.el +0 -206
- data/vendor/gems/gems/haml-2.2.13/extra/update_watch.rb +0 -13
- data/vendor/gems/gems/haml-2.2.13/init.rb +0 -16
- data/vendor/gems/gems/haml-2.2.13/lib/haml.rb +0 -40
- data/vendor/gems/gems/haml-2.2.13/lib/haml/buffer.rb +0 -302
- data/vendor/gems/gems/haml-2.2.13/lib/haml/engine.rb +0 -299
- data/vendor/gems/gems/haml-2.2.13/lib/haml/error.rb +0 -22
- data/vendor/gems/gems/haml-2.2.13/lib/haml/exec.rb +0 -459
- data/vendor/gems/gems/haml-2.2.13/lib/haml/filters.rb +0 -341
- data/vendor/gems/gems/haml-2.2.13/lib/haml/helpers.rb +0 -561
- data/vendor/gems/gems/haml-2.2.13/lib/haml/helpers/action_view_extensions.rb +0 -55
- data/vendor/gems/gems/haml-2.2.13/lib/haml/helpers/action_view_mods.rb +0 -177
- data/vendor/gems/gems/haml-2.2.13/lib/haml/helpers/xss_mods.rb +0 -95
- data/vendor/gems/gems/haml-2.2.13/lib/haml/html.rb +0 -262
- data/vendor/gems/gems/haml-2.2.13/lib/haml/precompiler.rb +0 -1035
- data/vendor/gems/gems/haml-2.2.13/lib/haml/shared.rb +0 -78
- data/vendor/gems/gems/haml-2.2.13/lib/haml/template.rb +0 -85
- data/vendor/gems/gems/haml-2.2.13/lib/haml/template/patch.rb +0 -58
- data/vendor/gems/gems/haml-2.2.13/lib/haml/template/plugin.rb +0 -71
- data/vendor/gems/gems/haml-2.2.13/lib/haml/util.rb +0 -265
- data/vendor/gems/gems/haml-2.2.13/lib/haml/version.rb +0 -64
- data/vendor/gems/gems/haml-2.2.13/lib/sass.rb +0 -24
- data/vendor/gems/gems/haml-2.2.13/lib/sass/css.rb +0 -404
- data/vendor/gems/gems/haml-2.2.13/lib/sass/engine.rb +0 -475
- data/vendor/gems/gems/haml-2.2.13/lib/sass/environment.rb +0 -79
- data/vendor/gems/gems/haml-2.2.13/lib/sass/error.rb +0 -57
- data/vendor/gems/gems/haml-2.2.13/lib/sass/files.rb +0 -139
- data/vendor/gems/gems/haml-2.2.13/lib/sass/plugin.rb +0 -223
- data/vendor/gems/gems/haml-2.2.13/lib/sass/plugin/merb.rb +0 -57
- data/vendor/gems/gems/haml-2.2.13/lib/sass/plugin/rails.rb +0 -24
- data/vendor/gems/gems/haml-2.2.13/lib/sass/repl.rb +0 -58
- data/vendor/gems/gems/haml-2.2.13/lib/sass/script.rb +0 -59
- data/vendor/gems/gems/haml-2.2.13/lib/sass/script/bool.rb +0 -17
- data/vendor/gems/gems/haml-2.2.13/lib/sass/script/color.rb +0 -183
- data/vendor/gems/gems/haml-2.2.13/lib/sass/script/funcall.rb +0 -50
- data/vendor/gems/gems/haml-2.2.13/lib/sass/script/functions.rb +0 -199
- data/vendor/gems/gems/haml-2.2.13/lib/sass/script/lexer.rb +0 -191
- data/vendor/gems/gems/haml-2.2.13/lib/sass/script/literal.rb +0 -177
- data/vendor/gems/gems/haml-2.2.13/lib/sass/script/node.rb +0 -14
- data/vendor/gems/gems/haml-2.2.13/lib/sass/script/number.rb +0 -381
- data/vendor/gems/gems/haml-2.2.13/lib/sass/script/operation.rb +0 -45
- data/vendor/gems/gems/haml-2.2.13/lib/sass/script/parser.rb +0 -222
- data/vendor/gems/gems/haml-2.2.13/lib/sass/script/string.rb +0 -12
- data/vendor/gems/gems/haml-2.2.13/lib/sass/script/unary_operation.rb +0 -34
- data/vendor/gems/gems/haml-2.2.13/lib/sass/script/variable.rb +0 -31
- data/vendor/gems/gems/haml-2.2.13/lib/sass/tree/comment_node.rb +0 -84
- data/vendor/gems/gems/haml-2.2.13/lib/sass/tree/debug_node.rb +0 -30
- data/vendor/gems/gems/haml-2.2.13/lib/sass/tree/directive_node.rb +0 -68
- data/vendor/gems/gems/haml-2.2.13/lib/sass/tree/for_node.rb +0 -48
- data/vendor/gems/gems/haml-2.2.13/lib/sass/tree/if_node.rb +0 -54
- data/vendor/gems/gems/haml-2.2.13/lib/sass/tree/import_node.rb +0 -65
- data/vendor/gems/gems/haml-2.2.13/lib/sass/tree/mixin_def_node.rb +0 -29
- data/vendor/gems/gems/haml-2.2.13/lib/sass/tree/mixin_node.rb +0 -48
- data/vendor/gems/gems/haml-2.2.13/lib/sass/tree/node.rb +0 -251
- data/vendor/gems/gems/haml-2.2.13/lib/sass/tree/prop_node.rb +0 -121
- data/vendor/gems/gems/haml-2.2.13/lib/sass/tree/rule_node.rb +0 -223
- data/vendor/gems/gems/haml-2.2.13/lib/sass/tree/variable_node.rb +0 -34
- data/vendor/gems/gems/haml-2.2.13/lib/sass/tree/while_node.rb +0 -31
- data/vendor/gems/gems/haml-2.2.13/rails/init.rb +0 -1
- data/vendor/gems/gems/haml-2.2.13/test/benchmark.rb +0 -99
- data/vendor/gems/gems/haml-2.2.13/test/haml/engine_test.rb +0 -1231
- data/vendor/gems/gems/haml-2.2.13/test/haml/helper_test.rb +0 -282
- data/vendor/gems/gems/haml-2.2.13/test/haml/html2haml_test.rb +0 -130
- data/vendor/gems/gems/haml-2.2.13/test/haml/markaby/standard.mab +0 -52
- data/vendor/gems/gems/haml-2.2.13/test/haml/mocks/article.rb +0 -6
- data/vendor/gems/gems/haml-2.2.13/test/haml/results/content_for_layout.xhtml +0 -12
- data/vendor/gems/gems/haml-2.2.13/test/haml/results/eval_suppressed.xhtml +0 -9
- data/vendor/gems/gems/haml-2.2.13/test/haml/results/filters.xhtml +0 -62
- data/vendor/gems/gems/haml-2.2.13/test/haml/results/helpers.xhtml +0 -93
- data/vendor/gems/gems/haml-2.2.13/test/haml/results/helpful.xhtml +0 -10
- data/vendor/gems/gems/haml-2.2.13/test/haml/results/just_stuff.xhtml +0 -68
- data/vendor/gems/gems/haml-2.2.13/test/haml/results/list.xhtml +0 -12
- data/vendor/gems/gems/haml-2.2.13/test/haml/results/nuke_inner_whitespace.xhtml +0 -40
- data/vendor/gems/gems/haml-2.2.13/test/haml/results/nuke_outer_whitespace.xhtml +0 -148
- data/vendor/gems/gems/haml-2.2.13/test/haml/results/original_engine.xhtml +0 -20
- data/vendor/gems/gems/haml-2.2.13/test/haml/results/partial_layout.xhtml +0 -5
- data/vendor/gems/gems/haml-2.2.13/test/haml/results/partials.xhtml +0 -21
- data/vendor/gems/gems/haml-2.2.13/test/haml/results/render_layout.xhtml +0 -3
- data/vendor/gems/gems/haml-2.2.13/test/haml/results/silent_script.xhtml +0 -74
- data/vendor/gems/gems/haml-2.2.13/test/haml/results/standard.xhtml +0 -162
- data/vendor/gems/gems/haml-2.2.13/test/haml/results/tag_parsing.xhtml +0 -23
- data/vendor/gems/gems/haml-2.2.13/test/haml/results/very_basic.xhtml +0 -5
- data/vendor/gems/gems/haml-2.2.13/test/haml/results/whitespace_handling.xhtml +0 -89
- data/vendor/gems/gems/haml-2.2.13/test/haml/rhtml/_av_partial_1.rhtml +0 -12
- data/vendor/gems/gems/haml-2.2.13/test/haml/rhtml/_av_partial_2.rhtml +0 -8
- data/vendor/gems/gems/haml-2.2.13/test/haml/rhtml/action_view.rhtml +0 -62
- data/vendor/gems/gems/haml-2.2.13/test/haml/rhtml/standard.rhtml +0 -54
- data/vendor/gems/gems/haml-2.2.13/test/haml/spec/README.md +0 -97
- data/vendor/gems/gems/haml-2.2.13/test/haml/spec/lua_haml_spec.lua +0 -30
- data/vendor/gems/gems/haml-2.2.13/test/haml/spec/ruby_haml_test.rb +0 -19
- data/vendor/gems/gems/haml-2.2.13/test/haml/spec/tests.json +0 -488
- data/vendor/gems/gems/haml-2.2.13/test/haml/template_test.rb +0 -296
- data/vendor/gems/gems/haml-2.2.13/test/haml/templates/_av_partial_1.haml +0 -9
- data/vendor/gems/gems/haml-2.2.13/test/haml/templates/_av_partial_1_ugly.haml +0 -9
- data/vendor/gems/gems/haml-2.2.13/test/haml/templates/_av_partial_2.haml +0 -5
- data/vendor/gems/gems/haml-2.2.13/test/haml/templates/_av_partial_2_ugly.haml +0 -5
- data/vendor/gems/gems/haml-2.2.13/test/haml/templates/_layout.erb +0 -3
- data/vendor/gems/gems/haml-2.2.13/test/haml/templates/_layout_for_partial.haml +0 -3
- data/vendor/gems/gems/haml-2.2.13/test/haml/templates/_partial.haml +0 -8
- data/vendor/gems/gems/haml-2.2.13/test/haml/templates/_text_area.haml +0 -3
- data/vendor/gems/gems/haml-2.2.13/test/haml/templates/action_view.haml +0 -47
- data/vendor/gems/gems/haml-2.2.13/test/haml/templates/action_view_ugly.haml +0 -47
- data/vendor/gems/gems/haml-2.2.13/test/haml/templates/breakage.haml +0 -8
- data/vendor/gems/gems/haml-2.2.13/test/haml/templates/content_for_layout.haml +0 -8
- data/vendor/gems/gems/haml-2.2.13/test/haml/templates/eval_suppressed.haml +0 -11
- data/vendor/gems/gems/haml-2.2.13/test/haml/templates/filters.haml +0 -66
- data/vendor/gems/gems/haml-2.2.13/test/haml/templates/helpers.haml +0 -95
- data/vendor/gems/gems/haml-2.2.13/test/haml/templates/helpful.haml +0 -11
- data/vendor/gems/gems/haml-2.2.13/test/haml/templates/just_stuff.haml +0 -83
- data/vendor/gems/gems/haml-2.2.13/test/haml/templates/list.haml +0 -12
- data/vendor/gems/gems/haml-2.2.13/test/haml/templates/nuke_inner_whitespace.haml +0 -32
- data/vendor/gems/gems/haml-2.2.13/test/haml/templates/nuke_outer_whitespace.haml +0 -144
- data/vendor/gems/gems/haml-2.2.13/test/haml/templates/original_engine.haml +0 -17
- data/vendor/gems/gems/haml-2.2.13/test/haml/templates/partial_layout.haml +0 -3
- data/vendor/gems/gems/haml-2.2.13/test/haml/templates/partialize.haml +0 -1
- data/vendor/gems/gems/haml-2.2.13/test/haml/templates/partials.haml +0 -12
- data/vendor/gems/gems/haml-2.2.13/test/haml/templates/render_layout.haml +0 -2
- data/vendor/gems/gems/haml-2.2.13/test/haml/templates/silent_script.haml +0 -40
- data/vendor/gems/gems/haml-2.2.13/test/haml/templates/standard.haml +0 -42
- data/vendor/gems/gems/haml-2.2.13/test/haml/templates/standard_ugly.haml +0 -42
- data/vendor/gems/gems/haml-2.2.13/test/haml/templates/tag_parsing.haml +0 -21
- data/vendor/gems/gems/haml-2.2.13/test/haml/templates/very_basic.haml +0 -4
- data/vendor/gems/gems/haml-2.2.13/test/haml/templates/whitespace_handling.haml +0 -87
- data/vendor/gems/gems/haml-2.2.13/test/haml/util_test.rb +0 -97
- data/vendor/gems/gems/haml-2.2.13/test/linked_rails.rb +0 -21
- data/vendor/gems/gems/haml-2.2.13/test/sass/css2sass_test.rb +0 -251
- data/vendor/gems/gems/haml-2.2.13/test/sass/engine_test.rb +0 -914
- data/vendor/gems/gems/haml-2.2.13/test/sass/functions_test.rb +0 -126
- data/vendor/gems/gems/haml-2.2.13/test/sass/more_results/more1.css +0 -9
- data/vendor/gems/gems/haml-2.2.13/test/sass/more_results/more1_with_line_comments.css +0 -26
- data/vendor/gems/gems/haml-2.2.13/test/sass/more_results/more_import.css +0 -29
- data/vendor/gems/gems/haml-2.2.13/test/sass/more_templates/_more_partial.sass +0 -2
- data/vendor/gems/gems/haml-2.2.13/test/sass/more_templates/more1.sass +0 -23
- data/vendor/gems/gems/haml-2.2.13/test/sass/more_templates/more_import.sass +0 -11
- data/vendor/gems/gems/haml-2.2.13/test/sass/plugin_test.rb +0 -222
- data/vendor/gems/gems/haml-2.2.13/test/sass/results/alt.css +0 -4
- data/vendor/gems/gems/haml-2.2.13/test/sass/results/basic.css +0 -9
- data/vendor/gems/gems/haml-2.2.13/test/sass/results/compact.css +0 -5
- data/vendor/gems/gems/haml-2.2.13/test/sass/results/complex.css +0 -87
- data/vendor/gems/gems/haml-2.2.13/test/sass/results/compressed.css +0 -1
- data/vendor/gems/gems/haml-2.2.13/test/sass/results/expanded.css +0 -19
- data/vendor/gems/gems/haml-2.2.13/test/sass/results/import.css +0 -29
- data/vendor/gems/gems/haml-2.2.13/test/sass/results/line_numbers.css +0 -49
- data/vendor/gems/gems/haml-2.2.13/test/sass/results/mixins.css +0 -95
- data/vendor/gems/gems/haml-2.2.13/test/sass/results/multiline.css +0 -24
- data/vendor/gems/gems/haml-2.2.13/test/sass/results/nested.css +0 -22
- data/vendor/gems/gems/haml-2.2.13/test/sass/results/parent_ref.css +0 -13
- data/vendor/gems/gems/haml-2.2.13/test/sass/results/script.css +0 -16
- data/vendor/gems/gems/haml-2.2.13/test/sass/results/subdir/nested_subdir/nested_subdir.css +0 -1
- data/vendor/gems/gems/haml-2.2.13/test/sass/results/subdir/subdir.css +0 -3
- data/vendor/gems/gems/haml-2.2.13/test/sass/results/units.css +0 -11
- data/vendor/gems/gems/haml-2.2.13/test/sass/script_test.rb +0 -261
- data/vendor/gems/gems/haml-2.2.13/test/sass/templates/_partial.sass +0 -2
- data/vendor/gems/gems/haml-2.2.13/test/sass/templates/alt.sass +0 -16
- data/vendor/gems/gems/haml-2.2.13/test/sass/templates/basic.sass +0 -23
- data/vendor/gems/gems/haml-2.2.13/test/sass/templates/bork.sass +0 -2
- data/vendor/gems/gems/haml-2.2.13/test/sass/templates/bork2.sass +0 -2
- data/vendor/gems/gems/haml-2.2.13/test/sass/templates/compact.sass +0 -17
- data/vendor/gems/gems/haml-2.2.13/test/sass/templates/complex.sass +0 -307
- data/vendor/gems/gems/haml-2.2.13/test/sass/templates/compressed.sass +0 -15
- data/vendor/gems/gems/haml-2.2.13/test/sass/templates/expanded.sass +0 -17
- data/vendor/gems/gems/haml-2.2.13/test/sass/templates/import.sass +0 -11
- data/vendor/gems/gems/haml-2.2.13/test/sass/templates/importee.sass +0 -19
- data/vendor/gems/gems/haml-2.2.13/test/sass/templates/line_numbers.sass +0 -13
- data/vendor/gems/gems/haml-2.2.13/test/sass/templates/mixins.sass +0 -76
- data/vendor/gems/gems/haml-2.2.13/test/sass/templates/multiline.sass +0 -20
- data/vendor/gems/gems/haml-2.2.13/test/sass/templates/nested.sass +0 -25
- data/vendor/gems/gems/haml-2.2.13/test/sass/templates/parent_ref.sass +0 -25
- data/vendor/gems/gems/haml-2.2.13/test/sass/templates/script.sass +0 -101
- data/vendor/gems/gems/haml-2.2.13/test/sass/templates/subdir/nested_subdir/_nested_partial.sass +0 -2
- data/vendor/gems/gems/haml-2.2.13/test/sass/templates/subdir/nested_subdir/nested_subdir.sass +0 -3
- data/vendor/gems/gems/haml-2.2.13/test/sass/templates/subdir/subdir.sass +0 -6
- data/vendor/gems/gems/haml-2.2.13/test/sass/templates/units.sass +0 -11
- data/vendor/gems/gems/haml-2.2.13/test/test_helper.rb +0 -38
- data/vendor/gems/gems/highline-1.5.1/CHANGELOG +0 -222
- data/vendor/gems/gems/highline-1.5.1/INSTALL +0 -35
- data/vendor/gems/gems/highline-1.5.1/LICENSE +0 -7
- data/vendor/gems/gems/highline-1.5.1/README +0 -63
- data/vendor/gems/gems/highline-1.5.1/Rakefile +0 -82
- data/vendor/gems/gems/highline-1.5.1/TODO +0 -6
- data/vendor/gems/gems/highline-1.5.1/examples/ansi_colors.rb +0 -38
- data/vendor/gems/gems/highline-1.5.1/examples/asking_for_arrays.rb +0 -18
- data/vendor/gems/gems/highline-1.5.1/examples/basic_usage.rb +0 -75
- data/vendor/gems/gems/highline-1.5.1/examples/color_scheme.rb +0 -32
- data/vendor/gems/gems/highline-1.5.1/examples/limit.rb +0 -12
- data/vendor/gems/gems/highline-1.5.1/examples/menus.rb +0 -65
- data/vendor/gems/gems/highline-1.5.1/examples/overwrite.rb +0 -19
- data/vendor/gems/gems/highline-1.5.1/examples/page_and_wrap.rb +0 -322
- data/vendor/gems/gems/highline-1.5.1/examples/password.rb +0 -7
- data/vendor/gems/gems/highline-1.5.1/examples/trapping_eof.rb +0 -22
- data/vendor/gems/gems/highline-1.5.1/examples/using_readline.rb +0 -17
- data/vendor/gems/gems/highline-1.5.1/lib/highline.rb +0 -758
- data/vendor/gems/gems/highline-1.5.1/lib/highline/color_scheme.rb +0 -120
- data/vendor/gems/gems/highline-1.5.1/lib/highline/compatibility.rb +0 -17
- data/vendor/gems/gems/highline-1.5.1/lib/highline/import.rb +0 -43
- data/vendor/gems/gems/highline-1.5.1/lib/highline/menu.rb +0 -395
- data/vendor/gems/gems/highline-1.5.1/lib/highline/question.rb +0 -463
- data/vendor/gems/gems/highline-1.5.1/lib/highline/system_extensions.rb +0 -193
- data/vendor/gems/gems/highline-1.5.1/setup.rb +0 -1360
- data/vendor/gems/gems/highline-1.5.1/test/tc_color_scheme.rb +0 -56
- data/vendor/gems/gems/highline-1.5.1/test/tc_highline.rb +0 -823
- data/vendor/gems/gems/highline-1.5.1/test/tc_import.rb +0 -54
- data/vendor/gems/gems/highline-1.5.1/test/tc_menu.rb +0 -429
- data/vendor/gems/gems/highline-1.5.1/test/ts_all.rb +0 -15
- data/vendor/gems/gems/json-1.2.0/.require_paths +0 -4
- data/vendor/gems/gems/json-1.2.0/CHANGES +0 -136
- data/vendor/gems/gems/json-1.2.0/COPYING +0 -58
- data/vendor/gems/gems/json-1.2.0/GPL +0 -340
- data/vendor/gems/gems/json-1.2.0/README +0 -360
- data/vendor/gems/gems/json-1.2.0/Rakefile +0 -287
- data/vendor/gems/gems/json-1.2.0/TODO +0 -1
- data/vendor/gems/gems/json-1.2.0/VERSION +0 -1
- data/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkComparison.log +0 -52
- data/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_fast-autocorrelation.dat +0 -1000
- data/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_fast.dat +0 -1001
- data/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_pretty-autocorrelation.dat +0 -900
- data/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_pretty.dat +0 -901
- data/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_safe-autocorrelation.dat +0 -1000
- data/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_safe.dat +0 -1001
- data/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt.log +0 -261
- data/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_fast-autocorrelation.dat +0 -1000
- data/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_fast.dat +0 -1001
- data/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_pretty-autocorrelation.dat +0 -1000
- data/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_pretty.dat +0 -1001
- data/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_safe-autocorrelation.dat +0 -1000
- data/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_safe.dat +0 -1001
- data/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure.log +0 -262
- data/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkRails#generator-autocorrelation.dat +0 -1000
- data/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkRails#generator.dat +0 -1001
- data/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkRails.log +0 -82
- data/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkComparison.log +0 -34
- data/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkExt#parser-autocorrelation.dat +0 -900
- data/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkExt#parser.dat +0 -901
- data/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkExt.log +0 -81
- data/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkPure#parser-autocorrelation.dat +0 -1000
- data/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkPure#parser.dat +0 -1001
- data/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkPure.log +0 -82
- data/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkRails#parser-autocorrelation.dat +0 -1000
- data/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkRails#parser.dat +0 -1001
- data/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkRails.log +0 -82
- data/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkYAML#parser-autocorrelation.dat +0 -1000
- data/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkYAML#parser.dat +0 -1001
- data/vendor/gems/gems/json-1.2.0/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkYAML.log +0 -82
- data/vendor/gems/gems/json-1.2.0/benchmarks/generator_benchmark.rb +0 -165
- data/vendor/gems/gems/json-1.2.0/benchmarks/parser_benchmark.rb +0 -197
- data/vendor/gems/gems/json-1.2.0/bin/edit_json.rb +0 -9
- data/vendor/gems/gems/json-1.2.0/bin/prettify_json.rb +0 -75
- data/vendor/gems/gems/json-1.2.0/data/example.json +0 -1
- data/vendor/gems/gems/json-1.2.0/data/index.html +0 -38
- data/vendor/gems/gems/json-1.2.0/data/prototype.js +0 -4184
- data/vendor/gems/gems/json-1.2.0/ext/json/ext/generator.bundle +0 -0
- data/vendor/gems/gems/json-1.2.0/ext/json/ext/generator/Makefile +0 -157
- data/vendor/gems/gems/json-1.2.0/ext/json/ext/generator/extconf.rb +0 -11
- data/vendor/gems/gems/json-1.2.0/ext/json/ext/generator/generator.bundle +0 -0
- data/vendor/gems/gems/json-1.2.0/ext/json/ext/generator/generator.c +0 -935
- data/vendor/gems/gems/json-1.2.0/ext/json/ext/generator/generator.o +0 -0
- data/vendor/gems/gems/json-1.2.0/ext/json/ext/generator/mkmf.log +0 -21
- data/vendor/gems/gems/json-1.2.0/ext/json/ext/generator/unicode.c +0 -180
- data/vendor/gems/gems/json-1.2.0/ext/json/ext/generator/unicode.h +0 -53
- data/vendor/gems/gems/json-1.2.0/ext/json/ext/generator/unicode.o +0 -0
- data/vendor/gems/gems/json-1.2.0/ext/json/ext/parser.bundle +0 -0
- data/vendor/gems/gems/json-1.2.0/ext/json/ext/parser/Makefile +0 -157
- data/vendor/gems/gems/json-1.2.0/ext/json/ext/parser/extconf.rb +0 -11
- data/vendor/gems/gems/json-1.2.0/ext/json/ext/parser/mkmf.log +0 -20
- data/vendor/gems/gems/json-1.2.0/ext/json/ext/parser/parser.bundle +0 -0
- data/vendor/gems/gems/json-1.2.0/ext/json/ext/parser/parser.c +0 -1880
- data/vendor/gems/gems/json-1.2.0/ext/json/ext/parser/parser.o +0 -0
- data/vendor/gems/gems/json-1.2.0/ext/json/ext/parser/parser.rl +0 -737
- data/vendor/gems/gems/json-1.2.0/ext/json/ext/parser/unicode.c +0 -154
- data/vendor/gems/gems/json-1.2.0/ext/json/ext/parser/unicode.h +0 -58
- data/vendor/gems/gems/json-1.2.0/ext/json/ext/parser/unicode.o +0 -0
- data/vendor/gems/gems/json-1.2.0/install.rb +0 -26
- data/vendor/gems/gems/json-1.2.0/lib/json.rb +0 -10
- data/vendor/gems/gems/json-1.2.0/lib/json/Array.xpm +0 -21
- data/vendor/gems/gems/json-1.2.0/lib/json/FalseClass.xpm +0 -21
- data/vendor/gems/gems/json-1.2.0/lib/json/Hash.xpm +0 -21
- data/vendor/gems/gems/json-1.2.0/lib/json/Key.xpm +0 -73
- data/vendor/gems/gems/json-1.2.0/lib/json/NilClass.xpm +0 -21
- data/vendor/gems/gems/json-1.2.0/lib/json/Numeric.xpm +0 -28
- data/vendor/gems/gems/json-1.2.0/lib/json/String.xpm +0 -96
- data/vendor/gems/gems/json-1.2.0/lib/json/TrueClass.xpm +0 -21
- data/vendor/gems/gems/json-1.2.0/lib/json/add/core.rb +0 -135
- data/vendor/gems/gems/json-1.2.0/lib/json/add/rails.rb +0 -58
- data/vendor/gems/gems/json-1.2.0/lib/json/common.rb +0 -371
- data/vendor/gems/gems/json-1.2.0/lib/json/editor.rb +0 -1371
- data/vendor/gems/gems/json-1.2.0/lib/json/ext.rb +0 -15
- data/vendor/gems/gems/json-1.2.0/lib/json/json.xpm +0 -1499
- data/vendor/gems/gems/json-1.2.0/lib/json/pure.rb +0 -77
- data/vendor/gems/gems/json-1.2.0/lib/json/pure/generator.rb +0 -443
- data/vendor/gems/gems/json-1.2.0/lib/json/pure/parser.rb +0 -303
- data/vendor/gems/gems/json-1.2.0/lib/json/version.rb +0 -8
- data/vendor/gems/gems/json-1.2.0/tests/fixtures/fail1.json +0 -1
- data/vendor/gems/gems/json-1.2.0/tests/fixtures/fail10.json +0 -1
- data/vendor/gems/gems/json-1.2.0/tests/fixtures/fail11.json +0 -1
- data/vendor/gems/gems/json-1.2.0/tests/fixtures/fail12.json +0 -1
- data/vendor/gems/gems/json-1.2.0/tests/fixtures/fail13.json +0 -1
- data/vendor/gems/gems/json-1.2.0/tests/fixtures/fail14.json +0 -1
- data/vendor/gems/gems/json-1.2.0/tests/fixtures/fail18.json +0 -1
- data/vendor/gems/gems/json-1.2.0/tests/fixtures/fail19.json +0 -1
- data/vendor/gems/gems/json-1.2.0/tests/fixtures/fail2.json +0 -1
- data/vendor/gems/gems/json-1.2.0/tests/fixtures/fail20.json +0 -1
- data/vendor/gems/gems/json-1.2.0/tests/fixtures/fail21.json +0 -1
- data/vendor/gems/gems/json-1.2.0/tests/fixtures/fail22.json +0 -1
- data/vendor/gems/gems/json-1.2.0/tests/fixtures/fail23.json +0 -1
- data/vendor/gems/gems/json-1.2.0/tests/fixtures/fail24.json +0 -1
- data/vendor/gems/gems/json-1.2.0/tests/fixtures/fail25.json +0 -1
- data/vendor/gems/gems/json-1.2.0/tests/fixtures/fail27.json +0 -2
- data/vendor/gems/gems/json-1.2.0/tests/fixtures/fail28.json +0 -2
- data/vendor/gems/gems/json-1.2.0/tests/fixtures/fail3.json +0 -1
- data/vendor/gems/gems/json-1.2.0/tests/fixtures/fail4.json +0 -1
- data/vendor/gems/gems/json-1.2.0/tests/fixtures/fail5.json +0 -1
- data/vendor/gems/gems/json-1.2.0/tests/fixtures/fail6.json +0 -1
- data/vendor/gems/gems/json-1.2.0/tests/fixtures/fail7.json +0 -1
- data/vendor/gems/gems/json-1.2.0/tests/fixtures/fail8.json +0 -1
- data/vendor/gems/gems/json-1.2.0/tests/fixtures/fail9.json +0 -1
- data/vendor/gems/gems/json-1.2.0/tests/fixtures/pass1.json +0 -56
- data/vendor/gems/gems/json-1.2.0/tests/fixtures/pass15.json +0 -1
- data/vendor/gems/gems/json-1.2.0/tests/fixtures/pass16.json +0 -1
- data/vendor/gems/gems/json-1.2.0/tests/fixtures/pass17.json +0 -1
- data/vendor/gems/gems/json-1.2.0/tests/fixtures/pass2.json +0 -1
- data/vendor/gems/gems/json-1.2.0/tests/fixtures/pass26.json +0 -1
- data/vendor/gems/gems/json-1.2.0/tests/fixtures/pass3.json +0 -6
- data/vendor/gems/gems/json-1.2.0/tests/test_json.rb +0 -320
- data/vendor/gems/gems/json-1.2.0/tests/test_json_addition.rb +0 -164
- data/vendor/gems/gems/json-1.2.0/tests/test_json_encoding.rb +0 -67
- data/vendor/gems/gems/json-1.2.0/tests/test_json_fixtures.rb +0 -34
- data/vendor/gems/gems/json-1.2.0/tests/test_json_generate.rb +0 -120
- data/vendor/gems/gems/json-1.2.0/tests/test_json_rails.rb +0 -146
- data/vendor/gems/gems/json-1.2.0/tests/test_json_unicode.rb +0 -62
- data/vendor/gems/gems/json-1.2.0/tools/fuzz.rb +0 -139
- data/vendor/gems/gems/json-1.2.0/tools/server.rb +0 -61
- data/vendor/gems/gems/launchy-0.3.3/HISTORY +0 -57
- data/vendor/gems/gems/launchy-0.3.3/LICENSE +0 -31
- data/vendor/gems/gems/launchy-0.3.3/README +0 -49
- data/vendor/gems/gems/launchy-0.3.3/Rakefile +0 -62
- data/vendor/gems/gems/launchy-0.3.3/bin/launchy +0 -12
- data/vendor/gems/gems/launchy-0.3.3/gemspec.rb +0 -41
- data/vendor/gems/gems/launchy-0.3.3/lib/launchy.rb +0 -53
- data/vendor/gems/gems/launchy-0.3.3/lib/launchy/application.rb +0 -174
- data/vendor/gems/gems/launchy-0.3.3/lib/launchy/browser.rb +0 -98
- data/vendor/gems/gems/launchy-0.3.3/lib/launchy/command_line.rb +0 -48
- data/vendor/gems/gems/launchy-0.3.3/lib/launchy/paths.rb +0 -53
- data/vendor/gems/gems/launchy-0.3.3/lib/launchy/version.rb +0 -17
- data/vendor/gems/gems/launchy-0.3.3/spec/application_spec.rb +0 -58
- data/vendor/gems/gems/launchy-0.3.3/spec/browser_spec.rb +0 -50
- data/vendor/gems/gems/launchy-0.3.3/spec/launchy_spec.rb +0 -18
- data/vendor/gems/gems/launchy-0.3.3/spec/paths_spec.rb +0 -15
- data/vendor/gems/gems/launchy-0.3.3/spec/spec_helper.rb +0 -5
- data/vendor/gems/gems/launchy-0.3.3/spec/version_spec.rb +0 -11
- data/vendor/gems/gems/launchy-0.3.3/tasks/announce.rake +0 -39
- data/vendor/gems/gems/launchy-0.3.3/tasks/config.rb +0 -107
- data/vendor/gems/gems/launchy-0.3.3/tasks/distribution.rake +0 -46
- data/vendor/gems/gems/launchy-0.3.3/tasks/documentation.rake +0 -32
- data/vendor/gems/gems/launchy-0.3.3/tasks/rspec.rake +0 -29
- data/vendor/gems/gems/launchy-0.3.3/tasks/rubyforge.rake +0 -52
- data/vendor/gems/gems/launchy-0.3.3/tasks/utils.rb +0 -80
- data/vendor/gems/gems/polyglot-0.2.9/History.txt +0 -57
- data/vendor/gems/gems/polyglot-0.2.9/License.txt +0 -20
- data/vendor/gems/gems/polyglot-0.2.9/Manifest.txt +0 -7
- data/vendor/gems/gems/polyglot-0.2.9/README.txt +0 -87
- data/vendor/gems/gems/polyglot-0.2.9/Rakefile +0 -4
- data/vendor/gems/gems/polyglot-0.2.9/lib/polyglot.rb +0 -81
- data/vendor/gems/gems/polyglot-0.2.9/lib/polyglot/version.rb +0 -9
- data/vendor/gems/gems/polyglot-0.2.9/test/test_helper.rb +0 -2
- data/vendor/gems/gems/polyglot-0.2.9/test/test_polyglot.rb +0 -44
- data/vendor/gems/gems/rack-1.0.1/COPYING +0 -18
- data/vendor/gems/gems/rack-1.0.1/KNOWN-ISSUES +0 -18
- data/vendor/gems/gems/rack-1.0.1/RDOX +0 -428
- data/vendor/gems/gems/rack-1.0.1/README +0 -364
- data/vendor/gems/gems/rack-1.0.1/Rakefile +0 -164
- data/vendor/gems/gems/rack-1.0.1/SPEC +0 -164
- data/vendor/gems/gems/rack-1.0.1/bin/rackup +0 -176
- data/vendor/gems/gems/rack-1.0.1/contrib/rack_logo.svg +0 -111
- data/vendor/gems/gems/rack-1.0.1/example/lobster.ru +0 -4
- data/vendor/gems/gems/rack-1.0.1/example/protectedlobster.rb +0 -14
- data/vendor/gems/gems/rack-1.0.1/example/protectedlobster.ru +0 -8
- data/vendor/gems/gems/rack-1.0.1/lib/rack.rb +0 -90
- data/vendor/gems/gems/rack-1.0.1/lib/rack/adapter/camping.rb +0 -22
- data/vendor/gems/gems/rack-1.0.1/lib/rack/auth/abstract/handler.rb +0 -37
- data/vendor/gems/gems/rack-1.0.1/lib/rack/auth/abstract/request.rb +0 -37
- data/vendor/gems/gems/rack-1.0.1/lib/rack/auth/basic.rb +0 -58
- data/vendor/gems/gems/rack-1.0.1/lib/rack/auth/digest/md5.rb +0 -124
- data/vendor/gems/gems/rack-1.0.1/lib/rack/auth/digest/nonce.rb +0 -51
- data/vendor/gems/gems/rack-1.0.1/lib/rack/auth/digest/params.rb +0 -55
- data/vendor/gems/gems/rack-1.0.1/lib/rack/auth/digest/request.rb +0 -40
- data/vendor/gems/gems/rack-1.0.1/lib/rack/auth/openid.rb +0 -480
- data/vendor/gems/gems/rack-1.0.1/lib/rack/builder.rb +0 -63
- data/vendor/gems/gems/rack-1.0.1/lib/rack/cascade.rb +0 -36
- data/vendor/gems/gems/rack-1.0.1/lib/rack/chunked.rb +0 -49
- data/vendor/gems/gems/rack-1.0.1/lib/rack/commonlogger.rb +0 -61
- data/vendor/gems/gems/rack-1.0.1/lib/rack/conditionalget.rb +0 -47
- data/vendor/gems/gems/rack-1.0.1/lib/rack/content_length.rb +0 -29
- data/vendor/gems/gems/rack-1.0.1/lib/rack/content_type.rb +0 -23
- data/vendor/gems/gems/rack-1.0.1/lib/rack/deflater.rb +0 -96
- data/vendor/gems/gems/rack-1.0.1/lib/rack/directory.rb +0 -153
- data/vendor/gems/gems/rack-1.0.1/lib/rack/file.rb +0 -88
- data/vendor/gems/gems/rack-1.0.1/lib/rack/handler.rb +0 -69
- data/vendor/gems/gems/rack-1.0.1/lib/rack/handler/cgi.rb +0 -61
- data/vendor/gems/gems/rack-1.0.1/lib/rack/handler/evented_mongrel.rb +0 -8
- data/vendor/gems/gems/rack-1.0.1/lib/rack/handler/fastcgi.rb +0 -90
- data/vendor/gems/gems/rack-1.0.1/lib/rack/handler/lsws.rb +0 -60
- data/vendor/gems/gems/rack-1.0.1/lib/rack/handler/mongrel.rb +0 -87
- data/vendor/gems/gems/rack-1.0.1/lib/rack/handler/scgi.rb +0 -62
- data/vendor/gems/gems/rack-1.0.1/lib/rack/handler/swiftiplied_mongrel.rb +0 -8
- data/vendor/gems/gems/rack-1.0.1/lib/rack/handler/thin.rb +0 -18
- data/vendor/gems/gems/rack-1.0.1/lib/rack/handler/webrick.rb +0 -71
- data/vendor/gems/gems/rack-1.0.1/lib/rack/head.rb +0 -19
- data/vendor/gems/gems/rack-1.0.1/lib/rack/lint.rb +0 -546
- data/vendor/gems/gems/rack-1.0.1/lib/rack/lobster.rb +0 -65
- data/vendor/gems/gems/rack-1.0.1/lib/rack/lock.rb +0 -16
- data/vendor/gems/gems/rack-1.0.1/lib/rack/methodoverride.rb +0 -27
- data/vendor/gems/gems/rack-1.0.1/lib/rack/mime.rb +0 -204
- data/vendor/gems/gems/rack-1.0.1/lib/rack/mock.rb +0 -163
- data/vendor/gems/gems/rack-1.0.1/lib/rack/recursive.rb +0 -57
- data/vendor/gems/gems/rack-1.0.1/lib/rack/reloader.rb +0 -106
- data/vendor/gems/gems/rack-1.0.1/lib/rack/request.rb +0 -246
- data/vendor/gems/gems/rack-1.0.1/lib/rack/response.rb +0 -183
- data/vendor/gems/gems/rack-1.0.1/lib/rack/rewindable_input.rb +0 -100
- data/vendor/gems/gems/rack-1.0.1/lib/rack/session/abstract/id.rb +0 -142
- data/vendor/gems/gems/rack-1.0.1/lib/rack/session/cookie.rb +0 -91
- data/vendor/gems/gems/rack-1.0.1/lib/rack/session/memcache.rb +0 -109
- data/vendor/gems/gems/rack-1.0.1/lib/rack/session/pool.rb +0 -100
- data/vendor/gems/gems/rack-1.0.1/lib/rack/showexceptions.rb +0 -349
- data/vendor/gems/gems/rack-1.0.1/lib/rack/showstatus.rb +0 -106
- data/vendor/gems/gems/rack-1.0.1/lib/rack/static.rb +0 -38
- data/vendor/gems/gems/rack-1.0.1/lib/rack/urlmap.rb +0 -55
- data/vendor/gems/gems/rack-1.0.1/lib/rack/utils.rb +0 -401
- data/vendor/gems/gems/rack-1.0.1/rack.gemspec +0 -54
- data/vendor/gems/gems/rack-1.0.1/test/cgi/lighttpd.conf +0 -20
- data/vendor/gems/gems/rack-1.0.1/test/cgi/test +0 -9
- data/vendor/gems/gems/rack-1.0.1/test/cgi/test.fcgi +0 -8
- data/vendor/gems/gems/rack-1.0.1/test/cgi/test.ru +0 -7
- data/vendor/gems/gems/rack-1.0.1/test/multipart/binary +0 -0
- data/vendor/gems/gems/rack-1.0.1/test/multipart/empty +0 -10
- data/vendor/gems/gems/rack-1.0.1/test/multipart/ie +0 -6
- data/vendor/gems/gems/rack-1.0.1/test/multipart/nested +0 -10
- data/vendor/gems/gems/rack-1.0.1/test/multipart/none +0 -9
- data/vendor/gems/gems/rack-1.0.1/test/multipart/semicolon +0 -6
- data/vendor/gems/gems/rack-1.0.1/test/multipart/text +0 -10
- data/vendor/gems/gems/rack-1.0.1/test/spec_rack_auth_basic.rb +0 -73
- data/vendor/gems/gems/rack-1.0.1/test/spec_rack_auth_digest.rb +0 -226
- data/vendor/gems/gems/rack-1.0.1/test/spec_rack_auth_openid.rb +0 -84
- data/vendor/gems/gems/rack-1.0.1/test/spec_rack_builder.rb +0 -84
- data/vendor/gems/gems/rack-1.0.1/test/spec_rack_camping.rb +0 -51
- data/vendor/gems/gems/rack-1.0.1/test/spec_rack_cascade.rb +0 -50
- data/vendor/gems/gems/rack-1.0.1/test/spec_rack_cgi.rb +0 -89
- data/vendor/gems/gems/rack-1.0.1/test/spec_rack_chunked.rb +0 -62
- data/vendor/gems/gems/rack-1.0.1/test/spec_rack_commonlogger.rb +0 -32
- data/vendor/gems/gems/rack-1.0.1/test/spec_rack_conditionalget.rb +0 -41
- data/vendor/gems/gems/rack-1.0.1/test/spec_rack_content_length.rb +0 -43
- data/vendor/gems/gems/rack-1.0.1/test/spec_rack_content_type.rb +0 -30
- data/vendor/gems/gems/rack-1.0.1/test/spec_rack_deflater.rb +0 -127
- data/vendor/gems/gems/rack-1.0.1/test/spec_rack_directory.rb +0 -61
- data/vendor/gems/gems/rack-1.0.1/test/spec_rack_fastcgi.rb +0 -89
- data/vendor/gems/gems/rack-1.0.1/test/spec_rack_file.rb +0 -75
- data/vendor/gems/gems/rack-1.0.1/test/spec_rack_handler.rb +0 -43
- data/vendor/gems/gems/rack-1.0.1/test/spec_rack_head.rb +0 -30
- data/vendor/gems/gems/rack-1.0.1/test/spec_rack_lint.rb +0 -521
- data/vendor/gems/gems/rack-1.0.1/test/spec_rack_lobster.rb +0 -45
- data/vendor/gems/gems/rack-1.0.1/test/spec_rack_lock.rb +0 -38
- data/vendor/gems/gems/rack-1.0.1/test/spec_rack_methodoverride.rb +0 -60
- data/vendor/gems/gems/rack-1.0.1/test/spec_rack_mock.rb +0 -157
- data/vendor/gems/gems/rack-1.0.1/test/spec_rack_mongrel.rb +0 -189
- data/vendor/gems/gems/rack-1.0.1/test/spec_rack_recursive.rb +0 -77
- data/vendor/gems/gems/rack-1.0.1/test/spec_rack_request.rb +0 -504
- data/vendor/gems/gems/rack-1.0.1/test/spec_rack_response.rb +0 -218
- data/vendor/gems/gems/rack-1.0.1/test/spec_rack_rewindable_input.rb +0 -118
- data/vendor/gems/gems/rack-1.0.1/test/spec_rack_session_cookie.rb +0 -82
- data/vendor/gems/gems/rack-1.0.1/test/spec_rack_session_memcache.rb +0 -240
- data/vendor/gems/gems/rack-1.0.1/test/spec_rack_session_pool.rb +0 -172
- data/vendor/gems/gems/rack-1.0.1/test/spec_rack_showexceptions.rb +0 -21
- data/vendor/gems/gems/rack-1.0.1/test/spec_rack_showstatus.rb +0 -72
- data/vendor/gems/gems/rack-1.0.1/test/spec_rack_static.rb +0 -37
- data/vendor/gems/gems/rack-1.0.1/test/spec_rack_thin.rb +0 -91
- data/vendor/gems/gems/rack-1.0.1/test/spec_rack_urlmap.rb +0 -185
- data/vendor/gems/gems/rack-1.0.1/test/spec_rack_utils.rb +0 -387
- data/vendor/gems/gems/rack-1.0.1/test/spec_rack_webrick.rb +0 -130
- data/vendor/gems/gems/rack-1.0.1/test/testrequest.rb +0 -57
- data/vendor/gems/gems/rack-1.0.1/test/unregistered_handler/rack/handler/unregistered.rb +0 -7
- data/vendor/gems/gems/rack-1.0.1/test/unregistered_handler/rack/handler/unregistered_long_one.rb +0 -7
- data/vendor/gems/gems/rack-test-0.5.2/.document +0 -4
- data/vendor/gems/gems/rack-test-0.5.2/.gitignore +0 -4
- data/vendor/gems/gems/rack-test-0.5.2/History.txt +0 -101
- data/vendor/gems/gems/rack-test-0.5.2/MIT-LICENSE.txt +0 -19
- data/vendor/gems/gems/rack-test-0.5.2/README.rdoc +0 -57
- data/vendor/gems/gems/rack-test-0.5.2/Rakefile +0 -39
- data/vendor/gems/gems/rack-test-0.5.2/Thorfile +0 -114
- data/vendor/gems/gems/rack-test-0.5.2/lib/rack/mock_session.rb +0 -61
- data/vendor/gems/gems/rack-test-0.5.2/lib/rack/test.rb +0 -276
- data/vendor/gems/gems/rack-test-0.5.2/lib/rack/test/cookie_jar.rb +0 -171
- data/vendor/gems/gems/rack-test-0.5.2/lib/rack/test/methods.rb +0 -80
- data/vendor/gems/gems/rack-test-0.5.2/lib/rack/test/mock_digest_request.rb +0 -29
- data/vendor/gems/gems/rack-test-0.5.2/lib/rack/test/uploaded_file.rb +0 -46
- data/vendor/gems/gems/rack-test-0.5.2/lib/rack/test/utils.rb +0 -101
- data/vendor/gems/gems/rack-test-0.5.2/rack-test.gemspec +0 -73
- data/vendor/gems/gems/rack-test-0.5.2/spec/fixtures/config.ru +0 -3
- data/vendor/gems/gems/rack-test-0.5.2/spec/fixtures/fake_app.rb +0 -115
- data/vendor/gems/gems/rack-test-0.5.2/spec/fixtures/foo.txt +0 -1
- data/vendor/gems/gems/rack-test-0.5.2/spec/rack/test/cookie_spec.rb +0 -190
- data/vendor/gems/gems/rack-test-0.5.2/spec/rack/test/digest_auth_spec.rb +0 -48
- data/vendor/gems/gems/rack-test-0.5.2/spec/rack/test/multipart_spec.rb +0 -87
- data/vendor/gems/gems/rack-test-0.5.2/spec/rack/test/utils_spec.rb +0 -97
- data/vendor/gems/gems/rack-test-0.5.2/spec/rack/test_spec.rb +0 -443
- data/vendor/gems/gems/rack-test-0.5.2/spec/spec.opts +0 -2
- data/vendor/gems/gems/rack-test-0.5.2/spec/spec_helper.rb +0 -52
- data/vendor/gems/gems/rake-0.8.7/CHANGES +0 -440
- data/vendor/gems/gems/rake-0.8.7/MIT-LICENSE +0 -21
- data/vendor/gems/gems/rake-0.8.7/README +0 -196
- data/vendor/gems/gems/rake-0.8.7/Rakefile +0 -430
- data/vendor/gems/gems/rake-0.8.7/TODO +0 -20
- data/vendor/gems/gems/rake-0.8.7/bin/rake +0 -31
- data/vendor/gems/gems/rake-0.8.7/doc/command_line_usage.rdoc +0 -102
- data/vendor/gems/gems/rake-0.8.7/doc/example/Rakefile1 +0 -38
- data/vendor/gems/gems/rake-0.8.7/doc/example/Rakefile2 +0 -35
- data/vendor/gems/gems/rake-0.8.7/doc/example/a.c +0 -6
- data/vendor/gems/gems/rake-0.8.7/doc/example/b.c +0 -6
- data/vendor/gems/gems/rake-0.8.7/doc/example/main.c +0 -11
- data/vendor/gems/gems/rake-0.8.7/doc/glossary.rdoc +0 -51
- data/vendor/gems/gems/rake-0.8.7/doc/jamis.rb +0 -591
- data/vendor/gems/gems/rake-0.8.7/doc/proto_rake.rdoc +0 -127
- data/vendor/gems/gems/rake-0.8.7/doc/rake.1.gz +0 -0
- data/vendor/gems/gems/rake-0.8.7/doc/rakefile.rdoc +0 -534
- data/vendor/gems/gems/rake-0.8.7/doc/rational.rdoc +0 -151
- data/vendor/gems/gems/rake-0.8.7/doc/release_notes/rake-0.4.14.rdoc +0 -23
- data/vendor/gems/gems/rake-0.8.7/doc/release_notes/rake-0.4.15.rdoc +0 -35
- data/vendor/gems/gems/rake-0.8.7/doc/release_notes/rake-0.5.0.rdoc +0 -53
- data/vendor/gems/gems/rake-0.8.7/doc/release_notes/rake-0.5.3.rdoc +0 -78
- data/vendor/gems/gems/rake-0.8.7/doc/release_notes/rake-0.5.4.rdoc +0 -46
- data/vendor/gems/gems/rake-0.8.7/doc/release_notes/rake-0.6.0.rdoc +0 -141
- data/vendor/gems/gems/rake-0.8.7/doc/release_notes/rake-0.7.0.rdoc +0 -119
- data/vendor/gems/gems/rake-0.8.7/doc/release_notes/rake-0.7.1.rdoc +0 -59
- data/vendor/gems/gems/rake-0.8.7/doc/release_notes/rake-0.7.2.rdoc +0 -121
- data/vendor/gems/gems/rake-0.8.7/doc/release_notes/rake-0.7.3.rdoc +0 -47
- data/vendor/gems/gems/rake-0.8.7/doc/release_notes/rake-0.8.0.rdoc +0 -114
- data/vendor/gems/gems/rake-0.8.7/doc/release_notes/rake-0.8.2.rdoc +0 -165
- data/vendor/gems/gems/rake-0.8.7/doc/release_notes/rake-0.8.3.rdoc +0 -112
- data/vendor/gems/gems/rake-0.8.7/doc/release_notes/rake-0.8.4.rdoc +0 -147
- data/vendor/gems/gems/rake-0.8.7/doc/release_notes/rake-0.8.5.rdoc +0 -53
- data/vendor/gems/gems/rake-0.8.7/doc/release_notes/rake-0.8.6.rdoc +0 -55
- data/vendor/gems/gems/rake-0.8.7/doc/release_notes/rake-0.8.7.rdoc +0 -55
- data/vendor/gems/gems/rake-0.8.7/install.rb +0 -88
- data/vendor/gems/gems/rake-0.8.7/lib/rake.rb +0 -2506
- data/vendor/gems/gems/rake-0.8.7/lib/rake/alt_system.rb +0 -108
- data/vendor/gems/gems/rake-0.8.7/lib/rake/classic_namespace.rb +0 -8
- data/vendor/gems/gems/rake-0.8.7/lib/rake/clean.rb +0 -33
- data/vendor/gems/gems/rake-0.8.7/lib/rake/contrib/compositepublisher.rb +0 -24
- data/vendor/gems/gems/rake-0.8.7/lib/rake/contrib/ftptools.rb +0 -153
- data/vendor/gems/gems/rake-0.8.7/lib/rake/contrib/publisher.rb +0 -75
- data/vendor/gems/gems/rake-0.8.7/lib/rake/contrib/rubyforgepublisher.rb +0 -18
- data/vendor/gems/gems/rake-0.8.7/lib/rake/contrib/sshpublisher.rb +0 -47
- data/vendor/gems/gems/rake-0.8.7/lib/rake/contrib/sys.rb +0 -209
- data/vendor/gems/gems/rake-0.8.7/lib/rake/gempackagetask.rb +0 -97
- data/vendor/gems/gems/rake-0.8.7/lib/rake/loaders/makefile.rb +0 -42
- data/vendor/gems/gems/rake-0.8.7/lib/rake/packagetask.rb +0 -184
- data/vendor/gems/gems/rake-0.8.7/lib/rake/rake_test_loader.rb +0 -5
- data/vendor/gems/gems/rake-0.8.7/lib/rake/rdoctask.rb +0 -209
- data/vendor/gems/gems/rake-0.8.7/lib/rake/ruby182_test_unit_fix.rb +0 -23
- data/vendor/gems/gems/rake-0.8.7/lib/rake/runtest.rb +0 -23
- data/vendor/gems/gems/rake-0.8.7/lib/rake/tasklib.rb +0 -23
- data/vendor/gems/gems/rake-0.8.7/lib/rake/testtask.rb +0 -161
- data/vendor/gems/gems/rake-0.8.7/lib/rake/win32.rb +0 -55
- data/vendor/gems/gems/rake-0.8.7/test/capture_stdout.rb +0 -26
- data/vendor/gems/gems/rake-0.8.7/test/check_expansion.rb +0 -5
- data/vendor/gems/gems/rake-0.8.7/test/check_no_expansion.rb +0 -5
- data/vendor/gems/gems/rake-0.8.7/test/contrib/test_sys.rb +0 -47
- data/vendor/gems/gems/rake-0.8.7/test/data/chains/Rakefile +0 -15
- data/vendor/gems/gems/rake-0.8.7/test/data/default/Rakefile +0 -19
- data/vendor/gems/gems/rake-0.8.7/test/data/dryrun/Rakefile +0 -22
- data/vendor/gems/gems/rake-0.8.7/test/data/file_creation_task/Rakefile +0 -33
- data/vendor/gems/gems/rake-0.8.7/test/data/imports/Rakefile +0 -19
- data/vendor/gems/gems/rake-0.8.7/test/data/imports/deps.mf +0 -1
- data/vendor/gems/gems/rake-0.8.7/test/data/multidesc/Rakefile +0 -17
- data/vendor/gems/gems/rake-0.8.7/test/data/namespace/Rakefile +0 -57
- data/vendor/gems/gems/rake-0.8.7/test/data/rakelib/test1.rb +0 -3
- data/vendor/gems/gems/rake-0.8.7/test/data/rbext/rakefile.rb +0 -3
- data/vendor/gems/gems/rake-0.8.7/test/data/sample.mf +0 -14
- data/vendor/gems/gems/rake-0.8.7/test/data/statusreturn/Rakefile +0 -8
- data/vendor/gems/gems/rake-0.8.7/test/data/unittest/Rakefile +0 -1
- data/vendor/gems/gems/rake-0.8.7/test/filecreation.rb +0 -32
- data/vendor/gems/gems/rake-0.8.7/test/functional.rb +0 -15
- data/vendor/gems/gems/rake-0.8.7/test/in_environment.rb +0 -30
- data/vendor/gems/gems/rake-0.8.7/test/rake_test_setup.rb +0 -24
- data/vendor/gems/gems/rake-0.8.7/test/reqfile.rb +0 -3
- data/vendor/gems/gems/rake-0.8.7/test/reqfile2.rb +0 -3
- data/vendor/gems/gems/rake-0.8.7/test/session_functional.rb +0 -339
- data/vendor/gems/gems/rake-0.8.7/test/shellcommand.rb +0 -3
- data/vendor/gems/gems/rake-0.8.7/test/test_application.rb +0 -675
- data/vendor/gems/gems/rake-0.8.7/test/test_clean.rb +0 -14
- data/vendor/gems/gems/rake-0.8.7/test/test_definitions.rb +0 -85
- data/vendor/gems/gems/rake-0.8.7/test/test_earlytime.rb +0 -35
- data/vendor/gems/gems/rake-0.8.7/test/test_extension.rb +0 -63
- data/vendor/gems/gems/rake-0.8.7/test/test_file_creation_task.rb +0 -62
- data/vendor/gems/gems/rake-0.8.7/test/test_file_task.rb +0 -143
- data/vendor/gems/gems/rake-0.8.7/test/test_filelist.rb +0 -623
- data/vendor/gems/gems/rake-0.8.7/test/test_fileutils.rb +0 -251
- data/vendor/gems/gems/rake-0.8.7/test/test_ftp.rb +0 -59
- data/vendor/gems/gems/rake-0.8.7/test/test_invocation_chain.rb +0 -81
- data/vendor/gems/gems/rake-0.8.7/test/test_makefile_loader.rb +0 -26
- data/vendor/gems/gems/rake-0.8.7/test/test_multitask.rb +0 -45
- data/vendor/gems/gems/rake-0.8.7/test/test_namespace.rb +0 -55
- data/vendor/gems/gems/rake-0.8.7/test/test_package_task.rb +0 -118
- data/vendor/gems/gems/rake-0.8.7/test/test_pathmap.rb +0 -210
- data/vendor/gems/gems/rake-0.8.7/test/test_pseudo_status.rb +0 -26
- data/vendor/gems/gems/rake-0.8.7/test/test_rake.rb +0 -41
- data/vendor/gems/gems/rake-0.8.7/test/test_rdoc_task.rb +0 -88
- data/vendor/gems/gems/rake-0.8.7/test/test_require.rb +0 -35
- data/vendor/gems/gems/rake-0.8.7/test/test_rules.rb +0 -349
- data/vendor/gems/gems/rake-0.8.7/test/test_task_arguments.rb +0 -89
- data/vendor/gems/gems/rake-0.8.7/test/test_task_manager.rb +0 -173
- data/vendor/gems/gems/rake-0.8.7/test/test_tasklib.rb +0 -12
- data/vendor/gems/gems/rake-0.8.7/test/test_tasks.rb +0 -374
- data/vendor/gems/gems/rake-0.8.7/test/test_test_task.rb +0 -77
- data/vendor/gems/gems/rake-0.8.7/test/test_top_level_functions.rb +0 -86
- data/vendor/gems/gems/rake-0.8.7/test/test_win32.rb +0 -72
- data/vendor/gems/gems/rdoc-2.4.3/.autotest +0 -14
- data/vendor/gems/gems/rdoc-2.4.3/.document +0 -4
- data/vendor/gems/gems/rdoc-2.4.3/History.txt +0 -260
- data/vendor/gems/gems/rdoc-2.4.3/Manifest.txt +0 -126
- data/vendor/gems/gems/rdoc-2.4.3/README.txt +0 -47
- data/vendor/gems/gems/rdoc-2.4.3/RI.txt +0 -58
- data/vendor/gems/gems/rdoc-2.4.3/Rakefile +0 -71
- data/vendor/gems/gems/rdoc-2.4.3/bin/ri +0 -5
- data/vendor/gems/gems/rdoc-2.4.3/lib/rdoc.rb +0 -398
- data/vendor/gems/gems/rdoc-2.4.3/test/binary.dat +0 -0
- data/vendor/gems/gems/rdoc-2.4.3/test/test.ja.rdoc +0 -8
- data/vendor/gems/gems/rdoc-2.4.3/test/test.ja.txt +0 -8
- data/vendor/gems/gems/rdoc-2.4.3/test/test_attribute_manager.rb +0 -76
- data/vendor/gems/gems/rdoc-2.4.3/test/test_rdoc_any_method.rb +0 -10
- data/vendor/gems/gems/rdoc-2.4.3/test/test_rdoc_code_object.rb +0 -80
- data/vendor/gems/gems/rdoc-2.4.3/test/test_rdoc_constant.rb +0 -15
- data/vendor/gems/gems/rdoc-2.4.3/test/test_rdoc_context.rb +0 -250
- data/vendor/gems/gems/rdoc-2.4.3/test/test_rdoc_include.rb +0 -17
- data/vendor/gems/gems/rdoc-2.4.3/test/test_rdoc_markup.rb +0 -626
- data/vendor/gems/gems/rdoc-2.4.3/test/test_rdoc_markup_attribute_manager.rb +0 -243
- data/vendor/gems/gems/rdoc-2.4.3/test/test_rdoc_markup_to_html.rb +0 -81
- data/vendor/gems/gems/rdoc-2.4.3/test/test_rdoc_markup_to_html_crossref.rb +0 -161
- data/vendor/gems/gems/rdoc-2.4.3/test/test_rdoc_normal_module.rb +0 -26
- data/vendor/gems/gems/rdoc-2.4.3/test/test_rdoc_parser.rb +0 -29
- data/vendor/gems/gems/rdoc-2.4.3/test/test_rdoc_parser_c.rb +0 -401
- data/vendor/gems/gems/rdoc-2.4.3/test/test_rdoc_parser_perl.rb +0 -74
- data/vendor/gems/gems/rdoc-2.4.3/test/test_rdoc_parser_ruby.rb +0 -1040
- data/vendor/gems/gems/rdoc-2.4.3/test/test_rdoc_require.rb +0 -25
- data/vendor/gems/gems/rdoc-2.4.3/test/test_rdoc_ri_attribute_formatter.rb +0 -44
- data/vendor/gems/gems/rdoc-2.4.3/test/test_rdoc_ri_default_display.rb +0 -302
- data/vendor/gems/gems/rdoc-2.4.3/test/test_rdoc_ri_driver.rb +0 -94
- data/vendor/gems/gems/rdoc-2.4.3/test/test_rdoc_ri_formatter.rb +0 -320
- data/vendor/gems/gems/rdoc-2.4.3/test/test_rdoc_ri_html_formatter.rb +0 -141
- data/vendor/gems/gems/rdoc-2.4.3/test/test_rdoc_ri_overstrike_formatter.rb +0 -71
- data/vendor/gems/gems/rdoc-2.4.3/test/test_rdoc_task.rb +0 -64
- data/vendor/gems/gems/rdoc-2.4.3/test/test_rdoc_top_level.rb +0 -85
- data/vendor/gems/gems/rdoc-2.4.3/test/xref_data.rb +0 -46
- data/vendor/gems/gems/rdoc-2.4.3/test/xref_test_case.rb +0 -48
- data/vendor/gems/gems/rspec-1.2.9/.document +0 -7
- data/vendor/gems/gems/rspec-1.2.9/History.rdoc +0 -1496
- data/vendor/gems/gems/rspec-1.2.9/License.txt +0 -22
- data/vendor/gems/gems/rspec-1.2.9/Manifest.txt +0 -377
- data/vendor/gems/gems/rspec-1.2.9/README.rdoc +0 -55
- data/vendor/gems/gems/rspec-1.2.9/Rakefile +0 -145
- data/vendor/gems/gems/rspec-1.2.9/Ruby1.9.rdoc +0 -31
- data/vendor/gems/gems/rspec-1.2.9/TODO.txt +0 -17
- data/vendor/gems/gems/rspec-1.2.9/Upgrade.rdoc +0 -199
- data/vendor/gems/gems/rspec-1.2.9/bin/autospec +0 -4
- data/vendor/gems/gems/rspec-1.2.9/bin/spec +0 -5
- data/vendor/gems/gems/rspec-1.2.9/cucumber.yml +0 -5
- data/vendor/gems/gems/rspec-1.2.9/examples/failing/README.txt +0 -11
- data/vendor/gems/gems/rspec-1.2.9/examples/failing/diffing_spec.rb +0 -36
- data/vendor/gems/gems/rspec-1.2.9/examples/failing/failing_implicit_docstrings_example.rb +0 -17
- data/vendor/gems/gems/rspec-1.2.9/examples/failing/failure_in_after.rb +0 -10
- data/vendor/gems/gems/rspec-1.2.9/examples/failing/failure_in_before.rb +0 -10
- data/vendor/gems/gems/rspec-1.2.9/examples/failing/mocking_example.rb +0 -38
- data/vendor/gems/gems/rspec-1.2.9/examples/failing/mocking_with_flexmock.rb +0 -26
- data/vendor/gems/gems/rspec-1.2.9/examples/failing/mocking_with_mocha.rb +0 -25
- data/vendor/gems/gems/rspec-1.2.9/examples/failing/mocking_with_rr.rb +0 -27
- data/vendor/gems/gems/rspec-1.2.9/examples/failing/partial_mock_example.rb +0 -18
- data/vendor/gems/gems/rspec-1.2.9/examples/failing/pending_example.rb +0 -7
- data/vendor/gems/gems/rspec-1.2.9/examples/failing/predicate_example.rb +0 -32
- data/vendor/gems/gems/rspec-1.2.9/examples/failing/raising_example.rb +0 -47
- data/vendor/gems/gems/rspec-1.2.9/examples/failing/syntax_error_example.rb +0 -7
- data/vendor/gems/gems/rspec-1.2.9/examples/failing/team_spec.rb +0 -41
- data/vendor/gems/gems/rspec-1.2.9/examples/failing/timeout_behaviour.rb +0 -5
- data/vendor/gems/gems/rspec-1.2.9/examples/passing/custom_formatter.rb +0 -11
- data/vendor/gems/gems/rspec-1.2.9/examples/passing/custom_matchers.rb +0 -54
- data/vendor/gems/gems/rspec-1.2.9/examples/passing/dynamic_spec.rb +0 -7
- data/vendor/gems/gems/rspec-1.2.9/examples/passing/file_accessor.rb +0 -18
- data/vendor/gems/gems/rspec-1.2.9/examples/passing/file_accessor_spec.rb +0 -37
- data/vendor/gems/gems/rspec-1.2.9/examples/passing/filtered_formatter.rb +0 -17
- data/vendor/gems/gems/rspec-1.2.9/examples/passing/filtered_formatter_example.rb +0 -31
- data/vendor/gems/gems/rspec-1.2.9/examples/passing/greeter_spec.rb +0 -30
- data/vendor/gems/gems/rspec-1.2.9/examples/passing/helper_method_example.rb +0 -12
- data/vendor/gems/gems/rspec-1.2.9/examples/passing/implicit_docstrings_example.rb +0 -16
- data/vendor/gems/gems/rspec-1.2.9/examples/passing/io_processor.rb +0 -8
- data/vendor/gems/gems/rspec-1.2.9/examples/passing/io_processor_spec.rb +0 -20
- data/vendor/gems/gems/rspec-1.2.9/examples/passing/mocking_example.rb +0 -25
- data/vendor/gems/gems/rspec-1.2.9/examples/passing/multi_threaded_example_group_runner.rb +0 -26
- data/vendor/gems/gems/rspec-1.2.9/examples/passing/nested_classes_example.rb +0 -35
- data/vendor/gems/gems/rspec-1.2.9/examples/passing/options_example.rb +0 -29
- data/vendor/gems/gems/rspec-1.2.9/examples/passing/options_formatter.rb +0 -20
- data/vendor/gems/gems/rspec-1.2.9/examples/passing/partial_mock_example.rb +0 -27
- data/vendor/gems/gems/rspec-1.2.9/examples/passing/pending_example.rb +0 -18
- data/vendor/gems/gems/rspec-1.2.9/examples/passing/predicate_example.rb +0 -25
- data/vendor/gems/gems/rspec-1.2.9/examples/passing/shared_example_group_example.rb +0 -79
- data/vendor/gems/gems/rspec-1.2.9/examples/passing/shared_stack_examples.rb +0 -36
- data/vendor/gems/gems/rspec-1.2.9/examples/passing/simple_matcher_example.rb +0 -29
- data/vendor/gems/gems/rspec-1.2.9/examples/passing/stack.rb +0 -36
- data/vendor/gems/gems/rspec-1.2.9/examples/passing/stack_spec.rb +0 -63
- data/vendor/gems/gems/rspec-1.2.9/examples/passing/stack_spec_with_nested_example_groups.rb +0 -66
- data/vendor/gems/gems/rspec-1.2.9/examples/passing/stubbing_example.rb +0 -67
- data/vendor/gems/gems/rspec-1.2.9/examples/passing/yielding_example.rb +0 -31
- data/vendor/gems/gems/rspec-1.2.9/examples/ruby1.9.compatibility/access_to_constants_spec.rb +0 -85
- data/vendor/gems/gems/rspec-1.2.9/features/before_and_after_blocks/before_and_after_blocks.feature +0 -167
- data/vendor/gems/gems/rspec-1.2.9/features/command_line/line_number_option.feature +0 -56
- data/vendor/gems/gems/rspec-1.2.9/features/command_line/line_number_option_with_example_with_no_name.feature +0 -22
- data/vendor/gems/gems/rspec-1.2.9/features/example_groups/define_example_attribute.feature +0 -41
- data/vendor/gems/gems/rspec-1.2.9/features/example_groups/example_group_with_should_methods.feature +0 -29
- data/vendor/gems/gems/rspec-1.2.9/features/example_groups/implicit_docstrings.feature +0 -59
- data/vendor/gems/gems/rspec-1.2.9/features/example_groups/nested_groups.feature +0 -32
- data/vendor/gems/gems/rspec-1.2.9/features/expectations/customized_message.feature +0 -54
- data/vendor/gems/gems/rspec-1.2.9/features/expectations/expect_change.feature +0 -65
- data/vendor/gems/gems/rspec-1.2.9/features/expectations/expect_error.feature +0 -44
- data/vendor/gems/gems/rspec-1.2.9/features/extensions/custom_example_group.feature +0 -19
- data/vendor/gems/gems/rspec-1.2.9/features/formatters/custom_formatter.feature +0 -30
- data/vendor/gems/gems/rspec-1.2.9/features/interop/examples_and_tests_together.feature +0 -84
- data/vendor/gems/gems/rspec-1.2.9/features/interop/rspec_output.feature +0 -25
- data/vendor/gems/gems/rspec-1.2.9/features/interop/test_but_not_test_unit.feature +0 -26
- data/vendor/gems/gems/rspec-1.2.9/features/interop/test_case_with_should_methods.feature +0 -46
- data/vendor/gems/gems/rspec-1.2.9/features/load_paths/add_lib_to_load_path.feature +0 -20
- data/vendor/gems/gems/rspec-1.2.9/features/load_paths/add_spec_to_load_path.feature +0 -20
- data/vendor/gems/gems/rspec-1.2.9/features/matchers/define_diffable_matcher.feature +0 -26
- data/vendor/gems/gems/rspec-1.2.9/features/matchers/define_matcher.feature +0 -179
- data/vendor/gems/gems/rspec-1.2.9/features/matchers/define_matcher_outside_rspec.feature +0 -38
- data/vendor/gems/gems/rspec-1.2.9/features/matchers/define_matcher_with_fluent_interface.feature +0 -27
- data/vendor/gems/gems/rspec-1.2.9/features/matchers/define_wrapped_matcher.feature +0 -29
- data/vendor/gems/gems/rspec-1.2.9/features/mock_framework_integration/use_flexmock.feature +0 -27
- data/vendor/gems/gems/rspec-1.2.9/features/mock_framework_integration/use_mocha.feature +0 -27
- data/vendor/gems/gems/rspec-1.2.9/features/mock_framework_integration/use_rr.feature +0 -27
- data/vendor/gems/gems/rspec-1.2.9/features/mocks/mix_stubs_and_mocks.feature +0 -22
- data/vendor/gems/gems/rspec-1.2.9/features/mocks/stub_implementation.feature +0 -26
- data/vendor/gems/gems/rspec-1.2.9/features/pending/pending_examples.feature +0 -81
- data/vendor/gems/gems/rspec-1.2.9/features/runner/specify_line_number.feature +0 -32
- data/vendor/gems/gems/rspec-1.2.9/features/spec_helper/spec_helper.feature +0 -25
- data/vendor/gems/gems/rspec-1.2.9/features/step_definitions/running_rspec_steps.rb +0 -43
- data/vendor/gems/gems/rspec-1.2.9/features/subject/explicit_subject.feature +0 -31
- data/vendor/gems/gems/rspec-1.2.9/features/subject/implicit_subject.feature +0 -43
- data/vendor/gems/gems/rspec-1.2.9/features/support/env.rb +0 -82
- data/vendor/gems/gems/rspec-1.2.9/features/support/matchers/smart_match.rb +0 -12
- data/vendor/gems/gems/rspec-1.2.9/init.rb +0 -9
- data/vendor/gems/gems/rspec-1.2.9/lib/autotest/discover.rb +0 -3
- data/vendor/gems/gems/rspec-1.2.9/lib/autotest/rspec.rb +0 -47
- data/vendor/gems/gems/rspec-1.2.9/lib/spec.rb +0 -8
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/adapters/mock_frameworks/flexmock.rb +0 -24
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/adapters/mock_frameworks/mocha.rb +0 -25
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/adapters/mock_frameworks/rr.rb +0 -22
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/adapters/mock_frameworks/rspec.rb +0 -21
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/autorun.rb +0 -3
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/deprecation.rb +0 -40
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/dsl.rb +0 -1
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/dsl/main.rb +0 -92
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/example.rb +0 -164
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/example/args_and_options.rb +0 -27
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/example/before_and_after_hooks.rb +0 -93
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/example/errors.rb +0 -25
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/example/example_group.rb +0 -10
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/example/example_group_factory.rb +0 -82
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/example/example_group_hierarchy.rb +0 -53
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/example/example_group_methods.rb +0 -282
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/example/example_group_proxy.rb +0 -61
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/example/example_matcher.rb +0 -43
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/example/example_methods.rb +0 -148
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/example/example_proxy.rb +0 -41
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/example/module_reopening_fix.rb +0 -43
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/example/pending.rb +0 -18
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/example/predicate_matchers.rb +0 -46
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/example/shared_example_group.rb +0 -59
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/example/subject.rb +0 -108
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/expectations.rb +0 -35
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/expectations/errors.rb +0 -12
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/expectations/extensions.rb +0 -1
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/expectations/extensions/kernel.rb +0 -52
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/expectations/fail_with.rb +0 -45
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/expectations/handler.rb +0 -50
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/interop/test.rb +0 -44
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/interop/test/unit/autorunner.rb +0 -6
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/interop/test/unit/testcase.rb +0 -56
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/interop/test/unit/testresult.rb +0 -6
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/interop/test/unit/testsuite_adapter.rb +0 -34
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/interop/test/unit/ui/console/testrunner.rb +0 -61
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/matchers.rb +0 -195
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/matchers/be.rb +0 -210
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/matchers/be_close.rb +0 -32
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/matchers/be_instance_of.rb +0 -26
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/matchers/be_kind_of.rb +0 -26
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/matchers/change.rb +0 -151
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/matchers/compatibility.rb +0 -14
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/matchers/dsl.rb +0 -20
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/matchers/eql.rb +0 -42
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/matchers/equal.rb +0 -53
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/matchers/errors.rb +0 -5
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/matchers/exist.rb +0 -16
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/matchers/extensions/instance_exec.rb +0 -31
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/matchers/generated_descriptions.rb +0 -36
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/matchers/has.rb +0 -35
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/matchers/have.rb +0 -151
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/matchers/include.rb +0 -44
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/matchers/match.rb +0 -21
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/matchers/match_array.rb +0 -71
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/matchers/matcher.rb +0 -87
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/matchers/method_missing.rb +0 -9
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/matchers/operator_matcher.rb +0 -78
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/matchers/pretty.rb +0 -37
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/matchers/raise_error.rb +0 -129
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/matchers/respond_to.rb +0 -71
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/matchers/satisfy.rb +0 -47
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/matchers/simple_matcher.rb +0 -133
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/matchers/throw_symbol.rb +0 -104
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/matchers/wrap_expectation.rb +0 -55
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/mocks.rb +0 -200
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/mocks/argument_expectation.rb +0 -51
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/mocks/argument_matchers.rb +0 -237
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/mocks/error_generator.rb +0 -92
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/mocks/errors.rb +0 -10
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/mocks/example_methods.rb +0 -69
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/mocks/extensions.rb +0 -1
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/mocks/extensions/object.rb +0 -3
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/mocks/framework.rb +0 -15
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/mocks/message_expectation.rb +0 -329
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/mocks/methods.rb +0 -89
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/mocks/mock.rb +0 -71
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/mocks/order_group.rb +0 -29
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/mocks/proxy.rb +0 -245
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/mocks/space.rb +0 -28
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/rake/spectask.rb +0 -230
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/rake/verify_rcov.rb +0 -52
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/ruby.rb +0 -9
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/runner.rb +0 -66
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/runner/backtrace_tweaker.rb +0 -77
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/runner/class_and_arguments_parser.rb +0 -14
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/runner/command_line.rb +0 -15
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/runner/configuration.rb +0 -194
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/runner/differs/default.rb +0 -93
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/runner/differs/load-diff-lcs.rb +0 -12
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/runner/drb_command_line.rb +0 -26
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/runner/example_group_runner.rb +0 -59
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/runner/extensions/kernel.rb +0 -9
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/runner/formatter/base_formatter.rb +0 -139
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/runner/formatter/base_text_formatter.rb +0 -142
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/runner/formatter/failing_example_groups_formatter.rb +0 -25
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/runner/formatter/failing_examples_formatter.rb +0 -20
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/runner/formatter/html_formatter.rb +0 -338
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/runner/formatter/nested_text_formatter.rb +0 -47
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/runner/formatter/no_op_method_missing.rb +0 -21
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/runner/formatter/profile_formatter.rb +0 -47
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/runner/formatter/progress_bar_formatter.rb +0 -33
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/runner/formatter/silent_formatter.rb +0 -10
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/runner/formatter/snippet_extractor.rb +0 -52
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/runner/formatter/specdoc_formatter.rb +0 -33
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/runner/formatter/text_mate_formatter.rb +0 -16
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/runner/heckle_runner.rb +0 -72
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/runner/heckle_runner_unsupported.rb +0 -10
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/runner/line_number_query.rb +0 -78
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/runner/option_parser.rb +0 -223
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/runner/options.rb +0 -400
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/runner/reporter.rb +0 -171
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/stubs/cucumber.rb +0 -5
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/test/unit.rb +0 -10
- data/vendor/gems/gems/rspec-1.2.9/lib/spec/version.rb +0 -14
- data/vendor/gems/gems/rspec-1.2.9/resources/helpers/cmdline.rb +0 -8
- data/vendor/gems/gems/rspec-1.2.9/resources/rake/examples.rake +0 -7
- data/vendor/gems/gems/rspec-1.2.9/resources/rake/examples_with_rcov.rake +0 -9
- data/vendor/gems/gems/rspec-1.2.9/resources/rake/failing_examples_with_html.rake +0 -9
- data/vendor/gems/gems/rspec-1.2.9/resources/rake/verify_rcov.rake +0 -7
- data/vendor/gems/gems/rspec-1.2.9/spec/README.jruby +0 -15
- data/vendor/gems/gems/rspec-1.2.9/spec/autotest/autotest_helper.rb +0 -8
- data/vendor/gems/gems/rspec-1.2.9/spec/autotest/autotest_matchers.rb +0 -38
- data/vendor/gems/gems/rspec-1.2.9/spec/autotest/discover_spec.rb +0 -8
- data/vendor/gems/gems/rspec-1.2.9/spec/autotest/failed_results_re_spec.rb +0 -31
- data/vendor/gems/gems/rspec-1.2.9/spec/autotest/rspec_spec.rb +0 -111
- data/vendor/gems/gems/rspec-1.2.9/spec/ruby_forker.rb +0 -13
- data/vendor/gems/gems/rspec-1.2.9/spec/spec.opts +0 -6
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/dsl/main_spec.rb +0 -95
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/example/example_group_class_definition_spec.rb +0 -51
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/example/example_group_factory_spec.rb +0 -180
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/example/example_group_methods_spec.rb +0 -758
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/example/example_group_proxy_spec.rb +0 -107
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/example/example_group_spec.rb +0 -643
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/example/example_matcher_spec.rb +0 -86
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/example/example_methods_spec.rb +0 -162
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/example/example_proxy_spec.rb +0 -57
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/example/helper_method_spec.rb +0 -24
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/example/nested_example_group_spec.rb +0 -71
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/example/pending_module_spec.rb +0 -58
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/example/predicate_matcher_spec.rb +0 -41
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/example/shared_example_group_spec.rb +0 -257
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/example/subclassing_example_group_spec.rb +0 -25
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/example/subject_spec.rb +0 -103
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/expectations/differs/default_spec.rb +0 -194
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/expectations/extensions/kernel_spec.rb +0 -45
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/expectations/fail_with_spec.rb +0 -96
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/expectations/handler_spec.rb +0 -206
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/expectations/wrap_expectation_spec.rb +0 -30
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/interop/test/unit/resources/spec_that_fails.rb +0 -10
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/interop/test/unit/resources/spec_that_passes.rb +0 -10
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/interop/test/unit/resources/spec_with_errors.rb +0 -10
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/interop/test/unit/resources/spec_with_options_hash.rb +0 -13
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/interop/test/unit/resources/test_case_that_fails.rb +0 -10
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/interop/test/unit/resources/test_case_that_passes.rb +0 -10
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/interop/test/unit/resources/test_case_with_errors.rb +0 -10
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/interop/test/unit/resources/test_case_with_various_names.rb +0 -22
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/interop/test/unit/resources/testsuite_adapter_spec_with_test_unit.rb +0 -38
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/interop/test/unit/spec_spec.rb +0 -48
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/interop/test/unit/test_unit_spec_helper.rb +0 -18
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/interop/test/unit/testcase_spec.rb +0 -50
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/interop/test/unit/testsuite_adapter_spec.rb +0 -9
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/matchers/be_close_spec.rb +0 -50
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/matchers/be_instance_of_spec.rb +0 -36
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/matchers/be_kind_of_spec.rb +0 -33
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/matchers/be_spec.rb +0 -311
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/matchers/change_spec.rb +0 -349
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/matchers/compatibility_spec.rb +0 -28
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/matchers/description_generation_spec.rb +0 -160
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/matchers/dsl_spec.rb +0 -34
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/matchers/eql_spec.rb +0 -33
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/matchers/equal_spec.rb +0 -57
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/matchers/exist_spec.rb +0 -65
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/matchers/has_spec.rb +0 -81
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/matchers/have_spec.rb +0 -396
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/matchers/include_spec.rb +0 -88
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/matchers/match_array_spec.rb +0 -108
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/matchers/match_spec.rb +0 -57
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/matchers/matcher_methods_spec.rb +0 -63
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/matchers/matcher_spec.rb +0 -228
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/matchers/matchers_spec.rb +0 -2
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/matchers/operator_matcher_spec.rb +0 -191
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/matchers/raise_error_spec.rb +0 -333
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/matchers/respond_to_spec.rb +0 -116
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/matchers/satisfy_spec.rb +0 -36
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/matchers/simple_matcher_spec.rb +0 -93
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/matchers/throw_symbol_spec.rb +0 -96
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/mocks/any_number_of_times_spec.rb +0 -36
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/mocks/argument_expectation_spec.rb +0 -23
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/mocks/argument_matchers_spec.rb +0 -19
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/mocks/at_least_spec.rb +0 -97
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/mocks/at_most_spec.rb +0 -93
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/mocks/bug_report_10260_spec.rb +0 -8
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/mocks/bug_report_10263_spec.rb +0 -27
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/mocks/bug_report_11545_spec.rb +0 -32
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/mocks/bug_report_15719_spec.rb +0 -30
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/mocks/bug_report_496_spec.rb +0 -19
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/mocks/bug_report_600_spec.rb +0 -22
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/mocks/bug_report_7611_spec.rb +0 -19
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/mocks/bug_report_7805_spec.rb +0 -22
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/mocks/bug_report_8165_spec.rb +0 -31
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/mocks/bug_report_8302_spec.rb +0 -26
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/mocks/bug_report_830_spec.rb +0 -21
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/mocks/double_spec.rb +0 -12
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/mocks/failing_argument_matchers_spec.rb +0 -95
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/mocks/hash_including_matcher_spec.rb +0 -90
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/mocks/hash_not_including_matcher_spec.rb +0 -67
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/mocks/mock_ordering_spec.rb +0 -94
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/mocks/mock_space_spec.rb +0 -54
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/mocks/mock_spec.rb +0 -594
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/mocks/multiple_return_value_spec.rb +0 -113
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/mocks/nil_expectation_warning_spec.rb +0 -53
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/mocks/null_object_mock_spec.rb +0 -54
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/mocks/once_counts_spec.rb +0 -53
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/mocks/options_hash_spec.rb +0 -35
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/mocks/partial_mock_spec.rb +0 -164
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/mocks/partial_mock_using_mocks_directly_spec.rb +0 -66
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/mocks/passing_argument_matchers_spec.rb +0 -145
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/mocks/precise_counts_spec.rb +0 -52
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/mocks/record_messages_spec.rb +0 -26
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/mocks/stub_chain_spec.rb +0 -42
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/mocks/stub_implementation_spec.rb +0 -31
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/mocks/stub_spec.rb +0 -203
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/mocks/stubbed_message_expectations_spec.rb +0 -26
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/mocks/twice_counts_spec.rb +0 -67
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/mocks/unstub_spec.rb +0 -127
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/package/bin_spec_spec.rb +0 -16
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/rake/spectask_spec.rb +0 -150
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/runner/class_and_argument_parser_spec.rb +0 -23
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/runner/command_line_spec.rb +0 -141
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/runner/configuration_spec.rb +0 -320
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/runner/drb_command_line_spec.rb +0 -107
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/runner/empty_file.txt +0 -0
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/runner/example_group_runner_spec.rb +0 -26
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/runner/examples.txt +0 -2
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/runner/failed.txt +0 -3
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/runner/formatter/base_formatter_spec.rb +0 -30
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/runner/formatter/base_text_formatter_spec.rb +0 -113
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/runner/formatter/failing_example_groups_formatter_spec.rb +0 -45
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/runner/formatter/failing_examples_formatter_spec.rb +0 -33
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/runner/formatter/html_formatted-1.8.6-jruby.html +0 -377
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/runner/formatter/html_formatted-1.8.6.html +0 -377
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/runner/formatter/html_formatted-1.8.7.html +0 -377
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/runner/formatter/html_formatted-1.9.1.html +0 -377
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/runner/formatter/html_formatter_spec.rb +0 -118
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/runner/formatter/nested_text_formatter_spec.rb +0 -305
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/runner/formatter/profile_formatter_spec.rb +0 -70
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +0 -149
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/runner/formatter/snippet_extractor_spec.rb +0 -18
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/runner/formatter/specdoc_formatter_spec.rb +0 -159
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/runner/formatter/text_mate_formatted-1.8.6-jruby.html +0 -371
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/runner/formatter/text_mate_formatted-1.8.6.html +0 -371
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/runner/formatter/text_mate_formatted-1.8.7.html +0 -371
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/runner/formatter/text_mate_formatted-1.9.1.html +0 -371
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/runner/formatter/text_mate_formatter_spec.rb +0 -106
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/runner/heckle_runner_spec.rb +0 -78
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/runner/heckler_spec.rb +0 -20
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/runner/line_number_query/line_number_query_fixture.rb +0 -70
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/runner/line_number_query_spec.rb +0 -129
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/runner/noisy_backtrace_tweaker_spec.rb +0 -51
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/runner/option_parser_spec.rb +0 -545
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/runner/options_spec.rb +0 -547
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/runner/output_one_time_fixture.rb +0 -7
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/runner/output_one_time_fixture_runner.rb +0 -7
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/runner/output_one_time_spec.rb +0 -15
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/runner/quiet_backtrace_tweaker_spec.rb +0 -105
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/runner/reporter_spec.rb +0 -244
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/runner/resources/a_bar.rb +0 -0
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/runner/resources/a_foo.rb +0 -0
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/runner/resources/a_spec.rb +0 -1
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/runner/resources/custom_example_group_runner.rb +0 -14
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/runner/resources/utf8_encoded.rb +0 -8
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/runner/spec.opts +0 -2
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/runner/spec_drb.opts +0 -2
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/runner/spec_spaced.opts +0 -2
- data/vendor/gems/gems/rspec-1.2.9/spec/spec/runner_spec.rb +0 -13
- data/vendor/gems/gems/rspec-1.2.9/spec/spec_helper.rb +0 -112
- data/vendor/gems/gems/rspec-1.2.9/spec/support/macros.rb +0 -29
- data/vendor/gems/gems/rspec-1.2.9/spec/support/spec_classes.rb +0 -133
- data/vendor/gems/gems/sdoc-0.2.14.1/.gitignore +0 -3
- data/vendor/gems/gems/sdoc-0.2.14.1/LICENSE +0 -21
- data/vendor/gems/gems/sdoc-0.2.14.1/README.rdoc +0 -38
- data/vendor/gems/gems/sdoc-0.2.14.1/Rakefile +0 -44
- data/vendor/gems/gems/sdoc-0.2.14.1/VERSION.yml +0 -4
- data/vendor/gems/gems/sdoc-0.2.14.1/bin/sdoc +0 -11
- data/vendor/gems/gems/sdoc-0.2.14.1/bin/sdoc-merge +0 -12
- data/vendor/gems/gems/sdoc-0.2.14.1/lib/sdoc.rb +0 -23
- data/vendor/gems/gems/sdoc-0.2.14.1/lib/sdoc/c_parser_fix.rb +0 -31
- data/vendor/gems/gems/sdoc-0.2.14.1/lib/sdoc/generator/shtml.rb +0 -356
- data/vendor/gems/gems/sdoc-0.2.14.1/lib/sdoc/generator/template/direct/_context.rhtml +0 -172
- data/vendor/gems/gems/sdoc-0.2.14.1/lib/sdoc/generator/template/direct/class.rhtml +0 -40
- data/vendor/gems/gems/sdoc-0.2.14.1/lib/sdoc/generator/template/direct/file.rhtml +0 -30
- data/vendor/gems/gems/sdoc-0.2.14.1/lib/sdoc/generator/template/direct/index.rhtml +0 -14
- data/vendor/gems/gems/sdoc-0.2.14.1/lib/sdoc/generator/template/direct/resources/apple-touch-icon.png +0 -0
- data/vendor/gems/gems/sdoc-0.2.14.1/lib/sdoc/generator/template/direct/resources/css/main.css +0 -263
- data/vendor/gems/gems/sdoc-0.2.14.1/lib/sdoc/generator/template/direct/resources/css/panel.css +0 -383
- data/vendor/gems/gems/sdoc-0.2.14.1/lib/sdoc/generator/template/direct/resources/css/reset.css +0 -53
- data/vendor/gems/gems/sdoc-0.2.14.1/lib/sdoc/generator/template/direct/resources/favicon.ico +0 -0
- data/vendor/gems/gems/sdoc-0.2.14.1/lib/sdoc/generator/template/direct/resources/i/arrows.png +0 -0
- data/vendor/gems/gems/sdoc-0.2.14.1/lib/sdoc/generator/template/direct/resources/i/results_bg.png +0 -0
- data/vendor/gems/gems/sdoc-0.2.14.1/lib/sdoc/generator/template/direct/resources/i/tree_bg.png +0 -0
- data/vendor/gems/gems/sdoc-0.2.14.1/lib/sdoc/generator/template/direct/resources/js/jquery-1.3.2.min.js +0 -19
- data/vendor/gems/gems/sdoc-0.2.14.1/lib/sdoc/generator/template/direct/resources/js/jquery-effect.js +0 -593
- data/vendor/gems/gems/sdoc-0.2.14.1/lib/sdoc/generator/template/direct/resources/js/main.js +0 -22
- data/vendor/gems/gems/sdoc-0.2.14.1/lib/sdoc/generator/template/direct/resources/js/searchdoc.js +0 -628
- data/vendor/gems/gems/sdoc-0.2.14.1/lib/sdoc/generator/template/direct/resources/panel/index.html +0 -71
- data/vendor/gems/gems/sdoc-0.2.14.1/lib/sdoc/generator/template/merge/index.rhtml +0 -14
- data/vendor/gems/gems/sdoc-0.2.14.1/lib/sdoc/generator/template/shtml/_context.rhtml +0 -164
- data/vendor/gems/gems/sdoc-0.2.14.1/lib/sdoc/generator/template/shtml/class.rhtml +0 -46
- data/vendor/gems/gems/sdoc-0.2.14.1/lib/sdoc/generator/template/shtml/file.rhtml +0 -37
- data/vendor/gems/gems/sdoc-0.2.14.1/lib/sdoc/generator/template/shtml/index.rhtml +0 -14
- data/vendor/gems/gems/sdoc-0.2.14.1/lib/sdoc/generator/template/shtml/resources/apple-touch-icon.png +0 -0
- data/vendor/gems/gems/sdoc-0.2.14.1/lib/sdoc/generator/template/shtml/resources/css/main.css +0 -191
- data/vendor/gems/gems/sdoc-0.2.14.1/lib/sdoc/generator/template/shtml/resources/css/panel.css +0 -383
- data/vendor/gems/gems/sdoc-0.2.14.1/lib/sdoc/generator/template/shtml/resources/css/reset.css +0 -53
- data/vendor/gems/gems/sdoc-0.2.14.1/lib/sdoc/generator/template/shtml/resources/favicon.ico +0 -0
- data/vendor/gems/gems/sdoc-0.2.14.1/lib/sdoc/generator/template/shtml/resources/i/arrows.png +0 -0
- data/vendor/gems/gems/sdoc-0.2.14.1/lib/sdoc/generator/template/shtml/resources/i/results_bg.png +0 -0
- data/vendor/gems/gems/sdoc-0.2.14.1/lib/sdoc/generator/template/shtml/resources/i/tree_bg.png +0 -0
- data/vendor/gems/gems/sdoc-0.2.14.1/lib/sdoc/generator/template/shtml/resources/js/jquery-1.3.2.min.js +0 -19
- data/vendor/gems/gems/sdoc-0.2.14.1/lib/sdoc/generator/template/shtml/resources/js/main.js +0 -34
- data/vendor/gems/gems/sdoc-0.2.14.1/lib/sdoc/generator/template/shtml/resources/js/searchdoc.js +0 -628
- data/vendor/gems/gems/sdoc-0.2.14.1/lib/sdoc/generator/template/shtml/resources/panel/index.html +0 -71
- data/vendor/gems/gems/sdoc-0.2.14.1/lib/sdoc/github.rb +0 -64
- data/vendor/gems/gems/sdoc-0.2.14.1/lib/sdoc/helpers.rb +0 -26
- data/vendor/gems/gems/sdoc-0.2.14.1/lib/sdoc/merge.rb +0 -217
- data/vendor/gems/gems/sdoc-0.2.14.1/lib/sdoc/templatable.rb +0 -58
- data/vendor/gems/gems/sdoc-0.2.14.1/sdoc.gemspec +0 -89
- data/vendor/gems/gems/shotgun-0.4/COPYING +0 -18
- data/vendor/gems/gems/shotgun-0.4/README +0 -46
- data/vendor/gems/gems/shotgun-0.4/Rakefile +0 -56
- data/vendor/gems/gems/shotgun-0.4/bin/shotgun +0 -136
- data/vendor/gems/gems/shotgun-0.4/lib/shotgun.rb +0 -99
- data/vendor/gems/gems/shotgun-0.4/shotgun.gemspec +0 -34
- data/vendor/gems/gems/sinatra-0.9.4/AUTHORS +0 -41
- data/vendor/gems/gems/sinatra-0.9.4/CHANGES +0 -385
- data/vendor/gems/gems/sinatra-0.9.4/LICENSE +0 -22
- data/vendor/gems/gems/sinatra-0.9.4/README.rdoc +0 -573
- data/vendor/gems/gems/sinatra-0.9.4/Rakefile +0 -138
- data/vendor/gems/gems/sinatra-0.9.4/compat/app_test.rb +0 -282
- data/vendor/gems/gems/sinatra-0.9.4/compat/application_test.rb +0 -262
- data/vendor/gems/gems/sinatra-0.9.4/compat/builder_test.rb +0 -101
- data/vendor/gems/gems/sinatra-0.9.4/compat/compat_test.rb +0 -12
- data/vendor/gems/gems/sinatra-0.9.4/compat/custom_error_test.rb +0 -62
- data/vendor/gems/gems/sinatra-0.9.4/compat/erb_test.rb +0 -136
- data/vendor/gems/gems/sinatra-0.9.4/compat/events_test.rb +0 -78
- data/vendor/gems/gems/sinatra-0.9.4/compat/filter_test.rb +0 -30
- data/vendor/gems/gems/sinatra-0.9.4/compat/haml_test.rb +0 -236
- data/vendor/gems/gems/sinatra-0.9.4/compat/helper.rb +0 -33
- data/vendor/gems/gems/sinatra-0.9.4/compat/mapped_error_test.rb +0 -72
- data/vendor/gems/gems/sinatra-0.9.4/compat/pipeline_test.rb +0 -45
- data/vendor/gems/gems/sinatra-0.9.4/compat/public/foo.xml +0 -1
- data/vendor/gems/gems/sinatra-0.9.4/compat/sass_test.rb +0 -67
- data/vendor/gems/gems/sinatra-0.9.4/compat/sessions_test.rb +0 -42
- data/vendor/gems/gems/sinatra-0.9.4/compat/streaming_test.rb +0 -133
- data/vendor/gems/gems/sinatra-0.9.4/compat/sym_params_test.rb +0 -19
- data/vendor/gems/gems/sinatra-0.9.4/compat/template_test.rb +0 -30
- data/vendor/gems/gems/sinatra-0.9.4/compat/use_in_file_templates_test.rb +0 -47
- data/vendor/gems/gems/sinatra-0.9.4/compat/views/foo.builder +0 -1
- data/vendor/gems/gems/sinatra-0.9.4/compat/views/foo.erb +0 -1
- data/vendor/gems/gems/sinatra-0.9.4/compat/views/foo.haml +0 -1
- data/vendor/gems/gems/sinatra-0.9.4/compat/views/foo.sass +0 -2
- data/vendor/gems/gems/sinatra-0.9.4/compat/views/foo_layout.erb +0 -2
- data/vendor/gems/gems/sinatra-0.9.4/compat/views/foo_layout.haml +0 -2
- data/vendor/gems/gems/sinatra-0.9.4/compat/views/layout_test/foo.builder +0 -1
- data/vendor/gems/gems/sinatra-0.9.4/compat/views/layout_test/foo.erb +0 -1
- data/vendor/gems/gems/sinatra-0.9.4/compat/views/layout_test/foo.haml +0 -1
- data/vendor/gems/gems/sinatra-0.9.4/compat/views/layout_test/foo.sass +0 -2
- data/vendor/gems/gems/sinatra-0.9.4/compat/views/layout_test/layout.builder +0 -3
- data/vendor/gems/gems/sinatra-0.9.4/compat/views/layout_test/layout.erb +0 -1
- data/vendor/gems/gems/sinatra-0.9.4/compat/views/layout_test/layout.haml +0 -1
- data/vendor/gems/gems/sinatra-0.9.4/compat/views/layout_test/layout.sass +0 -2
- data/vendor/gems/gems/sinatra-0.9.4/compat/views/no_layout/no_layout.builder +0 -1
- data/vendor/gems/gems/sinatra-0.9.4/compat/views/no_layout/no_layout.haml +0 -1
- data/vendor/gems/gems/sinatra-0.9.4/lib/sinatra.rb +0 -8
- data/vendor/gems/gems/sinatra-0.9.4/lib/sinatra/base.rb +0 -1119
- data/vendor/gems/gems/sinatra-0.9.4/lib/sinatra/compat.rb +0 -266
- data/vendor/gems/gems/sinatra-0.9.4/lib/sinatra/images/404.png +0 -0
- data/vendor/gems/gems/sinatra-0.9.4/lib/sinatra/images/500.png +0 -0
- data/vendor/gems/gems/sinatra-0.9.4/lib/sinatra/main.rb +0 -35
- data/vendor/gems/gems/sinatra-0.9.4/lib/sinatra/showexceptions.rb +0 -303
- data/vendor/gems/gems/sinatra-0.9.4/lib/sinatra/test.rb +0 -128
- data/vendor/gems/gems/sinatra-0.9.4/lib/sinatra/test/bacon.rb +0 -19
- data/vendor/gems/gems/sinatra-0.9.4/lib/sinatra/test/rspec.rb +0 -13
- data/vendor/gems/gems/sinatra-0.9.4/lib/sinatra/test/spec.rb +0 -11
- data/vendor/gems/gems/sinatra-0.9.4/lib/sinatra/test/unit.rb +0 -13
- data/vendor/gems/gems/sinatra-0.9.4/sinatra.gemspec +0 -125
- data/vendor/gems/gems/sinatra-0.9.4/test/base_test.rb +0 -160
- data/vendor/gems/gems/sinatra-0.9.4/test/builder_test.rb +0 -65
- data/vendor/gems/gems/sinatra-0.9.4/test/contest.rb +0 -64
- data/vendor/gems/gems/sinatra-0.9.4/test/data/reload_app_file.rb +0 -3
- data/vendor/gems/gems/sinatra-0.9.4/test/erb_test.rb +0 -81
- data/vendor/gems/gems/sinatra-0.9.4/test/extensions_test.rb +0 -100
- data/vendor/gems/gems/sinatra-0.9.4/test/filter_test.rb +0 -99
- data/vendor/gems/gems/sinatra-0.9.4/test/haml_test.rb +0 -90
- data/vendor/gems/gems/sinatra-0.9.4/test/helper.rb +0 -76
- data/vendor/gems/gems/sinatra-0.9.4/test/helpers_test.rb +0 -503
- data/vendor/gems/gems/sinatra-0.9.4/test/mapped_error_test.rb +0 -155
- data/vendor/gems/gems/sinatra-0.9.4/test/middleware_test.rb +0 -68
- data/vendor/gems/gems/sinatra-0.9.4/test/options_test.rb +0 -372
- data/vendor/gems/gems/sinatra-0.9.4/test/render_backtrace_test.rb +0 -145
- data/vendor/gems/gems/sinatra-0.9.4/test/request_test.rb +0 -18
- data/vendor/gems/gems/sinatra-0.9.4/test/response_test.rb +0 -42
- data/vendor/gems/gems/sinatra-0.9.4/test/result_test.rb +0 -98
- data/vendor/gems/gems/sinatra-0.9.4/test/route_added_hook_test.rb +0 -59
- data/vendor/gems/gems/sinatra-0.9.4/test/routing_test.rb +0 -784
- data/vendor/gems/gems/sinatra-0.9.4/test/sass_test.rb +0 -79
- data/vendor/gems/gems/sinatra-0.9.4/test/server_test.rb +0 -47
- data/vendor/gems/gems/sinatra-0.9.4/test/sinatra_test.rb +0 -13
- data/vendor/gems/gems/sinatra-0.9.4/test/static_test.rb +0 -80
- data/vendor/gems/gems/sinatra-0.9.4/test/templates_test.rb +0 -122
- data/vendor/gems/gems/sinatra-0.9.4/test/test_test.rb +0 -152
- data/vendor/gems/gems/sinatra-0.9.4/test/views/error.builder +0 -3
- data/vendor/gems/gems/sinatra-0.9.4/test/views/error.erb +0 -3
- data/vendor/gems/gems/sinatra-0.9.4/test/views/error.haml +0 -3
- data/vendor/gems/gems/sinatra-0.9.4/test/views/error.sass +0 -2
- data/vendor/gems/gems/sinatra-0.9.4/test/views/foo/hello.test +0 -1
- data/vendor/gems/gems/sinatra-0.9.4/test/views/hello.builder +0 -1
- data/vendor/gems/gems/sinatra-0.9.4/test/views/hello.erb +0 -1
- data/vendor/gems/gems/sinatra-0.9.4/test/views/hello.haml +0 -1
- data/vendor/gems/gems/sinatra-0.9.4/test/views/hello.sass +0 -2
- data/vendor/gems/gems/sinatra-0.9.4/test/views/hello.test +0 -1
- data/vendor/gems/gems/sinatra-0.9.4/test/views/layout2.builder +0 -3
- data/vendor/gems/gems/sinatra-0.9.4/test/views/layout2.erb +0 -2
- data/vendor/gems/gems/sinatra-0.9.4/test/views/layout2.haml +0 -2
- data/vendor/gems/gems/sinatra-0.9.4/test/views/layout2.test +0 -1
- data/vendor/gems/gems/sinatra-content-for-0.2/.gitignore +0 -3
- data/vendor/gems/gems/sinatra-content-for-0.2/LICENSE +0 -22
- data/vendor/gems/gems/sinatra-content-for-0.2/README.rdoc +0 -41
- data/vendor/gems/gems/sinatra-content-for-0.2/lib/sinatra/content_for.rb +0 -58
- data/vendor/gems/gems/sinatra-content-for-0.2/sinatra-content-for.gemspec +0 -34
- data/vendor/gems/gems/sinatra-content-for-0.2/test/content_for_test.rb +0 -156
- data/vendor/gems/gems/sprockets-1.0.2/Rakefile +0 -19
- data/vendor/gems/gems/sprockets-1.0.2/bin/sprocketize +0 -54
- data/vendor/gems/gems/sprockets-1.0.2/ext/nph-sprockets.cgi +0 -127
- data/vendor/gems/gems/sprockets-1.0.2/lib/sprockets.rb +0 -42
- data/vendor/gems/gems/sprockets-1.0.2/lib/sprockets/concatenation.rb +0 -36
- data/vendor/gems/gems/sprockets-1.0.2/lib/sprockets/environment.rb +0 -52
- data/vendor/gems/gems/sprockets-1.0.2/lib/sprockets/error.rb +0 -5
- data/vendor/gems/gems/sprockets-1.0.2/lib/sprockets/pathname.rb +0 -37
- data/vendor/gems/gems/sprockets-1.0.2/lib/sprockets/preprocessor.rb +0 -91
- data/vendor/gems/gems/sprockets-1.0.2/lib/sprockets/secretary.rb +0 -106
- data/vendor/gems/gems/sprockets-1.0.2/lib/sprockets/source_file.rb +0 -54
- data/vendor/gems/gems/sprockets-1.0.2/lib/sprockets/source_line.rb +0 -82
- data/vendor/gems/gems/sprockets-1.0.2/lib/sprockets/version.rb +0 -9
- data/vendor/gems/gems/sprockets-1.0.2/test/fixtures/assets/images/script_with_assets/one.png +0 -1
- data/vendor/gems/gems/sprockets-1.0.2/test/fixtures/assets/images/script_with_assets/two.png +0 -1
- data/vendor/gems/gems/sprockets-1.0.2/test/fixtures/assets/stylesheets/script_with_assets.css +0 -1
- data/vendor/gems/gems/sprockets-1.0.2/test/fixtures/constants.yml +0 -1
- data/vendor/gems/gems/sprockets-1.0.2/test/fixtures/double_slash_comments_that_are_not_requires_should_be_ignored_when_strip_comments_is_false.js +0 -8
- data/vendor/gems/gems/sprockets-1.0.2/test/fixtures/double_slash_comments_that_are_not_requires_should_be_removed_by_default.js +0 -2
- data/vendor/gems/gems/sprockets-1.0.2/test/fixtures/multiline_comments_should_be_removed_by_default.js +0 -4
- data/vendor/gems/gems/sprockets-1.0.2/test/fixtures/requiring_a_file_after_it_has_already_been_required_should_do_nothing.js +0 -5
- data/vendor/gems/gems/sprockets-1.0.2/test/fixtures/requiring_a_file_that_does_not_exist_should_raise_an_error.js +0 -1
- data/vendor/gems/gems/sprockets-1.0.2/test/fixtures/requiring_a_single_file_should_replace_the_require_comment_with_the_file_contents.js +0 -3
- data/vendor/gems/gems/sprockets-1.0.2/test/fixtures/requiring_the_current_file_should_do_nothing.js +0 -1
- data/vendor/gems/gems/sprockets-1.0.2/test/fixtures/src/constants.yml +0 -3
- data/vendor/gems/gems/sprockets-1.0.2/test/fixtures/src/foo.js +0 -1
- data/vendor/gems/gems/sprockets-1.0.2/test/fixtures/src/foo/bar.js +0 -4
- data/vendor/gems/gems/sprockets-1.0.2/test/fixtures/src/foo/foo.js +0 -1
- data/vendor/gems/gems/sprockets-1.0.2/test/fixtures/src/script_with_assets.js +0 -3
- data/vendor/gems/gems/sprockets-1.0.2/test/test_concatenation.rb +0 -28
- data/vendor/gems/gems/sprockets-1.0.2/test/test_environment.rb +0 -64
- data/vendor/gems/gems/sprockets-1.0.2/test/test_helper.rb +0 -55
- data/vendor/gems/gems/sprockets-1.0.2/test/test_pathname.rb +0 -43
- data/vendor/gems/gems/sprockets-1.0.2/test/test_preprocessor.rb +0 -107
- data/vendor/gems/gems/sprockets-1.0.2/test/test_secretary.rb +0 -83
- data/vendor/gems/gems/sprockets-1.0.2/test/test_source_file.rb +0 -34
- data/vendor/gems/gems/sprockets-1.0.2/test/test_source_line.rb +0 -89
- data/vendor/gems/gems/templater-1.0.0/History.txt +0 -3
- data/vendor/gems/gems/templater-1.0.0/Manifest.txt +0 -64
- data/vendor/gems/gems/templater-1.0.0/README.rdoc +0 -266
- data/vendor/gems/gems/templater-1.0.0/Rakefile +0 -23
- data/vendor/gems/gems/templater-1.0.0/lib/templater.rb +0 -49
- data/vendor/gems/gems/templater-1.0.0/lib/templater/actions/action.rb +0 -43
- data/vendor/gems/gems/templater-1.0.0/lib/templater/actions/directory.rb +0 -22
- data/vendor/gems/gems/templater-1.0.0/lib/templater/actions/empty_directory.rb +0 -57
- data/vendor/gems/gems/templater-1.0.0/lib/templater/actions/file.rb +0 -60
- data/vendor/gems/gems/templater-1.0.0/lib/templater/actions/template.rb +0 -61
- data/vendor/gems/gems/templater-1.0.0/lib/templater/capture_helpers.rb +0 -62
- data/vendor/gems/gems/templater-1.0.0/lib/templater/cli/generator.rb +0 -175
- data/vendor/gems/gems/templater-1.0.0/lib/templater/cli/manifold.rb +0 -59
- data/vendor/gems/gems/templater-1.0.0/lib/templater/cli/parser.rb +0 -85
- data/vendor/gems/gems/templater-1.0.0/lib/templater/core_ext/kernel.rb +0 -14
- data/vendor/gems/gems/templater-1.0.0/lib/templater/core_ext/string.rb +0 -17
- data/vendor/gems/gems/templater-1.0.0/lib/templater/description.rb +0 -78
- data/vendor/gems/gems/templater-1.0.0/lib/templater/discovery.rb +0 -86
- data/vendor/gems/gems/templater-1.0.0/lib/templater/generator.rb +0 -644
- data/vendor/gems/gems/templater-1.0.0/lib/templater/manifold.rb +0 -98
- data/vendor/gems/gems/templater-1.0.0/lib/templater/spec/helpers.rb +0 -67
- data/vendor/gems/gems/templater-1.0.0/script/console +0 -10
- data/vendor/gems/gems/templater-1.0.0/script/destroy +0 -14
- data/vendor/gems/gems/templater-1.0.0/script/generate +0 -14
- data/vendor/gems/gems/templater-1.0.0/spec/actions/directory_spec.rb +0 -21
- data/vendor/gems/gems/templater-1.0.0/spec/actions/empty_directory_spec.rb +0 -108
- data/vendor/gems/gems/templater-1.0.0/spec/actions/file_spec.rb +0 -112
- data/vendor/gems/gems/templater-1.0.0/spec/actions/template_spec.rb +0 -141
- data/vendor/gems/gems/templater-1.0.0/spec/core_ext/string_spec.rb +0 -39
- data/vendor/gems/gems/templater-1.0.0/spec/generator/actions_spec.rb +0 -111
- data/vendor/gems/gems/templater-1.0.0/spec/generator/arguments_spec.rb +0 -225
- data/vendor/gems/gems/templater-1.0.0/spec/generator/desc_spec.rb +0 -10
- data/vendor/gems/gems/templater-1.0.0/spec/generator/destination_root_spec.rb +0 -9
- data/vendor/gems/gems/templater-1.0.0/spec/generator/empty_directories_spec.rb +0 -148
- data/vendor/gems/gems/templater-1.0.0/spec/generator/files_spec.rb +0 -199
- data/vendor/gems/gems/templater-1.0.0/spec/generator/generators_spec.rb +0 -63
- data/vendor/gems/gems/templater-1.0.0/spec/generator/glob_spec.rb +0 -94
- data/vendor/gems/gems/templater-1.0.0/spec/generator/invocations_spec.rb +0 -173
- data/vendor/gems/gems/templater-1.0.0/spec/generator/invoke_spec.rb +0 -21
- data/vendor/gems/gems/templater-1.0.0/spec/generator/options_spec.rb +0 -46
- data/vendor/gems/gems/templater-1.0.0/spec/generator/render_spec.rb +0 -21
- data/vendor/gems/gems/templater-1.0.0/spec/generator/source_root_spec.rb +0 -18
- data/vendor/gems/gems/templater-1.0.0/spec/generator/templates_spec.rb +0 -209
- data/vendor/gems/gems/templater-1.0.0/spec/manifold_spec.rb +0 -146
- data/vendor/gems/gems/templater-1.0.0/spec/options_parser_spec.rb +0 -20
- data/vendor/gems/gems/templater-1.0.0/spec/results/erb.rbs +0 -1
- data/vendor/gems/gems/templater-1.0.0/spec/results/file.rbs +0 -1
- data/vendor/gems/gems/templater-1.0.0/spec/results/random.rbs +0 -1
- data/vendor/gems/gems/templater-1.0.0/spec/results/simple_erb.rbs +0 -1
- data/vendor/gems/gems/templater-1.0.0/spec/spec_helper.rb +0 -65
- data/vendor/gems/gems/templater-1.0.0/spec/spec_helpers_spec.rb +0 -85
- data/vendor/gems/gems/templater-1.0.0/spec/templater_spec.rb +0 -7
- data/vendor/gems/gems/templater-1.0.0/spec/templates/erb.rbt +0 -1
- data/vendor/gems/gems/templater-1.0.0/spec/templates/glob/README +0 -1
- data/vendor/gems/gems/templater-1.0.0/spec/templates/glob/arg.js +0 -3
- data/vendor/gems/gems/templater-1.0.0/spec/templates/glob/hellothar.%feh% +0 -1
- data/vendor/gems/gems/templater-1.0.0/spec/templates/glob/hellothar.html.%feh% +0 -1
- data/vendor/gems/gems/templater-1.0.0/spec/templates/glob/subfolder/jessica_alba.jpg +0 -1
- data/vendor/gems/gems/templater-1.0.0/spec/templates/glob/subfolder/monkey.rb +0 -1
- data/vendor/gems/gems/templater-1.0.0/spec/templates/glob/test.rb +0 -1
- data/vendor/gems/gems/templater-1.0.0/spec/templates/literals_erb.rbt +0 -1
- data/vendor/gems/gems/templater-1.0.0/spec/templates/simple.rbt +0 -1
- data/vendor/gems/gems/templater-1.0.0/spec/templates/simple_erb.rbt +0 -1
- data/vendor/gems/gems/templater-1.0.0/templater.gemspec +0 -54
- data/vendor/gems/gems/term-ansicolor-1.0.4/CHANGES +0 -22
- data/vendor/gems/gems/term-ansicolor-1.0.4/COPYING +0 -340
- data/vendor/gems/gems/term-ansicolor-1.0.4/README +0 -31
- data/vendor/gems/gems/term-ansicolor-1.0.4/Rakefile +0 -86
- data/vendor/gems/gems/term-ansicolor-1.0.4/VERSION +0 -1
- data/vendor/gems/gems/term-ansicolor-1.0.4/doc-main.txt +0 -119
- data/vendor/gems/gems/term-ansicolor-1.0.4/examples/cdiff.rb +0 -19
- data/vendor/gems/gems/term-ansicolor-1.0.4/examples/example.rb +0 -89
- data/vendor/gems/gems/term-ansicolor-1.0.4/install.rb +0 -15
- data/vendor/gems/gems/term-ansicolor-1.0.4/lib/term/ansicolor.rb +0 -102
- data/vendor/gems/gems/term-ansicolor-1.0.4/lib/term/ansicolor/version.rb +0 -10
- data/vendor/gems/gems/term-ansicolor-1.0.4/term-ansicolor.gemspec +0 -20
- data/vendor/gems/gems/thin-1.2.5/CHANGELOG +0 -268
- data/vendor/gems/gems/thin-1.2.5/COPYING +0 -18
- data/vendor/gems/gems/thin-1.2.5/README +0 -69
- data/vendor/gems/gems/thin-1.2.5/Rakefile +0 -36
- data/vendor/gems/gems/thin-1.2.5/benchmark/abc +0 -51
- data/vendor/gems/gems/thin-1.2.5/benchmark/benchmarker.rb +0 -80
- data/vendor/gems/gems/thin-1.2.5/benchmark/runner +0 -82
- data/vendor/gems/gems/thin-1.2.5/bin/thin +0 -6
- data/vendor/gems/gems/thin-1.2.5/example/adapter.rb +0 -32
- data/vendor/gems/gems/thin-1.2.5/example/async_app.ru +0 -126
- data/vendor/gems/gems/thin-1.2.5/example/async_chat.ru +0 -247
- data/vendor/gems/gems/thin-1.2.5/example/async_tailer.ru +0 -100
- data/vendor/gems/gems/thin-1.2.5/example/config.ru +0 -22
- data/vendor/gems/gems/thin-1.2.5/example/monit_sockets +0 -20
- data/vendor/gems/gems/thin-1.2.5/example/monit_unixsock +0 -20
- data/vendor/gems/gems/thin-1.2.5/example/myapp.rb +0 -1
- data/vendor/gems/gems/thin-1.2.5/example/ramaze.ru +0 -12
- data/vendor/gems/gems/thin-1.2.5/example/thin.god +0 -80
- data/vendor/gems/gems/thin-1.2.5/example/thin_solaris_smf.erb +0 -36
- data/vendor/gems/gems/thin-1.2.5/example/thin_solaris_smf.readme.txt +0 -150
- data/vendor/gems/gems/thin-1.2.5/example/vlad.rake +0 -64
- data/vendor/gems/gems/thin-1.2.5/ext/thin_parser/Makefile +0 -157
- data/vendor/gems/gems/thin-1.2.5/ext/thin_parser/common.rl +0 -55
- data/vendor/gems/gems/thin-1.2.5/ext/thin_parser/ext_help.h +0 -14
- data/vendor/gems/gems/thin-1.2.5/ext/thin_parser/extconf.rb +0 -6
- data/vendor/gems/gems/thin-1.2.5/ext/thin_parser/mkmf.log +0 -12
- data/vendor/gems/gems/thin-1.2.5/ext/thin_parser/parser.c +0 -452
- data/vendor/gems/gems/thin-1.2.5/ext/thin_parser/parser.h +0 -49
- data/vendor/gems/gems/thin-1.2.5/ext/thin_parser/parser.o +0 -0
- data/vendor/gems/gems/thin-1.2.5/ext/thin_parser/parser.rl +0 -157
- data/vendor/gems/gems/thin-1.2.5/ext/thin_parser/thin.c +0 -433
- data/vendor/gems/gems/thin-1.2.5/ext/thin_parser/thin.o +0 -0
- data/vendor/gems/gems/thin-1.2.5/ext/thin_parser/thin_parser.bundle +0 -0
- data/vendor/gems/gems/thin-1.2.5/lib/rack/adapter/loader.rb +0 -79
- data/vendor/gems/gems/thin-1.2.5/lib/rack/adapter/rails.rb +0 -180
- data/vendor/gems/gems/thin-1.2.5/lib/thin.rb +0 -46
- data/vendor/gems/gems/thin-1.2.5/lib/thin/backends/base.rb +0 -141
- data/vendor/gems/gems/thin-1.2.5/lib/thin/backends/swiftiply_client.rb +0 -56
- data/vendor/gems/gems/thin-1.2.5/lib/thin/backends/tcp_server.rb +0 -29
- data/vendor/gems/gems/thin-1.2.5/lib/thin/backends/unix_server.rb +0 -51
- data/vendor/gems/gems/thin-1.2.5/lib/thin/command.rb +0 -53
- data/vendor/gems/gems/thin-1.2.5/lib/thin/connection.rb +0 -222
- data/vendor/gems/gems/thin-1.2.5/lib/thin/controllers/cluster.rb +0 -178
- data/vendor/gems/gems/thin-1.2.5/lib/thin/controllers/controller.rb +0 -183
- data/vendor/gems/gems/thin-1.2.5/lib/thin/controllers/service.rb +0 -75
- data/vendor/gems/gems/thin-1.2.5/lib/thin/controllers/service.sh.erb +0 -39
- data/vendor/gems/gems/thin-1.2.5/lib/thin/daemonizing.rb +0 -174
- data/vendor/gems/gems/thin-1.2.5/lib/thin/headers.rb +0 -39
- data/vendor/gems/gems/thin-1.2.5/lib/thin/logging.rb +0 -54
- data/vendor/gems/gems/thin-1.2.5/lib/thin/request.rb +0 -157
- data/vendor/gems/gems/thin-1.2.5/lib/thin/response.rb +0 -101
- data/vendor/gems/gems/thin-1.2.5/lib/thin/runner.rb +0 -212
- data/vendor/gems/gems/thin-1.2.5/lib/thin/server.rb +0 -247
- data/vendor/gems/gems/thin-1.2.5/lib/thin/stats.html.erb +0 -216
- data/vendor/gems/gems/thin-1.2.5/lib/thin/stats.rb +0 -52
- data/vendor/gems/gems/thin-1.2.5/lib/thin/statuses.rb +0 -43
- data/vendor/gems/gems/thin-1.2.5/lib/thin/version.rb +0 -32
- data/vendor/gems/gems/thin-1.2.5/lib/thin_parser.bundle +0 -0
- data/vendor/gems/gems/thin-1.2.5/spec/backends/swiftiply_client_spec.rb +0 -66
- data/vendor/gems/gems/thin-1.2.5/spec/backends/tcp_server_spec.rb +0 -33
- data/vendor/gems/gems/thin-1.2.5/spec/backends/unix_server_spec.rb +0 -37
- data/vendor/gems/gems/thin-1.2.5/spec/command_spec.rb +0 -25
- data/vendor/gems/gems/thin-1.2.5/spec/configs/cluster.yml +0 -9
- data/vendor/gems/gems/thin-1.2.5/spec/configs/single.yml +0 -9
- data/vendor/gems/gems/thin-1.2.5/spec/connection_spec.rb +0 -106
- data/vendor/gems/gems/thin-1.2.5/spec/controllers/cluster_spec.rb +0 -267
- data/vendor/gems/gems/thin-1.2.5/spec/controllers/controller_spec.rb +0 -129
- data/vendor/gems/gems/thin-1.2.5/spec/controllers/service_spec.rb +0 -50
- data/vendor/gems/gems/thin-1.2.5/spec/daemonizing_spec.rb +0 -192
- data/vendor/gems/gems/thin-1.2.5/spec/headers_spec.rb +0 -40
- data/vendor/gems/gems/thin-1.2.5/spec/logging_spec.rb +0 -46
- data/vendor/gems/gems/thin-1.2.5/spec/perf/request_perf_spec.rb +0 -50
- data/vendor/gems/gems/thin-1.2.5/spec/perf/response_perf_spec.rb +0 -19
- data/vendor/gems/gems/thin-1.2.5/spec/perf/server_perf_spec.rb +0 -39
- data/vendor/gems/gems/thin-1.2.5/spec/rack/loader_spec.rb +0 -29
- data/vendor/gems/gems/thin-1.2.5/spec/rack/rails_adapter_spec.rb +0 -106
- data/vendor/gems/gems/thin-1.2.5/spec/rails_app/app/controllers/application.rb +0 -10
- data/vendor/gems/gems/thin-1.2.5/spec/rails_app/app/controllers/simple_controller.rb +0 -19
- data/vendor/gems/gems/thin-1.2.5/spec/rails_app/app/helpers/application_helper.rb +0 -3
- data/vendor/gems/gems/thin-1.2.5/spec/rails_app/app/views/simple/index.html.erb +0 -15
- data/vendor/gems/gems/thin-1.2.5/spec/rails_app/config/boot.rb +0 -109
- data/vendor/gems/gems/thin-1.2.5/spec/rails_app/config/environment.rb +0 -64
- data/vendor/gems/gems/thin-1.2.5/spec/rails_app/config/environments/development.rb +0 -18
- data/vendor/gems/gems/thin-1.2.5/spec/rails_app/config/environments/production.rb +0 -19
- data/vendor/gems/gems/thin-1.2.5/spec/rails_app/config/environments/test.rb +0 -22
- data/vendor/gems/gems/thin-1.2.5/spec/rails_app/config/initializers/inflections.rb +0 -10
- data/vendor/gems/gems/thin-1.2.5/spec/rails_app/config/initializers/mime_types.rb +0 -5
- data/vendor/gems/gems/thin-1.2.5/spec/rails_app/config/routes.rb +0 -35
- data/vendor/gems/gems/thin-1.2.5/spec/rails_app/public/404.html +0 -30
- data/vendor/gems/gems/thin-1.2.5/spec/rails_app/public/422.html +0 -30
- data/vendor/gems/gems/thin-1.2.5/spec/rails_app/public/500.html +0 -30
- data/vendor/gems/gems/thin-1.2.5/spec/rails_app/public/dispatch.cgi +0 -10
- data/vendor/gems/gems/thin-1.2.5/spec/rails_app/public/dispatch.fcgi +0 -24
- data/vendor/gems/gems/thin-1.2.5/spec/rails_app/public/dispatch.rb +0 -10
- data/vendor/gems/gems/thin-1.2.5/spec/rails_app/public/favicon.ico +0 -0
- data/vendor/gems/gems/thin-1.2.5/spec/rails_app/public/images/rails.png +0 -0
- data/vendor/gems/gems/thin-1.2.5/spec/rails_app/public/index.html +0 -277
- data/vendor/gems/gems/thin-1.2.5/spec/rails_app/public/javascripts/application.js +0 -2
- data/vendor/gems/gems/thin-1.2.5/spec/rails_app/public/javascripts/controls.js +0 -963
- data/vendor/gems/gems/thin-1.2.5/spec/rails_app/public/javascripts/dragdrop.js +0 -972
- data/vendor/gems/gems/thin-1.2.5/spec/rails_app/public/javascripts/effects.js +0 -1120
- data/vendor/gems/gems/thin-1.2.5/spec/rails_app/public/javascripts/prototype.js +0 -4225
- data/vendor/gems/gems/thin-1.2.5/spec/rails_app/public/robots.txt +0 -5
- data/vendor/gems/gems/thin-1.2.5/spec/rails_app/script/about +0 -3
- data/vendor/gems/gems/thin-1.2.5/spec/rails_app/script/console +0 -3
- data/vendor/gems/gems/thin-1.2.5/spec/rails_app/script/destroy +0 -3
- data/vendor/gems/gems/thin-1.2.5/spec/rails_app/script/generate +0 -3
- data/vendor/gems/gems/thin-1.2.5/spec/rails_app/script/performance/benchmarker +0 -3
- data/vendor/gems/gems/thin-1.2.5/spec/rails_app/script/performance/profiler +0 -3
- data/vendor/gems/gems/thin-1.2.5/spec/rails_app/script/performance/request +0 -3
- data/vendor/gems/gems/thin-1.2.5/spec/rails_app/script/plugin +0 -3
- data/vendor/gems/gems/thin-1.2.5/spec/rails_app/script/process/inspector +0 -3
- data/vendor/gems/gems/thin-1.2.5/spec/rails_app/script/process/reaper +0 -3
- data/vendor/gems/gems/thin-1.2.5/spec/rails_app/script/process/spawner +0 -3
- data/vendor/gems/gems/thin-1.2.5/spec/rails_app/script/runner +0 -3
- data/vendor/gems/gems/thin-1.2.5/spec/rails_app/script/server +0 -3
- data/vendor/gems/gems/thin-1.2.5/spec/request/mongrel_spec.rb +0 -39
- data/vendor/gems/gems/thin-1.2.5/spec/request/parser_spec.rb +0 -215
- data/vendor/gems/gems/thin-1.2.5/spec/request/persistent_spec.rb +0 -35
- data/vendor/gems/gems/thin-1.2.5/spec/request/processing_spec.rb +0 -49
- data/vendor/gems/gems/thin-1.2.5/spec/response_spec.rb +0 -91
- data/vendor/gems/gems/thin-1.2.5/spec/runner_spec.rb +0 -168
- data/vendor/gems/gems/thin-1.2.5/spec/server/builder_spec.rb +0 -44
- data/vendor/gems/gems/thin-1.2.5/spec/server/pipelining_spec.rb +0 -110
- data/vendor/gems/gems/thin-1.2.5/spec/server/robustness_spec.rb +0 -34
- data/vendor/gems/gems/thin-1.2.5/spec/server/stopping_spec.rb +0 -55
- data/vendor/gems/gems/thin-1.2.5/spec/server/swiftiply.yml +0 -6
- data/vendor/gems/gems/thin-1.2.5/spec/server/swiftiply_spec.rb +0 -32
- data/vendor/gems/gems/thin-1.2.5/spec/server/tcp_spec.rb +0 -57
- data/vendor/gems/gems/thin-1.2.5/spec/server/threaded_spec.rb +0 -27
- data/vendor/gems/gems/thin-1.2.5/spec/server/unix_socket_spec.rb +0 -26
- data/vendor/gems/gems/thin-1.2.5/spec/server_spec.rb +0 -96
- data/vendor/gems/gems/thin-1.2.5/spec/spec_helper.rb +0 -219
- data/vendor/gems/gems/thin-1.2.5/tasks/announce.rake +0 -22
- data/vendor/gems/gems/thin-1.2.5/tasks/deploy.rake +0 -13
- data/vendor/gems/gems/thin-1.2.5/tasks/email.erb +0 -30
- data/vendor/gems/gems/thin-1.2.5/tasks/gem.rake +0 -74
- data/vendor/gems/gems/thin-1.2.5/tasks/rdoc.rake +0 -25
- data/vendor/gems/gems/thin-1.2.5/tasks/site.rake +0 -15
- data/vendor/gems/gems/thin-1.2.5/tasks/spec.rake +0 -43
- data/vendor/gems/gems/thin-1.2.5/tasks/stats.rake +0 -28
- data/vendor/gems/gems/treetop-1.4.2/LICENSE +0 -19
- data/vendor/gems/gems/treetop-1.4.2/README.md +0 -164
- data/vendor/gems/gems/treetop-1.4.2/Rakefile +0 -19
- data/vendor/gems/gems/treetop-1.4.2/bin/tt +0 -112
- data/vendor/gems/gems/treetop-1.4.2/doc/contributing_and_planned_features.markdown +0 -103
- data/vendor/gems/gems/treetop-1.4.2/doc/grammar_composition.markdown +0 -65
- data/vendor/gems/gems/treetop-1.4.2/doc/index.markdown +0 -90
- data/vendor/gems/gems/treetop-1.4.2/doc/pitfalls_and_advanced_techniques.markdown +0 -51
- data/vendor/gems/gems/treetop-1.4.2/doc/semantic_interpretation.markdown +0 -189
- data/vendor/gems/gems/treetop-1.4.2/doc/site.rb +0 -112
- data/vendor/gems/gems/treetop-1.4.2/doc/sitegen.rb +0 -65
- data/vendor/gems/gems/treetop-1.4.2/doc/syntactic_recognition.markdown +0 -100
- data/vendor/gems/gems/treetop-1.4.2/doc/using_in_ruby.markdown +0 -21
- data/vendor/gems/gems/treetop-1.4.2/examples/lambda_calculus/arithmetic.rb +0 -551
- data/vendor/gems/gems/treetop-1.4.2/examples/lambda_calculus/arithmetic.treetop +0 -97
- data/vendor/gems/gems/treetop-1.4.2/examples/lambda_calculus/arithmetic_node_classes.rb +0 -7
- data/vendor/gems/gems/treetop-1.4.2/examples/lambda_calculus/arithmetic_test.rb +0 -54
- data/vendor/gems/gems/treetop-1.4.2/examples/lambda_calculus/lambda_calculus +0 -0
- data/vendor/gems/gems/treetop-1.4.2/examples/lambda_calculus/lambda_calculus.rb +0 -718
- data/vendor/gems/gems/treetop-1.4.2/examples/lambda_calculus/lambda_calculus.treetop +0 -132
- data/vendor/gems/gems/treetop-1.4.2/examples/lambda_calculus/lambda_calculus_node_classes.rb +0 -5
- data/vendor/gems/gems/treetop-1.4.2/examples/lambda_calculus/lambda_calculus_test.rb +0 -89
- data/vendor/gems/gems/treetop-1.4.2/examples/lambda_calculus/test_helper.rb +0 -18
- data/vendor/gems/gems/treetop-1.4.2/lib/treetop.rb +0 -16
- data/vendor/gems/gems/treetop-1.4.2/lib/treetop/bootstrap_gen_1_metagrammar.rb +0 -45
- data/vendor/gems/gems/treetop-1.4.2/lib/treetop/compiler.rb +0 -6
- data/vendor/gems/gems/treetop-1.4.2/lib/treetop/compiler/grammar_compiler.rb +0 -44
- data/vendor/gems/gems/treetop-1.4.2/lib/treetop/compiler/lexical_address_space.rb +0 -17
- data/vendor/gems/gems/treetop-1.4.2/lib/treetop/compiler/metagrammar.rb +0 -3258
- data/vendor/gems/gems/treetop-1.4.2/lib/treetop/compiler/metagrammar.treetop +0 -436
- data/vendor/gems/gems/treetop-1.4.2/lib/treetop/compiler/node_classes.rb +0 -20
- data/vendor/gems/gems/treetop-1.4.2/lib/treetop/compiler/node_classes/anything_symbol.rb +0 -18
- data/vendor/gems/gems/treetop-1.4.2/lib/treetop/compiler/node_classes/atomic_expression.rb +0 -14
- data/vendor/gems/gems/treetop-1.4.2/lib/treetop/compiler/node_classes/character_class.rb +0 -28
- data/vendor/gems/gems/treetop-1.4.2/lib/treetop/compiler/node_classes/choice.rb +0 -31
- data/vendor/gems/gems/treetop-1.4.2/lib/treetop/compiler/node_classes/declaration_sequence.rb +0 -24
- data/vendor/gems/gems/treetop-1.4.2/lib/treetop/compiler/node_classes/grammar.rb +0 -28
- data/vendor/gems/gems/treetop-1.4.2/lib/treetop/compiler/node_classes/inline_module.rb +0 -27
- data/vendor/gems/gems/treetop-1.4.2/lib/treetop/compiler/node_classes/nonterminal.rb +0 -13
- data/vendor/gems/gems/treetop-1.4.2/lib/treetop/compiler/node_classes/optional.rb +0 -19
- data/vendor/gems/gems/treetop-1.4.2/lib/treetop/compiler/node_classes/parenthesized_expression.rb +0 -9
- data/vendor/gems/gems/treetop-1.4.2/lib/treetop/compiler/node_classes/parsing_expression.rb +0 -146
- data/vendor/gems/gems/treetop-1.4.2/lib/treetop/compiler/node_classes/parsing_rule.rb +0 -55
- data/vendor/gems/gems/treetop-1.4.2/lib/treetop/compiler/node_classes/predicate.rb +0 -45
- data/vendor/gems/gems/treetop-1.4.2/lib/treetop/compiler/node_classes/predicate_block.rb +0 -16
- data/vendor/gems/gems/treetop-1.4.2/lib/treetop/compiler/node_classes/repetition.rb +0 -55
- data/vendor/gems/gems/treetop-1.4.2/lib/treetop/compiler/node_classes/sequence.rb +0 -71
- data/vendor/gems/gems/treetop-1.4.2/lib/treetop/compiler/node_classes/terminal.rb +0 -20
- data/vendor/gems/gems/treetop-1.4.2/lib/treetop/compiler/node_classes/transient_prefix.rb +0 -9
- data/vendor/gems/gems/treetop-1.4.2/lib/treetop/compiler/node_classes/treetop_file.rb +0 -9
- data/vendor/gems/gems/treetop-1.4.2/lib/treetop/compiler/ruby_builder.rb +0 -113
- data/vendor/gems/gems/treetop-1.4.2/lib/treetop/ruby_extensions.rb +0 -2
- data/vendor/gems/gems/treetop-1.4.2/lib/treetop/ruby_extensions/string.rb +0 -42
- data/vendor/gems/gems/treetop-1.4.2/lib/treetop/runtime.rb +0 -5
- data/vendor/gems/gems/treetop-1.4.2/lib/treetop/runtime/compiled_parser.rb +0 -109
- data/vendor/gems/gems/treetop-1.4.2/lib/treetop/runtime/interval_skip_list.rb +0 -4
- data/vendor/gems/gems/treetop-1.4.2/lib/treetop/runtime/interval_skip_list/head_node.rb +0 -15
- data/vendor/gems/gems/treetop-1.4.2/lib/treetop/runtime/interval_skip_list/interval_skip_list.rb +0 -200
- data/vendor/gems/gems/treetop-1.4.2/lib/treetop/runtime/interval_skip_list/node.rb +0 -164
- data/vendor/gems/gems/treetop-1.4.2/lib/treetop/runtime/syntax_node.rb +0 -114
- data/vendor/gems/gems/treetop-1.4.2/lib/treetop/runtime/terminal_parse_failure.rb +0 -16
- data/vendor/gems/gems/treetop-1.4.2/lib/treetop/runtime/terminal_parse_failure_debug.rb +0 -21
- data/vendor/gems/gems/treetop-1.4.2/lib/treetop/runtime/terminal_syntax_node.rb +0 -17
- data/vendor/gems/gems/treetop-1.4.2/lib/treetop/version.rb +0 -9
- data/vendor/gems/gems/yui-compressor-0.9.1/Rakefile +0 -21
- data/vendor/gems/gems/yui-compressor-0.9.1/lib/yui/compressor.rb +0 -200
- data/vendor/gems/gems/yui-compressor-0.9.1/test/compressor_test.rb +0 -94
- data/vendor/gems/gems/yui-compressor-0.9.1/vendor/yuicompressor-2.4.2.jar +0 -0
- data/vendor/gems/specifications/builder-2.1.2.gemspec +0 -33
- data/vendor/gems/specifications/compass-0.8.17.gemspec +0 -36
- data/vendor/gems/specifications/configuration-1.1.0.gemspec +0 -27
- data/vendor/gems/specifications/cucumber-0.4.4.gemspec +0 -72
- data/vendor/gems/specifications/daemons-1.0.10.gemspec +0 -30
- data/vendor/gems/specifications/diff-lcs-1.1.2.gemspec +0 -34
- data/vendor/gems/specifications/eventmachine-0.12.10.gemspec +0 -40
- data/vendor/gems/specifications/extlib-0.9.13.gemspec +0 -28
- data/vendor/gems/specifications/haml-2.2.13.gemspec +0 -45
- data/vendor/gems/specifications/highline-1.5.1.gemspec +0 -31
- data/vendor/gems/specifications/json-1.2.0.gemspec +0 -34
- data/vendor/gems/specifications/launchy-0.3.3.gemspec +0 -38
- data/vendor/gems/specifications/polyglot-0.2.9.gemspec +0 -34
- data/vendor/gems/specifications/rack-1.0.1.gemspec +0 -53
- data/vendor/gems/specifications/rack-test-0.5.2.gemspec +0 -36
- data/vendor/gems/specifications/rake-0.8.7.gemspec +0 -32
- data/vendor/gems/specifications/rdoc-2.4.3.gemspec +0 -47
- data/vendor/gems/specifications/rspec-1.2.9.gemspec +0 -58
- data/vendor/gems/specifications/sdoc-0.2.14.1.gemspec +0 -35
- data/vendor/gems/specifications/shotgun-0.4.gemspec +0 -37
- data/vendor/gems/specifications/sinatra-0.9.4.gemspec +0 -40
- data/vendor/gems/specifications/sinatra-content-for-0.2.gemspec +0 -40
- data/vendor/gems/specifications/sprockets-1.0.2.gemspec +0 -31
- data/vendor/gems/specifications/templater-1.0.0.gemspec +0 -54
- data/vendor/gems/specifications/term-ansicolor-1.0.4.gemspec +0 -30
- data/vendor/gems/specifications/thin-1.2.5.gemspec +0 -41
- data/vendor/gems/specifications/treetop-1.4.2.gemspec +0 -32
- data/vendor/gems/specifications/yui-compressor-0.9.1.gemspec +0 -29
@@ -1,424 +0,0 @@
|
|
1
|
-
/*****************************************************************************
|
2
|
-
|
3
|
-
$Id$
|
4
|
-
|
5
|
-
File: ed.h
|
6
|
-
Date: 06Apr06
|
7
|
-
|
8
|
-
Copyright (C) 2006-07 by Francis Cianfrocca. All Rights Reserved.
|
9
|
-
Gmail: blackhedd
|
10
|
-
|
11
|
-
This program is free software; you can redistribute it and/or modify
|
12
|
-
it under the terms of either: 1) the GNU General Public License
|
13
|
-
as published by the Free Software Foundation; either version 2 of the
|
14
|
-
License, or (at your option) any later version; or 2) Ruby's License.
|
15
|
-
|
16
|
-
See the file COPYING for complete licensing information.
|
17
|
-
|
18
|
-
*****************************************************************************/
|
19
|
-
|
20
|
-
#ifndef __EventableDescriptor__H_
|
21
|
-
#define __EventableDescriptor__H_
|
22
|
-
|
23
|
-
|
24
|
-
class EventMachine_t; // forward reference
|
25
|
-
#ifdef WITH_SSL
|
26
|
-
class SslBox_t; // forward reference
|
27
|
-
#endif
|
28
|
-
|
29
|
-
bool SetSocketNonblocking (SOCKET);
|
30
|
-
|
31
|
-
|
32
|
-
/*************************
|
33
|
-
class EventableDescriptor
|
34
|
-
*************************/
|
35
|
-
|
36
|
-
class EventableDescriptor: public Bindable_t
|
37
|
-
{
|
38
|
-
public:
|
39
|
-
EventableDescriptor (int, EventMachine_t*);
|
40
|
-
virtual ~EventableDescriptor();
|
41
|
-
|
42
|
-
int GetSocket() {return MySocket;}
|
43
|
-
void SetSocketInvalid() { MySocket = INVALID_SOCKET; }
|
44
|
-
void Close();
|
45
|
-
|
46
|
-
virtual void Read() = 0;
|
47
|
-
virtual void Write() = 0;
|
48
|
-
virtual void Heartbeat() = 0;
|
49
|
-
|
50
|
-
// These methods tell us whether the descriptor
|
51
|
-
// should be selected or polled for read/write.
|
52
|
-
virtual bool SelectForRead() = 0;
|
53
|
-
virtual bool SelectForWrite() = 0;
|
54
|
-
|
55
|
-
// are we scheduled for a close, or in an error state, or already closed?
|
56
|
-
bool ShouldDelete();
|
57
|
-
// Do we have any data to write? This is used by ShouldDelete.
|
58
|
-
virtual int GetOutboundDataSize() {return 0;}
|
59
|
-
virtual bool IsWatchOnly(){ return false; }
|
60
|
-
|
61
|
-
virtual void ScheduleClose (bool after_writing);
|
62
|
-
bool IsCloseScheduled();
|
63
|
-
virtual void HandleError(){ ScheduleClose (false); }
|
64
|
-
|
65
|
-
void SetEventCallback (void (*cb)(const unsigned long, int, const char*, const unsigned long));
|
66
|
-
|
67
|
-
virtual bool GetPeername (struct sockaddr*) {return false;}
|
68
|
-
virtual bool GetSockname (struct sockaddr*) {return false;}
|
69
|
-
virtual bool GetSubprocessPid (pid_t*) {return false;}
|
70
|
-
|
71
|
-
virtual void StartTls() {}
|
72
|
-
virtual void SetTlsParms (const char *privkey_filename, const char *certchain_filename, bool verify_peer) {}
|
73
|
-
|
74
|
-
#ifdef WITH_SSL
|
75
|
-
virtual X509 *GetPeerCert() {return NULL;}
|
76
|
-
#endif
|
77
|
-
|
78
|
-
virtual float GetCommInactivityTimeout() {return 0.0;}
|
79
|
-
virtual int SetCommInactivityTimeout (float value) {return 0;}
|
80
|
-
float GetPendingConnectTimeout();
|
81
|
-
int SetPendingConnectTimeout (float value);
|
82
|
-
|
83
|
-
#ifdef HAVE_EPOLL
|
84
|
-
struct epoll_event *GetEpollEvent() { return &EpollEvent; }
|
85
|
-
#endif
|
86
|
-
|
87
|
-
virtual void StartProxy(const unsigned long, const unsigned long);
|
88
|
-
virtual void StopProxy();
|
89
|
-
virtual void SetProxiedFrom(EventableDescriptor*, const unsigned long);
|
90
|
-
virtual int SendOutboundData(const char*,int){ return -1; }
|
91
|
-
virtual bool IsPaused(){ return false; }
|
92
|
-
virtual bool Pause(){ return false; }
|
93
|
-
virtual bool Resume(){ return false; }
|
94
|
-
|
95
|
-
private:
|
96
|
-
bool bCloseNow;
|
97
|
-
bool bCloseAfterWriting;
|
98
|
-
|
99
|
-
protected:
|
100
|
-
int MySocket;
|
101
|
-
|
102
|
-
void (*EventCallback)(const unsigned long, int, const char*, const unsigned long);
|
103
|
-
void _GenericInboundDispatch(const char*, int);
|
104
|
-
|
105
|
-
Int64 CreatedAt;
|
106
|
-
bool bCallbackUnbind;
|
107
|
-
int UnbindReasonCode;
|
108
|
-
EventableDescriptor *ProxyTarget;
|
109
|
-
EventableDescriptor *ProxiedFrom;
|
110
|
-
|
111
|
-
unsigned long MaxOutboundBufSize;
|
112
|
-
|
113
|
-
#ifdef HAVE_EPOLL
|
114
|
-
struct epoll_event EpollEvent;
|
115
|
-
#endif
|
116
|
-
|
117
|
-
EventMachine_t *MyEventMachine;
|
118
|
-
int PendingConnectTimeout;
|
119
|
-
};
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
/*************************
|
124
|
-
class LoopbreakDescriptor
|
125
|
-
*************************/
|
126
|
-
|
127
|
-
class LoopbreakDescriptor: public EventableDescriptor
|
128
|
-
{
|
129
|
-
public:
|
130
|
-
LoopbreakDescriptor (int, EventMachine_t*);
|
131
|
-
virtual ~LoopbreakDescriptor() {}
|
132
|
-
|
133
|
-
virtual void Read();
|
134
|
-
virtual void Write();
|
135
|
-
virtual void Heartbeat() {}
|
136
|
-
|
137
|
-
virtual bool SelectForRead() {return true;}
|
138
|
-
virtual bool SelectForWrite() {return false;}
|
139
|
-
};
|
140
|
-
|
141
|
-
|
142
|
-
/**************************
|
143
|
-
class ConnectionDescriptor
|
144
|
-
**************************/
|
145
|
-
|
146
|
-
class ConnectionDescriptor: public EventableDescriptor
|
147
|
-
{
|
148
|
-
public:
|
149
|
-
ConnectionDescriptor (int, EventMachine_t*);
|
150
|
-
virtual ~ConnectionDescriptor();
|
151
|
-
|
152
|
-
static int SendDataToConnection (const unsigned long, const char*, int);
|
153
|
-
static void CloseConnection (const unsigned long, bool);
|
154
|
-
static int ReportErrorStatus (const unsigned long);
|
155
|
-
|
156
|
-
int SendOutboundData (const char*, int);
|
157
|
-
|
158
|
-
void SetConnectPending (bool f);
|
159
|
-
virtual void ScheduleClose (bool after_writing);
|
160
|
-
virtual void HandleError();
|
161
|
-
|
162
|
-
void SetNotifyReadable (bool);
|
163
|
-
void SetNotifyWritable (bool);
|
164
|
-
void SetWatchOnly (bool);
|
165
|
-
|
166
|
-
bool IsPaused(){ return bPaused; }
|
167
|
-
bool Pause();
|
168
|
-
bool Resume();
|
169
|
-
|
170
|
-
bool IsNotifyReadable(){ return bNotifyReadable; }
|
171
|
-
bool IsNotifyWritable(){ return bNotifyWritable; }
|
172
|
-
virtual bool IsWatchOnly(){ return bWatchOnly; }
|
173
|
-
|
174
|
-
virtual void Read();
|
175
|
-
virtual void Write();
|
176
|
-
virtual void Heartbeat();
|
177
|
-
|
178
|
-
virtual bool SelectForRead();
|
179
|
-
virtual bool SelectForWrite();
|
180
|
-
|
181
|
-
// Do we have any data to write? This is used by ShouldDelete.
|
182
|
-
virtual int GetOutboundDataSize() {return OutboundDataSize;}
|
183
|
-
|
184
|
-
virtual void StartTls();
|
185
|
-
virtual void SetTlsParms (const char *privkey_filename, const char *certchain_filename, bool verify_peer);
|
186
|
-
|
187
|
-
#ifdef WITH_SSL
|
188
|
-
virtual X509 *GetPeerCert();
|
189
|
-
virtual bool VerifySslPeer(const char*);
|
190
|
-
virtual void AcceptSslPeer();
|
191
|
-
#endif
|
192
|
-
|
193
|
-
void SetServerMode() {bIsServer = true;}
|
194
|
-
|
195
|
-
virtual bool GetPeername (struct sockaddr*);
|
196
|
-
virtual bool GetSockname (struct sockaddr*);
|
197
|
-
|
198
|
-
virtual float GetCommInactivityTimeout();
|
199
|
-
virtual int SetCommInactivityTimeout (float value);
|
200
|
-
|
201
|
-
|
202
|
-
protected:
|
203
|
-
struct OutboundPage {
|
204
|
-
OutboundPage (const char *b, int l, int o=0): Buffer(b), Length(l), Offset(o) {}
|
205
|
-
void Free() {if (Buffer) free ((char*)Buffer); }
|
206
|
-
const char *Buffer;
|
207
|
-
int Length;
|
208
|
-
int Offset;
|
209
|
-
};
|
210
|
-
|
211
|
-
protected:
|
212
|
-
bool bPaused;
|
213
|
-
bool bConnectPending;
|
214
|
-
|
215
|
-
bool bNotifyReadable;
|
216
|
-
bool bNotifyWritable;
|
217
|
-
bool bWatchOnly;
|
218
|
-
|
219
|
-
bool bReadAttemptedAfterClose;
|
220
|
-
bool bWriteAttemptedAfterClose;
|
221
|
-
|
222
|
-
deque<OutboundPage> OutboundPages;
|
223
|
-
int OutboundDataSize;
|
224
|
-
|
225
|
-
#ifdef WITH_SSL
|
226
|
-
SslBox_t *SslBox;
|
227
|
-
std::string CertChainFilename;
|
228
|
-
std::string PrivateKeyFilename;
|
229
|
-
bool bHandshakeSignaled;
|
230
|
-
bool bSslVerifyPeer;
|
231
|
-
bool bSslPeerAccepted;
|
232
|
-
#endif
|
233
|
-
|
234
|
-
#ifdef HAVE_KQUEUE
|
235
|
-
bool bGotExtraKqueueEvent;
|
236
|
-
#endif
|
237
|
-
|
238
|
-
bool bIsServer;
|
239
|
-
Int64 LastIo;
|
240
|
-
int InactivityTimeout;
|
241
|
-
|
242
|
-
private:
|
243
|
-
void _UpdateEvents();
|
244
|
-
void _UpdateEvents(bool, bool);
|
245
|
-
void _WriteOutboundData();
|
246
|
-
void _DispatchInboundData (const char *buffer, int size);
|
247
|
-
void _DispatchCiphertext();
|
248
|
-
int _SendRawOutboundData (const char*, int);
|
249
|
-
int _ReportErrorStatus();
|
250
|
-
void _CheckHandshakeStatus();
|
251
|
-
|
252
|
-
};
|
253
|
-
|
254
|
-
|
255
|
-
/************************
|
256
|
-
class DatagramDescriptor
|
257
|
-
************************/
|
258
|
-
|
259
|
-
class DatagramDescriptor: public EventableDescriptor
|
260
|
-
{
|
261
|
-
public:
|
262
|
-
DatagramDescriptor (int, EventMachine_t*);
|
263
|
-
virtual ~DatagramDescriptor();
|
264
|
-
|
265
|
-
virtual void Read();
|
266
|
-
virtual void Write();
|
267
|
-
virtual void Heartbeat();
|
268
|
-
|
269
|
-
virtual bool SelectForRead() {return true;}
|
270
|
-
virtual bool SelectForWrite();
|
271
|
-
|
272
|
-
int SendOutboundData (const char*, int);
|
273
|
-
int SendOutboundDatagram (const char*, int, const char*, int);
|
274
|
-
|
275
|
-
// Do we have any data to write? This is used by ShouldDelete.
|
276
|
-
virtual int GetOutboundDataSize() {return OutboundDataSize;}
|
277
|
-
|
278
|
-
virtual bool GetPeername (struct sockaddr*);
|
279
|
-
virtual bool GetSockname (struct sockaddr*);
|
280
|
-
|
281
|
-
virtual float GetCommInactivityTimeout();
|
282
|
-
virtual int SetCommInactivityTimeout (float value);
|
283
|
-
|
284
|
-
static int SendDatagram (const unsigned long, const char*, int, const char*, int);
|
285
|
-
|
286
|
-
|
287
|
-
protected:
|
288
|
-
struct OutboundPage {
|
289
|
-
OutboundPage (const char *b, int l, struct sockaddr_in f, int o=0): Buffer(b), Length(l), Offset(o), From(f) {}
|
290
|
-
void Free() {if (Buffer) free ((char*)Buffer); }
|
291
|
-
const char *Buffer;
|
292
|
-
int Length;
|
293
|
-
int Offset;
|
294
|
-
struct sockaddr_in From;
|
295
|
-
};
|
296
|
-
|
297
|
-
deque<OutboundPage> OutboundPages;
|
298
|
-
int OutboundDataSize;
|
299
|
-
|
300
|
-
struct sockaddr_in ReturnAddress;
|
301
|
-
|
302
|
-
Int64 LastIo;
|
303
|
-
int InactivityTimeout;
|
304
|
-
};
|
305
|
-
|
306
|
-
|
307
|
-
/************************
|
308
|
-
class AcceptorDescriptor
|
309
|
-
************************/
|
310
|
-
|
311
|
-
class AcceptorDescriptor: public EventableDescriptor
|
312
|
-
{
|
313
|
-
public:
|
314
|
-
AcceptorDescriptor (int, EventMachine_t*);
|
315
|
-
virtual ~AcceptorDescriptor();
|
316
|
-
|
317
|
-
virtual void Read();
|
318
|
-
virtual void Write();
|
319
|
-
virtual void Heartbeat();
|
320
|
-
|
321
|
-
virtual bool SelectForRead() {return true;}
|
322
|
-
virtual bool SelectForWrite() {return false;}
|
323
|
-
|
324
|
-
virtual bool GetSockname (struct sockaddr*);
|
325
|
-
|
326
|
-
static void StopAcceptor (const unsigned long binding);
|
327
|
-
};
|
328
|
-
|
329
|
-
/********************
|
330
|
-
class PipeDescriptor
|
331
|
-
********************/
|
332
|
-
|
333
|
-
#ifdef OS_UNIX
|
334
|
-
class PipeDescriptor: public EventableDescriptor
|
335
|
-
{
|
336
|
-
public:
|
337
|
-
PipeDescriptor (int, pid_t, EventMachine_t*);
|
338
|
-
virtual ~PipeDescriptor();
|
339
|
-
|
340
|
-
virtual void Read();
|
341
|
-
virtual void Write();
|
342
|
-
virtual void Heartbeat();
|
343
|
-
|
344
|
-
virtual bool SelectForRead();
|
345
|
-
virtual bool SelectForWrite();
|
346
|
-
|
347
|
-
int SendOutboundData (const char*, int);
|
348
|
-
virtual int GetOutboundDataSize() {return OutboundDataSize;}
|
349
|
-
|
350
|
-
virtual bool GetSubprocessPid (pid_t*);
|
351
|
-
|
352
|
-
protected:
|
353
|
-
struct OutboundPage {
|
354
|
-
OutboundPage (const char *b, int l, int o=0): Buffer(b), Length(l), Offset(o) {}
|
355
|
-
void Free() {if (Buffer) free ((char*)Buffer); }
|
356
|
-
const char *Buffer;
|
357
|
-
int Length;
|
358
|
-
int Offset;
|
359
|
-
};
|
360
|
-
|
361
|
-
protected:
|
362
|
-
bool bReadAttemptedAfterClose;
|
363
|
-
Int64 LastIo;
|
364
|
-
int InactivityTimeout;
|
365
|
-
|
366
|
-
deque<OutboundPage> OutboundPages;
|
367
|
-
int OutboundDataSize;
|
368
|
-
|
369
|
-
pid_t SubprocessPid;
|
370
|
-
|
371
|
-
private:
|
372
|
-
void _DispatchInboundData (const char *buffer, int size);
|
373
|
-
};
|
374
|
-
#endif // OS_UNIX
|
375
|
-
|
376
|
-
|
377
|
-
/************************
|
378
|
-
class KeyboardDescriptor
|
379
|
-
************************/
|
380
|
-
|
381
|
-
class KeyboardDescriptor: public EventableDescriptor
|
382
|
-
{
|
383
|
-
public:
|
384
|
-
KeyboardDescriptor (EventMachine_t*);
|
385
|
-
virtual ~KeyboardDescriptor();
|
386
|
-
|
387
|
-
virtual void Read();
|
388
|
-
virtual void Write();
|
389
|
-
virtual void Heartbeat();
|
390
|
-
|
391
|
-
virtual bool SelectForRead() {return true;}
|
392
|
-
virtual bool SelectForWrite() {return false;}
|
393
|
-
|
394
|
-
protected:
|
395
|
-
bool bReadAttemptedAfterClose;
|
396
|
-
Int64 LastIo;
|
397
|
-
int InactivityTimeout;
|
398
|
-
|
399
|
-
private:
|
400
|
-
void _DispatchInboundData (const char *buffer, int size);
|
401
|
-
};
|
402
|
-
|
403
|
-
|
404
|
-
/***********************
|
405
|
-
class InotifyDescriptor
|
406
|
-
************************/
|
407
|
-
|
408
|
-
class InotifyDescriptor: public EventableDescriptor
|
409
|
-
{
|
410
|
-
public:
|
411
|
-
InotifyDescriptor (EventMachine_t*);
|
412
|
-
virtual ~InotifyDescriptor();
|
413
|
-
|
414
|
-
void Read();
|
415
|
-
void Write();
|
416
|
-
|
417
|
-
virtual void Heartbeat() {}
|
418
|
-
virtual bool SelectForRead() {return true;}
|
419
|
-
virtual bool SelectForWrite() {return false;}
|
420
|
-
};
|
421
|
-
|
422
|
-
#endif // __EventableDescriptor__H_
|
423
|
-
|
424
|
-
|
@@ -1,2282 +0,0 @@
|
|
1
|
-
/*****************************************************************************
|
2
|
-
|
3
|
-
$Id$
|
4
|
-
|
5
|
-
File: em.cpp
|
6
|
-
Date: 06Apr06
|
7
|
-
|
8
|
-
Copyright (C) 2006-07 by Francis Cianfrocca. All Rights Reserved.
|
9
|
-
Gmail: blackhedd
|
10
|
-
|
11
|
-
This program is free software; you can redistribute it and/or modify
|
12
|
-
it under the terms of either: 1) the GNU General Public License
|
13
|
-
as published by the Free Software Foundation; either version 2 of the
|
14
|
-
License, or (at your option) any later version; or 2) Ruby's License.
|
15
|
-
|
16
|
-
See the file COPYING for complete licensing information.
|
17
|
-
|
18
|
-
*****************************************************************************/
|
19
|
-
|
20
|
-
// THIS ENTIRE FILE WILL EVENTUALLY BE FOR UNIX BUILDS ONLY.
|
21
|
-
//#ifdef OS_UNIX
|
22
|
-
|
23
|
-
|
24
|
-
#include "project.h"
|
25
|
-
|
26
|
-
// Keep a global variable floating around
|
27
|
-
// with the current loop time as set by the Event Machine.
|
28
|
-
// This avoids the need for frequent expensive calls to time(NULL);
|
29
|
-
Int64 gCurrentLoopTime;
|
30
|
-
|
31
|
-
#ifdef OS_WIN32
|
32
|
-
unsigned gTickCountTickover;
|
33
|
-
unsigned gLastTickCount;
|
34
|
-
#endif
|
35
|
-
|
36
|
-
|
37
|
-
/* The numer of max outstanding timers was once a const enum defined in em.h.
|
38
|
-
* Now we define it here so that users can change its value if necessary.
|
39
|
-
*/
|
40
|
-
static unsigned int MaxOutstandingTimers = 10000;
|
41
|
-
|
42
|
-
|
43
|
-
/* Internal helper to convert strings to internet addresses. IPv6-aware.
|
44
|
-
* Not reentrant or threadsafe, optimized for speed.
|
45
|
-
*/
|
46
|
-
static struct sockaddr *name2address (const char *server, int port, int *family, int *bind_size);
|
47
|
-
|
48
|
-
/***************************************
|
49
|
-
STATIC EventMachine_t::GetMaxTimerCount
|
50
|
-
***************************************/
|
51
|
-
|
52
|
-
int EventMachine_t::GetMaxTimerCount()
|
53
|
-
{
|
54
|
-
return MaxOutstandingTimers;
|
55
|
-
}
|
56
|
-
|
57
|
-
|
58
|
-
/***************************************
|
59
|
-
STATIC EventMachine_t::SetMaxTimerCount
|
60
|
-
***************************************/
|
61
|
-
|
62
|
-
void EventMachine_t::SetMaxTimerCount (int count)
|
63
|
-
{
|
64
|
-
/* Allow a user to increase the maximum number of outstanding timers.
|
65
|
-
* If this gets "too high" (a metric that is of course platform dependent),
|
66
|
-
* bad things will happen like performance problems and possible overuse
|
67
|
-
* of memory.
|
68
|
-
* The actual timer mechanism is very efficient so it's hard to know what
|
69
|
-
* the practical max, but 100,000 shouldn't be too problematical.
|
70
|
-
*/
|
71
|
-
if (count < 100)
|
72
|
-
count = 100;
|
73
|
-
MaxOutstandingTimers = count;
|
74
|
-
}
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
/******************************
|
79
|
-
EventMachine_t::EventMachine_t
|
80
|
-
******************************/
|
81
|
-
|
82
|
-
EventMachine_t::EventMachine_t (void (*event_callback)(const unsigned long, int, const char*, const unsigned long)):
|
83
|
-
HeartbeatInterval(2000000),
|
84
|
-
EventCallback (event_callback),
|
85
|
-
NextHeartbeatTime (0),
|
86
|
-
LoopBreakerReader (-1),
|
87
|
-
LoopBreakerWriter (-1),
|
88
|
-
bEpoll (false),
|
89
|
-
epfd (-1),
|
90
|
-
bKqueue (false),
|
91
|
-
kqfd (-1),
|
92
|
-
inotify (NULL)
|
93
|
-
{
|
94
|
-
// Default time-slice is just smaller than one hundred mills.
|
95
|
-
Quantum.tv_sec = 0;
|
96
|
-
Quantum.tv_usec = 90000;
|
97
|
-
|
98
|
-
gTerminateSignalReceived = false;
|
99
|
-
// Make sure the current loop time is sane, in case we do any initializations of
|
100
|
-
// objects before we start running.
|
101
|
-
_UpdateTime();
|
102
|
-
|
103
|
-
/* We initialize the network library here (only on Windows of course)
|
104
|
-
* and initialize "loop breakers." Our destructor also does some network-level
|
105
|
-
* cleanup. There's thus an implicit assumption that any given instance of EventMachine_t
|
106
|
-
* will only call ::Run once. Is that a good assumption? Should we move some of these
|
107
|
-
* inits and de-inits into ::Run?
|
108
|
-
*/
|
109
|
-
#ifdef OS_WIN32
|
110
|
-
WSADATA w;
|
111
|
-
WSAStartup (MAKEWORD (1, 1), &w);
|
112
|
-
#endif
|
113
|
-
|
114
|
-
_InitializeLoopBreaker();
|
115
|
-
}
|
116
|
-
|
117
|
-
|
118
|
-
/*******************************
|
119
|
-
EventMachine_t::~EventMachine_t
|
120
|
-
*******************************/
|
121
|
-
|
122
|
-
EventMachine_t::~EventMachine_t()
|
123
|
-
{
|
124
|
-
// Run down descriptors
|
125
|
-
size_t i;
|
126
|
-
for (i = 0; i < NewDescriptors.size(); i++)
|
127
|
-
delete NewDescriptors[i];
|
128
|
-
for (i = 0; i < Descriptors.size(); i++)
|
129
|
-
delete Descriptors[i];
|
130
|
-
|
131
|
-
close (LoopBreakerReader);
|
132
|
-
close (LoopBreakerWriter);
|
133
|
-
|
134
|
-
// Remove any file watch descriptors
|
135
|
-
while(!Files.empty()) {
|
136
|
-
map<int, Bindable_t*>::iterator f = Files.begin();
|
137
|
-
UnwatchFile (f->first);
|
138
|
-
}
|
139
|
-
|
140
|
-
if (epfd != -1)
|
141
|
-
close (epfd);
|
142
|
-
if (kqfd != -1)
|
143
|
-
close (kqfd);
|
144
|
-
}
|
145
|
-
|
146
|
-
|
147
|
-
/*************************
|
148
|
-
EventMachine_t::_UseEpoll
|
149
|
-
*************************/
|
150
|
-
|
151
|
-
void EventMachine_t::_UseEpoll()
|
152
|
-
{
|
153
|
-
/* Temporary.
|
154
|
-
* Use an internal flag to switch in epoll-based functionality until we determine
|
155
|
-
* how it should be integrated properly and the extent of the required changes.
|
156
|
-
* A permanent solution needs to allow the integration of additional technologies,
|
157
|
-
* like kqueue and Solaris's events.
|
158
|
-
*/
|
159
|
-
|
160
|
-
#ifdef HAVE_EPOLL
|
161
|
-
bEpoll = true;
|
162
|
-
#endif
|
163
|
-
}
|
164
|
-
|
165
|
-
/**************************
|
166
|
-
EventMachine_t::_UseKqueue
|
167
|
-
**************************/
|
168
|
-
|
169
|
-
void EventMachine_t::_UseKqueue()
|
170
|
-
{
|
171
|
-
/* Temporary.
|
172
|
-
* See comments under _UseEpoll.
|
173
|
-
*/
|
174
|
-
|
175
|
-
#ifdef HAVE_KQUEUE
|
176
|
-
bKqueue = true;
|
177
|
-
#endif
|
178
|
-
}
|
179
|
-
|
180
|
-
|
181
|
-
/****************************
|
182
|
-
EventMachine_t::ScheduleHalt
|
183
|
-
****************************/
|
184
|
-
|
185
|
-
void EventMachine_t::ScheduleHalt()
|
186
|
-
{
|
187
|
-
/* This is how we stop the machine.
|
188
|
-
* This can be called by clients. Signal handlers will probably
|
189
|
-
* set the global flag.
|
190
|
-
* For now this means there can only be one EventMachine ever running at a time.
|
191
|
-
*
|
192
|
-
* IMPORTANT: keep this light, fast, and async-safe. Don't do anything frisky in here,
|
193
|
-
* because it may be called from signal handlers invoked from code that we don't
|
194
|
-
* control. At this writing (20Sep06), EM does NOT install any signal handlers of
|
195
|
-
* its own.
|
196
|
-
*
|
197
|
-
* We need a FAQ. And one of the questions is: how do I stop EM when Ctrl-C happens?
|
198
|
-
* The answer is to call evma_stop_machine, which calls here, from a SIGINT handler.
|
199
|
-
*/
|
200
|
-
gTerminateSignalReceived = true;
|
201
|
-
}
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
/*******************************
|
206
|
-
EventMachine_t::SetTimerQuantum
|
207
|
-
*******************************/
|
208
|
-
|
209
|
-
void EventMachine_t::SetTimerQuantum (int interval)
|
210
|
-
{
|
211
|
-
/* We get a timer-quantum expressed in milliseconds.
|
212
|
-
* Don't set a quantum smaller than 5 or larger than 2500.
|
213
|
-
*/
|
214
|
-
|
215
|
-
if ((interval < 5) || (interval > 2500))
|
216
|
-
throw std::runtime_error ("invalid timer-quantum");
|
217
|
-
|
218
|
-
Quantum.tv_sec = interval / 1000;
|
219
|
-
Quantum.tv_usec = (interval % 1000) * 1000;
|
220
|
-
}
|
221
|
-
|
222
|
-
|
223
|
-
/*************************************
|
224
|
-
(STATIC) EventMachine_t::SetuidString
|
225
|
-
*************************************/
|
226
|
-
|
227
|
-
void EventMachine_t::SetuidString (const char *username)
|
228
|
-
{
|
229
|
-
/* This method takes a caller-supplied username and tries to setuid
|
230
|
-
* to that user. There is no meaningful implementation (and no error)
|
231
|
-
* on Windows. On Unix, a failure to setuid the caller-supplied string
|
232
|
-
* causes a fatal abort, because presumably the program is calling here
|
233
|
-
* in order to fulfill a security requirement. If we fail silently,
|
234
|
-
* the user may continue to run with too much privilege.
|
235
|
-
*
|
236
|
-
* TODO, we need to decide on and document a way of generating C++ level errors
|
237
|
-
* that can be wrapped in documented Ruby exceptions, so users can catch
|
238
|
-
* and handle them. And distinguish it from errors that we WON'T let the Ruby
|
239
|
-
* user catch (like security-violations and resource-overallocation).
|
240
|
-
* A setuid failure here would be in the latter category.
|
241
|
-
*/
|
242
|
-
|
243
|
-
#ifdef OS_UNIX
|
244
|
-
if (!username || !*username)
|
245
|
-
throw std::runtime_error ("setuid_string failed: no username specified");
|
246
|
-
|
247
|
-
struct passwd *p = getpwnam (username);
|
248
|
-
if (!p)
|
249
|
-
throw std::runtime_error ("setuid_string failed: unknown username");
|
250
|
-
|
251
|
-
if (setuid (p->pw_uid) != 0)
|
252
|
-
throw std::runtime_error ("setuid_string failed: no setuid");
|
253
|
-
|
254
|
-
// Success.
|
255
|
-
#endif
|
256
|
-
}
|
257
|
-
|
258
|
-
|
259
|
-
/****************************************
|
260
|
-
(STATIC) EventMachine_t::SetRlimitNofile
|
261
|
-
****************************************/
|
262
|
-
|
263
|
-
int EventMachine_t::SetRlimitNofile (int nofiles)
|
264
|
-
{
|
265
|
-
#ifdef OS_UNIX
|
266
|
-
struct rlimit rlim;
|
267
|
-
getrlimit (RLIMIT_NOFILE, &rlim);
|
268
|
-
if (nofiles >= 0) {
|
269
|
-
rlim.rlim_cur = nofiles;
|
270
|
-
if ((unsigned int)nofiles > rlim.rlim_max)
|
271
|
-
rlim.rlim_max = nofiles;
|
272
|
-
setrlimit (RLIMIT_NOFILE, &rlim);
|
273
|
-
// ignore the error return, for now at least.
|
274
|
-
// TODO, emit an error message someday when we have proper debug levels.
|
275
|
-
}
|
276
|
-
getrlimit (RLIMIT_NOFILE, &rlim);
|
277
|
-
return rlim.rlim_cur;
|
278
|
-
#endif
|
279
|
-
|
280
|
-
#ifdef OS_WIN32
|
281
|
-
// No meaningful implementation on Windows.
|
282
|
-
return 0;
|
283
|
-
#endif
|
284
|
-
}
|
285
|
-
|
286
|
-
|
287
|
-
/*********************************
|
288
|
-
EventMachine_t::SignalLoopBreaker
|
289
|
-
*********************************/
|
290
|
-
|
291
|
-
void EventMachine_t::SignalLoopBreaker()
|
292
|
-
{
|
293
|
-
#ifdef OS_UNIX
|
294
|
-
write (LoopBreakerWriter, "", 1);
|
295
|
-
#endif
|
296
|
-
#ifdef OS_WIN32
|
297
|
-
sendto (LoopBreakerReader, "", 0, 0, (struct sockaddr*)&(LoopBreakerTarget), sizeof(LoopBreakerTarget));
|
298
|
-
#endif
|
299
|
-
}
|
300
|
-
|
301
|
-
|
302
|
-
/**************************************
|
303
|
-
EventMachine_t::_InitializeLoopBreaker
|
304
|
-
**************************************/
|
305
|
-
|
306
|
-
void EventMachine_t::_InitializeLoopBreaker()
|
307
|
-
{
|
308
|
-
/* A "loop-breaker" is a socket-descriptor that we can write to in order
|
309
|
-
* to break the main select loop. Primarily useful for things running on
|
310
|
-
* threads other than the main EM thread, so they can trigger processing
|
311
|
-
* of events that arise exogenously to the EM.
|
312
|
-
* Keep the loop-breaker pipe out of the main descriptor set, otherwise
|
313
|
-
* its events will get passed on to user code.
|
314
|
-
*/
|
315
|
-
|
316
|
-
#ifdef OS_UNIX
|
317
|
-
int fd[2];
|
318
|
-
if (pipe (fd))
|
319
|
-
throw std::runtime_error ("no loop breaker");
|
320
|
-
|
321
|
-
LoopBreakerWriter = fd[1];
|
322
|
-
LoopBreakerReader = fd[0];
|
323
|
-
#endif
|
324
|
-
|
325
|
-
#ifdef OS_WIN32
|
326
|
-
int sd = socket (AF_INET, SOCK_DGRAM, 0);
|
327
|
-
if (sd == INVALID_SOCKET)
|
328
|
-
throw std::runtime_error ("no loop breaker socket");
|
329
|
-
SetSocketNonblocking (sd);
|
330
|
-
|
331
|
-
memset (&LoopBreakerTarget, 0, sizeof(LoopBreakerTarget));
|
332
|
-
LoopBreakerTarget.sin_family = AF_INET;
|
333
|
-
LoopBreakerTarget.sin_addr.s_addr = inet_addr ("127.0.0.1");
|
334
|
-
|
335
|
-
srand ((int)time(NULL));
|
336
|
-
int i;
|
337
|
-
for (i=0; i < 100; i++) {
|
338
|
-
int r = (rand() % 10000) + 20000;
|
339
|
-
LoopBreakerTarget.sin_port = htons (r);
|
340
|
-
if (bind (sd, (struct sockaddr*)&LoopBreakerTarget, sizeof(LoopBreakerTarget)) == 0)
|
341
|
-
break;
|
342
|
-
}
|
343
|
-
|
344
|
-
if (i == 100)
|
345
|
-
throw std::runtime_error ("no loop breaker");
|
346
|
-
LoopBreakerReader = sd;
|
347
|
-
#endif
|
348
|
-
}
|
349
|
-
|
350
|
-
/***************************
|
351
|
-
EventMachine_t::_UpdateTime
|
352
|
-
***************************/
|
353
|
-
|
354
|
-
void EventMachine_t::_UpdateTime()
|
355
|
-
{
|
356
|
-
#if defined(OS_UNIX)
|
357
|
-
struct timeval tv;
|
358
|
-
gettimeofday (&tv, NULL);
|
359
|
-
gCurrentLoopTime = (((Int64)(tv.tv_sec)) * 1000000LL) + ((Int64)(tv.tv_usec));
|
360
|
-
|
361
|
-
#elif defined(OS_WIN32)
|
362
|
-
unsigned tick = GetTickCount();
|
363
|
-
if (tick < gLastTickCount)
|
364
|
-
gTickCountTickover += 1;
|
365
|
-
gLastTickCount = tick;
|
366
|
-
gCurrentLoopTime = ((Int64)gTickCountTickover << 32) + (Int64)tick;
|
367
|
-
|
368
|
-
#else
|
369
|
-
gCurrentLoopTime = (Int64)time(NULL) * 1000000LL;
|
370
|
-
#endif
|
371
|
-
}
|
372
|
-
|
373
|
-
/*******************
|
374
|
-
EventMachine_t::Run
|
375
|
-
*******************/
|
376
|
-
|
377
|
-
void EventMachine_t::Run()
|
378
|
-
{
|
379
|
-
#ifdef OS_WIN32
|
380
|
-
HookControlC (true);
|
381
|
-
#endif
|
382
|
-
|
383
|
-
#ifdef HAVE_EPOLL
|
384
|
-
if (bEpoll) {
|
385
|
-
epfd = epoll_create (MaxEpollDescriptors);
|
386
|
-
if (epfd == -1) {
|
387
|
-
char buf[200];
|
388
|
-
snprintf (buf, sizeof(buf)-1, "unable to create epoll descriptor: %s", strerror(errno));
|
389
|
-
throw std::runtime_error (buf);
|
390
|
-
}
|
391
|
-
int cloexec = fcntl (epfd, F_GETFD, 0);
|
392
|
-
assert (cloexec >= 0);
|
393
|
-
cloexec |= FD_CLOEXEC;
|
394
|
-
fcntl (epfd, F_SETFD, cloexec);
|
395
|
-
|
396
|
-
assert (LoopBreakerReader >= 0);
|
397
|
-
LoopbreakDescriptor *ld = new LoopbreakDescriptor (LoopBreakerReader, this);
|
398
|
-
assert (ld);
|
399
|
-
Add (ld);
|
400
|
-
}
|
401
|
-
#endif
|
402
|
-
|
403
|
-
#ifdef HAVE_KQUEUE
|
404
|
-
if (bKqueue) {
|
405
|
-
kqfd = kqueue();
|
406
|
-
if (kqfd == -1) {
|
407
|
-
char buf[200];
|
408
|
-
snprintf (buf, sizeof(buf)-1, "unable to create kqueue descriptor: %s", strerror(errno));
|
409
|
-
throw std::runtime_error (buf);
|
410
|
-
}
|
411
|
-
// cloexec not needed. By definition, kqueues are not carried across forks.
|
412
|
-
|
413
|
-
assert (LoopBreakerReader >= 0);
|
414
|
-
LoopbreakDescriptor *ld = new LoopbreakDescriptor (LoopBreakerReader, this);
|
415
|
-
assert (ld);
|
416
|
-
Add (ld);
|
417
|
-
}
|
418
|
-
#endif
|
419
|
-
|
420
|
-
while (true) {
|
421
|
-
_UpdateTime();
|
422
|
-
if (!_RunTimers())
|
423
|
-
break;
|
424
|
-
|
425
|
-
/* _Add must precede _Modify because the same descriptor might
|
426
|
-
* be on both lists during the same pass through the machine,
|
427
|
-
* and to modify a descriptor before adding it would fail.
|
428
|
-
*/
|
429
|
-
_AddNewDescriptors();
|
430
|
-
_ModifyDescriptors();
|
431
|
-
|
432
|
-
if (!_RunOnce())
|
433
|
-
break;
|
434
|
-
if (gTerminateSignalReceived)
|
435
|
-
break;
|
436
|
-
}
|
437
|
-
|
438
|
-
#ifdef OS_WIN32
|
439
|
-
HookControlC (false);
|
440
|
-
#endif
|
441
|
-
}
|
442
|
-
|
443
|
-
|
444
|
-
/************************
|
445
|
-
EventMachine_t::_RunOnce
|
446
|
-
************************/
|
447
|
-
|
448
|
-
bool EventMachine_t::_RunOnce()
|
449
|
-
{
|
450
|
-
if (bEpoll)
|
451
|
-
return _RunEpollOnce();
|
452
|
-
else if (bKqueue)
|
453
|
-
return _RunKqueueOnce();
|
454
|
-
else
|
455
|
-
return _RunSelectOnce();
|
456
|
-
}
|
457
|
-
|
458
|
-
|
459
|
-
|
460
|
-
/*****************************
|
461
|
-
EventMachine_t::_RunEpollOnce
|
462
|
-
*****************************/
|
463
|
-
|
464
|
-
bool EventMachine_t::_RunEpollOnce()
|
465
|
-
{
|
466
|
-
#ifdef HAVE_EPOLL
|
467
|
-
assert (epfd != -1);
|
468
|
-
int s;
|
469
|
-
|
470
|
-
#ifdef BUILD_FOR_RUBY
|
471
|
-
TRAP_BEG;
|
472
|
-
#endif
|
473
|
-
s = epoll_wait (epfd, epoll_events, MaxEvents, 50);
|
474
|
-
#ifdef BUILD_FOR_RUBY
|
475
|
-
TRAP_END;
|
476
|
-
#endif
|
477
|
-
|
478
|
-
if (s > 0) {
|
479
|
-
for (int i=0; i < s; i++) {
|
480
|
-
EventableDescriptor *ed = (EventableDescriptor*) epoll_events[i].data.ptr;
|
481
|
-
|
482
|
-
if (ed->IsWatchOnly() && ed->GetSocket() == INVALID_SOCKET)
|
483
|
-
continue;
|
484
|
-
|
485
|
-
assert(ed->GetSocket() != INVALID_SOCKET);
|
486
|
-
|
487
|
-
if (epoll_events[i].events & EPOLLIN)
|
488
|
-
ed->Read();
|
489
|
-
if (epoll_events[i].events & EPOLLOUT)
|
490
|
-
ed->Write();
|
491
|
-
if (epoll_events[i].events & (EPOLLERR | EPOLLHUP))
|
492
|
-
ed->HandleError();
|
493
|
-
}
|
494
|
-
}
|
495
|
-
else if (s < 0) {
|
496
|
-
// epoll_wait can fail on error in a handful of ways.
|
497
|
-
// If this happens, then wait for a little while to avoid busy-looping.
|
498
|
-
// If the error was EINTR, we probably caught SIGCHLD or something,
|
499
|
-
// so keep the wait short.
|
500
|
-
timeval tv = {0, ((errno == EINTR) ? 5 : 50) * 1000};
|
501
|
-
EmSelect (0, NULL, NULL, NULL, &tv);
|
502
|
-
}
|
503
|
-
|
504
|
-
{ // cleanup dying sockets
|
505
|
-
// vector::pop_back works in constant time.
|
506
|
-
// TODO, rip this out and only delete the descriptors we know have died,
|
507
|
-
// rather than traversing the whole list.
|
508
|
-
// Modified 05Jan08 per suggestions by Chris Heath. It's possible that
|
509
|
-
// an EventableDescriptor will have a descriptor value of -1. That will
|
510
|
-
// happen if EventableDescriptor::Close was called on it. In that case,
|
511
|
-
// don't call epoll_ctl to remove the socket's filters from the epoll set.
|
512
|
-
// According to the epoll docs, this happens automatically when the
|
513
|
-
// descriptor is closed anyway. This is different from the case where
|
514
|
-
// the socket has already been closed but the descriptor in the ED object
|
515
|
-
// hasn't yet been set to INVALID_SOCKET.
|
516
|
-
int i, j;
|
517
|
-
int nSockets = Descriptors.size();
|
518
|
-
for (i=0, j=0; i < nSockets; i++) {
|
519
|
-
EventableDescriptor *ed = Descriptors[i];
|
520
|
-
assert (ed);
|
521
|
-
if (ed->ShouldDelete()) {
|
522
|
-
if (ed->GetSocket() != INVALID_SOCKET) {
|
523
|
-
assert (bEpoll); // wouldn't be in this method otherwise.
|
524
|
-
assert (epfd != -1);
|
525
|
-
int e = epoll_ctl (epfd, EPOLL_CTL_DEL, ed->GetSocket(), ed->GetEpollEvent());
|
526
|
-
// ENOENT or EBADF are not errors because the socket may be already closed when we get here.
|
527
|
-
if (e && (errno != ENOENT) && (errno != EBADF) && (errno != EPERM)) {
|
528
|
-
char buf [200];
|
529
|
-
snprintf (buf, sizeof(buf)-1, "unable to delete epoll event: %s", strerror(errno));
|
530
|
-
throw std::runtime_error (buf);
|
531
|
-
}
|
532
|
-
}
|
533
|
-
|
534
|
-
ModifiedDescriptors.erase (ed);
|
535
|
-
delete ed;
|
536
|
-
}
|
537
|
-
else
|
538
|
-
Descriptors [j++] = ed;
|
539
|
-
}
|
540
|
-
while ((size_t)j < Descriptors.size())
|
541
|
-
Descriptors.pop_back();
|
542
|
-
|
543
|
-
}
|
544
|
-
|
545
|
-
// TODO, heartbeats.
|
546
|
-
// Added 14Sep07, its absence was noted by Brian Candler. But the comment was here, indicated
|
547
|
-
// that this got thought about and not done when EPOLL was originally written. Was there a reason
|
548
|
-
// not to do it, or was it an oversight? Certainly, running a heartbeat on 50,000 connections every
|
549
|
-
// two seconds can get to be a real bear, especially if all we're doing is timing out dead ones.
|
550
|
-
// Maybe there's a better way to do this. (Or maybe it's not that expensive after all.)
|
551
|
-
//
|
552
|
-
{ // dispatch heartbeats
|
553
|
-
if (gCurrentLoopTime >= NextHeartbeatTime) {
|
554
|
-
NextHeartbeatTime = gCurrentLoopTime + HeartbeatInterval;
|
555
|
-
|
556
|
-
for (int i=0; i < Descriptors.size(); i++) {
|
557
|
-
EventableDescriptor *ed = Descriptors[i];
|
558
|
-
assert (ed);
|
559
|
-
ed->Heartbeat();
|
560
|
-
}
|
561
|
-
}
|
562
|
-
}
|
563
|
-
|
564
|
-
#ifdef BUILD_FOR_RUBY
|
565
|
-
if (!rb_thread_alone()) {
|
566
|
-
rb_thread_schedule();
|
567
|
-
}
|
568
|
-
#endif
|
569
|
-
|
570
|
-
return true;
|
571
|
-
#else
|
572
|
-
throw std::runtime_error ("epoll is not implemented on this platform");
|
573
|
-
#endif
|
574
|
-
}
|
575
|
-
|
576
|
-
|
577
|
-
/******************************
|
578
|
-
EventMachine_t::_RunKqueueOnce
|
579
|
-
******************************/
|
580
|
-
|
581
|
-
bool EventMachine_t::_RunKqueueOnce()
|
582
|
-
{
|
583
|
-
#ifdef HAVE_KQUEUE
|
584
|
-
assert (kqfd != -1);
|
585
|
-
struct timespec ts = {0, 10000000}; // Too frequent. Use blocking_region
|
586
|
-
|
587
|
-
int k;
|
588
|
-
#ifdef BUILD_FOR_RUBY
|
589
|
-
TRAP_BEG;
|
590
|
-
#endif
|
591
|
-
k = kevent (kqfd, NULL, 0, Karray, MaxEvents, &ts);
|
592
|
-
#ifdef BUILD_FOR_RUBY
|
593
|
-
TRAP_END;
|
594
|
-
#endif
|
595
|
-
|
596
|
-
struct kevent *ke = Karray;
|
597
|
-
while (k > 0) {
|
598
|
-
switch (ke->filter)
|
599
|
-
{
|
600
|
-
case EVFILT_VNODE:
|
601
|
-
_HandleKqueueFileEvent (ke);
|
602
|
-
break;
|
603
|
-
|
604
|
-
case EVFILT_PROC:
|
605
|
-
_HandleKqueuePidEvent (ke);
|
606
|
-
break;
|
607
|
-
|
608
|
-
case EVFILT_READ:
|
609
|
-
case EVFILT_WRITE:
|
610
|
-
EventableDescriptor *ed = (EventableDescriptor*) (ke->udata);
|
611
|
-
assert (ed);
|
612
|
-
|
613
|
-
if (ed->IsWatchOnly() && ed->GetSocket() == INVALID_SOCKET)
|
614
|
-
break;
|
615
|
-
|
616
|
-
if (ke->filter == EVFILT_READ)
|
617
|
-
ed->Read();
|
618
|
-
else if (ke->filter == EVFILT_WRITE)
|
619
|
-
ed->Write();
|
620
|
-
else
|
621
|
-
cerr << "Discarding unknown kqueue event " << ke->filter << endl;
|
622
|
-
|
623
|
-
break;
|
624
|
-
}
|
625
|
-
|
626
|
-
--k;
|
627
|
-
++ke;
|
628
|
-
}
|
629
|
-
|
630
|
-
{ // cleanup dying sockets
|
631
|
-
// vector::pop_back works in constant time.
|
632
|
-
// TODO, rip this out and only delete the descriptors we know have died,
|
633
|
-
// rather than traversing the whole list.
|
634
|
-
// In kqueue, closing a descriptor automatically removes its event filters.
|
635
|
-
|
636
|
-
int i, j;
|
637
|
-
int nSockets = Descriptors.size();
|
638
|
-
for (i=0, j=0; i < nSockets; i++) {
|
639
|
-
EventableDescriptor *ed = Descriptors[i];
|
640
|
-
assert (ed);
|
641
|
-
if (ed->ShouldDelete()) {
|
642
|
-
ModifiedDescriptors.erase (ed);
|
643
|
-
delete ed;
|
644
|
-
}
|
645
|
-
else
|
646
|
-
Descriptors [j++] = ed;
|
647
|
-
}
|
648
|
-
while ((size_t)j < Descriptors.size())
|
649
|
-
Descriptors.pop_back();
|
650
|
-
|
651
|
-
}
|
652
|
-
|
653
|
-
{ // dispatch heartbeats
|
654
|
-
if (gCurrentLoopTime >= NextHeartbeatTime) {
|
655
|
-
NextHeartbeatTime = gCurrentLoopTime + HeartbeatInterval;
|
656
|
-
|
657
|
-
for (unsigned int i=0; i < Descriptors.size(); i++) {
|
658
|
-
EventableDescriptor *ed = Descriptors[i];
|
659
|
-
assert (ed);
|
660
|
-
ed->Heartbeat();
|
661
|
-
}
|
662
|
-
}
|
663
|
-
}
|
664
|
-
|
665
|
-
|
666
|
-
// TODO, replace this with rb_thread_blocking_region for 1.9 builds.
|
667
|
-
#ifdef BUILD_FOR_RUBY
|
668
|
-
if (!rb_thread_alone()) {
|
669
|
-
rb_thread_schedule();
|
670
|
-
}
|
671
|
-
#endif
|
672
|
-
|
673
|
-
return true;
|
674
|
-
#else
|
675
|
-
throw std::runtime_error ("kqueue is not implemented on this platform");
|
676
|
-
#endif
|
677
|
-
}
|
678
|
-
|
679
|
-
|
680
|
-
/*********************************
|
681
|
-
EventMachine_t::_ModifyEpollEvent
|
682
|
-
*********************************/
|
683
|
-
|
684
|
-
void EventMachine_t::_ModifyEpollEvent (EventableDescriptor *ed)
|
685
|
-
{
|
686
|
-
#ifdef HAVE_EPOLL
|
687
|
-
if (bEpoll) {
|
688
|
-
assert (epfd != -1);
|
689
|
-
assert (ed);
|
690
|
-
assert (ed->GetSocket() != INVALID_SOCKET);
|
691
|
-
int e = epoll_ctl (epfd, EPOLL_CTL_MOD, ed->GetSocket(), ed->GetEpollEvent());
|
692
|
-
if (e) {
|
693
|
-
char buf [200];
|
694
|
-
snprintf (buf, sizeof(buf)-1, "unable to modify epoll event: %s", strerror(errno));
|
695
|
-
throw std::runtime_error (buf);
|
696
|
-
}
|
697
|
-
}
|
698
|
-
#endif
|
699
|
-
}
|
700
|
-
|
701
|
-
|
702
|
-
|
703
|
-
/**************************
|
704
|
-
SelectData_t::SelectData_t
|
705
|
-
**************************/
|
706
|
-
|
707
|
-
SelectData_t::SelectData_t()
|
708
|
-
{
|
709
|
-
maxsocket = 0;
|
710
|
-
FD_ZERO (&fdreads);
|
711
|
-
FD_ZERO (&fdwrites);
|
712
|
-
FD_ZERO (&fderrors);
|
713
|
-
}
|
714
|
-
|
715
|
-
|
716
|
-
#ifdef BUILD_FOR_RUBY
|
717
|
-
/*****************
|
718
|
-
_SelectDataSelect
|
719
|
-
*****************/
|
720
|
-
|
721
|
-
#ifdef HAVE_TBR
|
722
|
-
static VALUE _SelectDataSelect (void *v)
|
723
|
-
{
|
724
|
-
SelectData_t *sd = (SelectData_t*)v;
|
725
|
-
sd->nSockets = select (sd->maxsocket+1, &(sd->fdreads), &(sd->fdwrites), &(sd->fderrors), &(sd->tv));
|
726
|
-
return Qnil;
|
727
|
-
}
|
728
|
-
#endif
|
729
|
-
|
730
|
-
/*********************
|
731
|
-
SelectData_t::_Select
|
732
|
-
*********************/
|
733
|
-
|
734
|
-
int SelectData_t::_Select()
|
735
|
-
{
|
736
|
-
#ifdef HAVE_TBR
|
737
|
-
rb_thread_blocking_region (_SelectDataSelect, (void*)this, RUBY_UBF_IO, 0);
|
738
|
-
return nSockets;
|
739
|
-
#endif
|
740
|
-
|
741
|
-
#ifndef HAVE_TBR
|
742
|
-
return EmSelect (maxsocket+1, &fdreads, &fdwrites, &fderrors, &tv);
|
743
|
-
#endif
|
744
|
-
}
|
745
|
-
#endif
|
746
|
-
|
747
|
-
|
748
|
-
|
749
|
-
/******************************
|
750
|
-
EventMachine_t::_RunSelectOnce
|
751
|
-
******************************/
|
752
|
-
|
753
|
-
bool EventMachine_t::_RunSelectOnce()
|
754
|
-
{
|
755
|
-
// Crank the event machine once.
|
756
|
-
// If there are no descriptors to process, then sleep
|
757
|
-
// for a few hundred mills to avoid busy-looping.
|
758
|
-
// Return T/F to indicate whether we should continue.
|
759
|
-
// This is based on a select loop. Alternately provide epoll
|
760
|
-
// if we know we're running on a 2.6 kernel.
|
761
|
-
// epoll will be effective if we provide it as an alternative,
|
762
|
-
// however it has the same problem interoperating with Ruby
|
763
|
-
// threads that select does.
|
764
|
-
|
765
|
-
//cerr << "X";
|
766
|
-
|
767
|
-
/* This protection is now obsolete, because we will ALWAYS
|
768
|
-
* have at least one descriptor (the loop-breaker) to read.
|
769
|
-
*/
|
770
|
-
/*
|
771
|
-
if (Descriptors.size() == 0) {
|
772
|
-
#ifdef OS_UNIX
|
773
|
-
timeval tv = {0, 200 * 1000};
|
774
|
-
EmSelect (0, NULL, NULL, NULL, &tv);
|
775
|
-
return true;
|
776
|
-
#endif
|
777
|
-
#ifdef OS_WIN32
|
778
|
-
Sleep (200);
|
779
|
-
return true;
|
780
|
-
#endif
|
781
|
-
}
|
782
|
-
*/
|
783
|
-
|
784
|
-
SelectData_t SelectData;
|
785
|
-
/*
|
786
|
-
fd_set fdreads, fdwrites;
|
787
|
-
FD_ZERO (&fdreads);
|
788
|
-
FD_ZERO (&fdwrites);
|
789
|
-
|
790
|
-
int maxsocket = 0;
|
791
|
-
*/
|
792
|
-
|
793
|
-
// Always read the loop-breaker reader.
|
794
|
-
// Changed 23Aug06, provisionally implemented for Windows with a UDP socket
|
795
|
-
// running on localhost with a randomly-chosen port. (*Puke*)
|
796
|
-
// Windows has a version of the Unix pipe() library function, but it doesn't
|
797
|
-
// give you back descriptors that are selectable.
|
798
|
-
FD_SET (LoopBreakerReader, &(SelectData.fdreads));
|
799
|
-
if (SelectData.maxsocket < LoopBreakerReader)
|
800
|
-
SelectData.maxsocket = LoopBreakerReader;
|
801
|
-
|
802
|
-
// prepare the sockets for reading and writing
|
803
|
-
size_t i;
|
804
|
-
for (i = 0; i < Descriptors.size(); i++) {
|
805
|
-
EventableDescriptor *ed = Descriptors[i];
|
806
|
-
assert (ed);
|
807
|
-
int sd = ed->GetSocket();
|
808
|
-
if (ed->IsWatchOnly() && sd == INVALID_SOCKET)
|
809
|
-
continue;
|
810
|
-
assert (sd != INVALID_SOCKET);
|
811
|
-
|
812
|
-
if (ed->SelectForRead())
|
813
|
-
FD_SET (sd, &(SelectData.fdreads));
|
814
|
-
if (ed->SelectForWrite())
|
815
|
-
FD_SET (sd, &(SelectData.fdwrites));
|
816
|
-
|
817
|
-
#ifdef OS_WIN32
|
818
|
-
/* 21Sep09: on windows, a non-blocking connect() that fails does not come up as writable.
|
819
|
-
Instead, it is added to the error set. See http://www.mail-archive.com/openssl-users@openssl.org/msg58500.html
|
820
|
-
*/
|
821
|
-
FD_SET (sd, &(SelectData.fderrors));
|
822
|
-
#endif
|
823
|
-
|
824
|
-
if (SelectData.maxsocket < sd)
|
825
|
-
SelectData.maxsocket = sd;
|
826
|
-
}
|
827
|
-
|
828
|
-
|
829
|
-
{ // read and write the sockets
|
830
|
-
//timeval tv = {1, 0}; // Solaris fails if the microseconds member is >= 1000000.
|
831
|
-
//timeval tv = Quantum;
|
832
|
-
SelectData.tv = Quantum;
|
833
|
-
int s = SelectData._Select();
|
834
|
-
//rb_thread_blocking_region(xxx,(void*)&SelectData,RUBY_UBF_IO,0);
|
835
|
-
//int s = EmSelect (SelectData.maxsocket+1, &(SelectData.fdreads), &(SelectData.fdwrites), NULL, &(SelectData.tv));
|
836
|
-
//int s = SelectData.nSockets;
|
837
|
-
if (s > 0) {
|
838
|
-
/* Changed 01Jun07. We used to handle the Loop-breaker right here.
|
839
|
-
* Now we do it AFTER all the regular descriptors. There's an
|
840
|
-
* incredibly important and subtle reason for this. Code on
|
841
|
-
* loop breakers is sometimes used to cause the reactor core to
|
842
|
-
* cycle (for example, to allow outbound network buffers to drain).
|
843
|
-
* If a loop-breaker handler reschedules itself (say, after determining
|
844
|
-
* that the write buffers are still too full), then it will execute
|
845
|
-
* IMMEDIATELY if _ReadLoopBreaker is done here instead of after
|
846
|
-
* the other descriptors are processed. That defeats the whole purpose.
|
847
|
-
*/
|
848
|
-
for (i=0; i < Descriptors.size(); i++) {
|
849
|
-
EventableDescriptor *ed = Descriptors[i];
|
850
|
-
assert (ed);
|
851
|
-
int sd = ed->GetSocket();
|
852
|
-
if (ed->IsWatchOnly() && sd == INVALID_SOCKET)
|
853
|
-
continue;
|
854
|
-
assert (sd != INVALID_SOCKET);
|
855
|
-
|
856
|
-
if (FD_ISSET (sd, &(SelectData.fdwrites)))
|
857
|
-
ed->Write();
|
858
|
-
if (FD_ISSET (sd, &(SelectData.fdreads)))
|
859
|
-
ed->Read();
|
860
|
-
if (FD_ISSET (sd, &(SelectData.fderrors)))
|
861
|
-
ed->HandleError();
|
862
|
-
}
|
863
|
-
|
864
|
-
if (FD_ISSET (LoopBreakerReader, &(SelectData.fdreads)))
|
865
|
-
_ReadLoopBreaker();
|
866
|
-
}
|
867
|
-
else if (s < 0) {
|
868
|
-
// select can fail on error in a handful of ways.
|
869
|
-
// If this happens, then wait for a little while to avoid busy-looping.
|
870
|
-
// If the error was EINTR, we probably caught SIGCHLD or something,
|
871
|
-
// so keep the wait short.
|
872
|
-
timeval tv = {0, ((errno == EINTR) ? 5 : 50) * 1000};
|
873
|
-
EmSelect (0, NULL, NULL, NULL, &tv);
|
874
|
-
}
|
875
|
-
}
|
876
|
-
|
877
|
-
|
878
|
-
{ // dispatch heartbeats
|
879
|
-
if (gCurrentLoopTime >= NextHeartbeatTime) {
|
880
|
-
NextHeartbeatTime = gCurrentLoopTime + HeartbeatInterval;
|
881
|
-
|
882
|
-
for (i=0; i < Descriptors.size(); i++) {
|
883
|
-
EventableDescriptor *ed = Descriptors[i];
|
884
|
-
assert (ed);
|
885
|
-
ed->Heartbeat();
|
886
|
-
}
|
887
|
-
}
|
888
|
-
}
|
889
|
-
|
890
|
-
{ // cleanup dying sockets
|
891
|
-
// vector::pop_back works in constant time.
|
892
|
-
int i, j;
|
893
|
-
int nSockets = Descriptors.size();
|
894
|
-
for (i=0, j=0; i < nSockets; i++) {
|
895
|
-
EventableDescriptor *ed = Descriptors[i];
|
896
|
-
assert (ed);
|
897
|
-
if (ed->ShouldDelete())
|
898
|
-
delete ed;
|
899
|
-
else
|
900
|
-
Descriptors [j++] = ed;
|
901
|
-
}
|
902
|
-
while ((size_t)j < Descriptors.size())
|
903
|
-
Descriptors.pop_back();
|
904
|
-
|
905
|
-
}
|
906
|
-
|
907
|
-
return true;
|
908
|
-
}
|
909
|
-
|
910
|
-
|
911
|
-
/********************************
|
912
|
-
EventMachine_t::_ReadLoopBreaker
|
913
|
-
********************************/
|
914
|
-
|
915
|
-
void EventMachine_t::_ReadLoopBreaker()
|
916
|
-
{
|
917
|
-
/* The loop breaker has selected readable.
|
918
|
-
* Read it ONCE (it may block if we try to read it twice)
|
919
|
-
* and send a loop-break event back to user code.
|
920
|
-
*/
|
921
|
-
char buffer [1024];
|
922
|
-
read (LoopBreakerReader, buffer, sizeof(buffer));
|
923
|
-
if (EventCallback)
|
924
|
-
(*EventCallback)(NULL, EM_LOOPBREAK_SIGNAL, "", 0);
|
925
|
-
}
|
926
|
-
|
927
|
-
|
928
|
-
/**************************
|
929
|
-
EventMachine_t::_RunTimers
|
930
|
-
**************************/
|
931
|
-
|
932
|
-
bool EventMachine_t::_RunTimers()
|
933
|
-
{
|
934
|
-
// These are caller-defined timer handlers.
|
935
|
-
// Return T/F to indicate whether we should continue the main loop.
|
936
|
-
// We rely on the fact that multimaps sort by their keys to avoid
|
937
|
-
// inspecting the whole list every time we come here.
|
938
|
-
// Just keep inspecting and processing the list head until we hit
|
939
|
-
// one that hasn't expired yet.
|
940
|
-
|
941
|
-
while (true) {
|
942
|
-
multimap<Int64,Timer_t>::iterator i = Timers.begin();
|
943
|
-
if (i == Timers.end())
|
944
|
-
break;
|
945
|
-
if (i->first > gCurrentLoopTime)
|
946
|
-
break;
|
947
|
-
if (EventCallback)
|
948
|
-
(*EventCallback) (NULL, EM_TIMER_FIRED, NULL, i->second.GetBinding());
|
949
|
-
Timers.erase (i);
|
950
|
-
}
|
951
|
-
return true;
|
952
|
-
}
|
953
|
-
|
954
|
-
|
955
|
-
|
956
|
-
/***********************************
|
957
|
-
EventMachine_t::InstallOneshotTimer
|
958
|
-
***********************************/
|
959
|
-
|
960
|
-
const unsigned long EventMachine_t::InstallOneshotTimer (int milliseconds)
|
961
|
-
{
|
962
|
-
if (Timers.size() > MaxOutstandingTimers)
|
963
|
-
return false;
|
964
|
-
// Don't use the global loop-time variable here, because we might
|
965
|
-
// get called before the main event machine is running.
|
966
|
-
|
967
|
-
#ifdef OS_UNIX
|
968
|
-
struct timeval tv;
|
969
|
-
gettimeofday (&tv, NULL);
|
970
|
-
Int64 fire_at = (((Int64)(tv.tv_sec)) * 1000000LL) + ((Int64)(tv.tv_usec));
|
971
|
-
fire_at += ((Int64)milliseconds) * 1000LL;
|
972
|
-
#endif
|
973
|
-
|
974
|
-
#ifdef OS_WIN32
|
975
|
-
unsigned tick = GetTickCount();
|
976
|
-
if (tick < gLastTickCount)
|
977
|
-
gTickCountTickover += 1;
|
978
|
-
gLastTickCount = tick;
|
979
|
-
|
980
|
-
Int64 fire_at = ((Int64)gTickCountTickover << 32) + (Int64)tick;
|
981
|
-
fire_at += (Int64)milliseconds;
|
982
|
-
#endif
|
983
|
-
|
984
|
-
Timer_t t;
|
985
|
-
#ifndef HAVE_MAKE_PAIR
|
986
|
-
multimap<Int64,Timer_t>::iterator i = Timers.insert (multimap<Int64,Timer_t>::value_type (fire_at, t));
|
987
|
-
#else
|
988
|
-
multimap<Int64,Timer_t>::iterator i = Timers.insert (make_pair (fire_at, t));
|
989
|
-
#endif
|
990
|
-
return i->second.GetBinding();
|
991
|
-
}
|
992
|
-
|
993
|
-
|
994
|
-
/*******************************
|
995
|
-
EventMachine_t::ConnectToServer
|
996
|
-
*******************************/
|
997
|
-
|
998
|
-
const unsigned long EventMachine_t::ConnectToServer (const char *bind_addr, int bind_port, const char *server, int port)
|
999
|
-
{
|
1000
|
-
/* We want to spend no more than a few seconds waiting for a connection
|
1001
|
-
* to a remote host. So we use a nonblocking connect.
|
1002
|
-
* Linux disobeys the usual rules for nonblocking connects.
|
1003
|
-
* Per Stevens (UNP p.410), you expect a nonblocking connect to select
|
1004
|
-
* both readable and writable on error, and not to return EINPROGRESS
|
1005
|
-
* if the connect can be fulfilled immediately. Linux violates both
|
1006
|
-
* of these expectations.
|
1007
|
-
* Any kind of nonblocking connect on Linux returns EINPROGRESS.
|
1008
|
-
* The socket will then return writable when the disposition of the
|
1009
|
-
* connect is known, but it will not also be readable in case of
|
1010
|
-
* error! Weirdly, it will be readable in case there is data to read!!!
|
1011
|
-
* (Which can happen with protocols like SSH and SMTP.)
|
1012
|
-
* I suppose if you were so inclined you could consider this logical,
|
1013
|
-
* but it's not the way Unix has historically done it.
|
1014
|
-
* So we ignore the readable flag and read getsockopt to see if there
|
1015
|
-
* was an error connecting. A select timeout works as expected.
|
1016
|
-
* In regard to getsockopt: Linux does the Berkeley-style thing,
|
1017
|
-
* not the Solaris-style, and returns zero with the error code in
|
1018
|
-
* the error parameter.
|
1019
|
-
* Return the binding-text of the newly-created pending connection,
|
1020
|
-
* or NULL if there was a problem.
|
1021
|
-
*/
|
1022
|
-
|
1023
|
-
if (!server || !*server || !port)
|
1024
|
-
throw std::runtime_error ("invalid server or port");
|
1025
|
-
|
1026
|
-
int family, bind_size;
|
1027
|
-
struct sockaddr bind_as, *bind_as_ptr = name2address (server, port, &family, &bind_size);
|
1028
|
-
if (!bind_as_ptr)
|
1029
|
-
throw std::runtime_error ("unable to resolve server address");
|
1030
|
-
bind_as = *bind_as_ptr; // copy because name2address points to a static
|
1031
|
-
|
1032
|
-
int sd = socket (family, SOCK_STREAM, 0);
|
1033
|
-
if (sd == INVALID_SOCKET)
|
1034
|
-
throw std::runtime_error ("unable to create new socket");
|
1035
|
-
|
1036
|
-
/*
|
1037
|
-
sockaddr_in pin;
|
1038
|
-
unsigned long HostAddr;
|
1039
|
-
|
1040
|
-
HostAddr = inet_addr (server);
|
1041
|
-
if (HostAddr == INADDR_NONE) {
|
1042
|
-
hostent *hp = gethostbyname ((char*)server); // Windows requires (char*)
|
1043
|
-
if (!hp) {
|
1044
|
-
// TODO: This gives the caller a fatal error. Not good.
|
1045
|
-
// They can respond by catching RuntimeError (blecch).
|
1046
|
-
// Possibly we need to fire an unbind event and provide
|
1047
|
-
// a status code so user code can detect the cause of the
|
1048
|
-
// failure.
|
1049
|
-
return NULL;
|
1050
|
-
}
|
1051
|
-
HostAddr = ((in_addr*)(hp->h_addr))->s_addr;
|
1052
|
-
}
|
1053
|
-
|
1054
|
-
memset (&pin, 0, sizeof(pin));
|
1055
|
-
pin.sin_family = AF_INET;
|
1056
|
-
pin.sin_addr.s_addr = HostAddr;
|
1057
|
-
pin.sin_port = htons (port);
|
1058
|
-
|
1059
|
-
int sd = socket (AF_INET, SOCK_STREAM, 0);
|
1060
|
-
if (sd == INVALID_SOCKET)
|
1061
|
-
return NULL;
|
1062
|
-
*/
|
1063
|
-
|
1064
|
-
// From here on, ALL error returns must close the socket.
|
1065
|
-
// Set the new socket nonblocking.
|
1066
|
-
if (!SetSocketNonblocking (sd)) {
|
1067
|
-
closesocket (sd);
|
1068
|
-
throw std::runtime_error ("unable to set socket as non-blocking");
|
1069
|
-
}
|
1070
|
-
// Disable slow-start (Nagle algorithm).
|
1071
|
-
int one = 1;
|
1072
|
-
setsockopt (sd, IPPROTO_TCP, TCP_NODELAY, (char*) &one, sizeof(one));
|
1073
|
-
// Set reuseaddr to improve performance on restarts
|
1074
|
-
setsockopt (sd, SOL_SOCKET, SO_REUSEADDR, (char*) &one, sizeof(one));
|
1075
|
-
|
1076
|
-
if (bind_addr) {
|
1077
|
-
int bind_to_size, bind_to_family;
|
1078
|
-
struct sockaddr *bind_to = name2address (bind_addr, bind_port, &bind_to_family, &bind_to_size);
|
1079
|
-
if (!bind_to) {
|
1080
|
-
closesocket (sd);
|
1081
|
-
throw std::runtime_error ("invalid bind address");
|
1082
|
-
}
|
1083
|
-
if (bind (sd, bind_to, bind_to_size) < 0) {
|
1084
|
-
closesocket (sd);
|
1085
|
-
throw std::runtime_error ("couldn't bind to address");
|
1086
|
-
}
|
1087
|
-
}
|
1088
|
-
|
1089
|
-
unsigned long out = NULL;
|
1090
|
-
|
1091
|
-
#ifdef OS_UNIX
|
1092
|
-
//if (connect (sd, (sockaddr*)&pin, sizeof pin) == 0) {
|
1093
|
-
if (connect (sd, &bind_as, bind_size) == 0) {
|
1094
|
-
// This is a connect success, which Linux appears
|
1095
|
-
// never to give when the socket is nonblocking,
|
1096
|
-
// even if the connection is intramachine or to
|
1097
|
-
// localhost.
|
1098
|
-
|
1099
|
-
/* Changed this branch 08Aug06. Evidently some kernels
|
1100
|
-
* (FreeBSD for example) will actually return success from
|
1101
|
-
* a nonblocking connect. This is a pretty simple case,
|
1102
|
-
* just set up the new connection and clear the pending flag.
|
1103
|
-
* Thanks to Chris Ochs for helping track this down.
|
1104
|
-
* This branch never gets taken on Linux or (oddly) OSX.
|
1105
|
-
* The original behavior was to throw an unimplemented,
|
1106
|
-
* which the user saw as a fatal exception. Very unfriendly.
|
1107
|
-
*
|
1108
|
-
* Tweaked 10Aug06. Even though the connect disposition is
|
1109
|
-
* known, we still set the connect-pending flag. That way
|
1110
|
-
* some needed initialization will happen in the ConnectionDescriptor.
|
1111
|
-
* (To wit, the ConnectionCompleted event gets sent to the client.)
|
1112
|
-
*/
|
1113
|
-
ConnectionDescriptor *cd = new ConnectionDescriptor (sd, this);
|
1114
|
-
if (!cd)
|
1115
|
-
throw std::runtime_error ("no connection allocated");
|
1116
|
-
cd->SetConnectPending (true);
|
1117
|
-
Add (cd);
|
1118
|
-
out = cd->GetBinding();
|
1119
|
-
}
|
1120
|
-
else if (errno == EINPROGRESS) {
|
1121
|
-
// Errno will generally always be EINPROGRESS, but on Linux
|
1122
|
-
// we have to look at getsockopt to be sure what really happened.
|
1123
|
-
int error;
|
1124
|
-
socklen_t len;
|
1125
|
-
len = sizeof(error);
|
1126
|
-
int o = getsockopt (sd, SOL_SOCKET, SO_ERROR, &error, &len);
|
1127
|
-
if ((o == 0) && (error == 0)) {
|
1128
|
-
// Here, there's no disposition.
|
1129
|
-
// Put the connection on the stack and wait for it to complete
|
1130
|
-
// or time out.
|
1131
|
-
ConnectionDescriptor *cd = new ConnectionDescriptor (sd, this);
|
1132
|
-
if (!cd)
|
1133
|
-
throw std::runtime_error ("no connection allocated");
|
1134
|
-
cd->SetConnectPending (true);
|
1135
|
-
Add (cd);
|
1136
|
-
out = cd->GetBinding();
|
1137
|
-
}
|
1138
|
-
else {
|
1139
|
-
/* This could be connection refused or some such thing.
|
1140
|
-
* We will come here on Linux if a localhost connection fails.
|
1141
|
-
* Changed 16Jul06: Originally this branch was a no-op, and
|
1142
|
-
* we'd drop down to the end of the method, close the socket,
|
1143
|
-
* and return NULL, which would cause the caller to GET A
|
1144
|
-
* FATAL EXCEPTION. Now we keep the socket around but schedule an
|
1145
|
-
* immediate close on it, so the caller will get a close-event
|
1146
|
-
* scheduled on it. This was only an issue for localhost connections
|
1147
|
-
* to non-listening ports. We may eventually need to revise this
|
1148
|
-
* revised behavior, in case it causes problems like making it hard
|
1149
|
-
* for people to know that a failure occurred.
|
1150
|
-
*/
|
1151
|
-
ConnectionDescriptor *cd = new ConnectionDescriptor (sd, this);
|
1152
|
-
if (!cd)
|
1153
|
-
throw std::runtime_error ("no connection allocated");
|
1154
|
-
cd->ScheduleClose (false);
|
1155
|
-
Add (cd);
|
1156
|
-
out = cd->GetBinding();
|
1157
|
-
}
|
1158
|
-
}
|
1159
|
-
else {
|
1160
|
-
// The error from connect was something other then EINPROGRESS.
|
1161
|
-
}
|
1162
|
-
#endif
|
1163
|
-
|
1164
|
-
#ifdef OS_WIN32
|
1165
|
-
//if (connect (sd, (sockaddr*)&pin, sizeof pin) == 0) {
|
1166
|
-
if (connect (sd, &bind_as, bind_size) == 0) {
|
1167
|
-
// This is a connect success, which Windows appears
|
1168
|
-
// never to give when the socket is nonblocking,
|
1169
|
-
// even if the connection is intramachine or to
|
1170
|
-
// localhost.
|
1171
|
-
throw std::runtime_error ("unimplemented");
|
1172
|
-
}
|
1173
|
-
else if (WSAGetLastError() == WSAEWOULDBLOCK) {
|
1174
|
-
// Here, there's no disposition.
|
1175
|
-
// Windows appears not to surface refused connections or
|
1176
|
-
// such stuff at this point.
|
1177
|
-
// Put the connection on the stack and wait for it to complete
|
1178
|
-
// or time out.
|
1179
|
-
ConnectionDescriptor *cd = new ConnectionDescriptor (sd, this);
|
1180
|
-
if (!cd)
|
1181
|
-
throw std::runtime_error ("no connection allocated");
|
1182
|
-
cd->SetConnectPending (true);
|
1183
|
-
Add (cd);
|
1184
|
-
out = cd->GetBinding();
|
1185
|
-
}
|
1186
|
-
else {
|
1187
|
-
// The error from connect was something other then WSAEWOULDBLOCK.
|
1188
|
-
}
|
1189
|
-
|
1190
|
-
#endif
|
1191
|
-
|
1192
|
-
if (!out)
|
1193
|
-
closesocket (sd);
|
1194
|
-
return out;
|
1195
|
-
}
|
1196
|
-
|
1197
|
-
/***********************************
|
1198
|
-
EventMachine_t::ConnectToUnixServer
|
1199
|
-
***********************************/
|
1200
|
-
|
1201
|
-
const unsigned long EventMachine_t::ConnectToUnixServer (const char *server)
|
1202
|
-
{
|
1203
|
-
/* Connect to a Unix-domain server, which by definition is running
|
1204
|
-
* on the same host.
|
1205
|
-
* There is no meaningful implementation on Windows.
|
1206
|
-
* There's no need to do a nonblocking connect, since the connection
|
1207
|
-
* is always local and can always be fulfilled immediately.
|
1208
|
-
*/
|
1209
|
-
|
1210
|
-
#ifdef OS_WIN32
|
1211
|
-
throw std::runtime_error ("unix-domain connection unavailable on this platform");
|
1212
|
-
return NULL;
|
1213
|
-
#endif
|
1214
|
-
|
1215
|
-
// The whole rest of this function is only compiled on Unix systems.
|
1216
|
-
#ifdef OS_UNIX
|
1217
|
-
|
1218
|
-
unsigned long out = NULL;
|
1219
|
-
|
1220
|
-
if (!server || !*server)
|
1221
|
-
return NULL;
|
1222
|
-
|
1223
|
-
sockaddr_un pun;
|
1224
|
-
memset (&pun, 0, sizeof(pun));
|
1225
|
-
pun.sun_family = AF_LOCAL;
|
1226
|
-
|
1227
|
-
// You ordinarily expect the server name field to be at least 1024 bytes long,
|
1228
|
-
// but on Linux it can be MUCH shorter.
|
1229
|
-
if (strlen(server) >= sizeof(pun.sun_path))
|
1230
|
-
throw std::runtime_error ("unix-domain server name is too long");
|
1231
|
-
|
1232
|
-
|
1233
|
-
strcpy (pun.sun_path, server);
|
1234
|
-
|
1235
|
-
int fd = socket (AF_LOCAL, SOCK_STREAM, 0);
|
1236
|
-
if (fd == INVALID_SOCKET)
|
1237
|
-
return NULL;
|
1238
|
-
|
1239
|
-
// From here on, ALL error returns must close the socket.
|
1240
|
-
// NOTE: At this point, the socket is still a blocking socket.
|
1241
|
-
if (connect (fd, (struct sockaddr*)&pun, sizeof(pun)) != 0) {
|
1242
|
-
closesocket (fd);
|
1243
|
-
return NULL;
|
1244
|
-
}
|
1245
|
-
|
1246
|
-
// Set the newly-connected socket nonblocking.
|
1247
|
-
if (!SetSocketNonblocking (fd)) {
|
1248
|
-
closesocket (fd);
|
1249
|
-
return NULL;
|
1250
|
-
}
|
1251
|
-
|
1252
|
-
// Set up a connection descriptor and add it to the event-machine.
|
1253
|
-
// Observe, even though we know the connection status is connect-success,
|
1254
|
-
// we still set the "pending" flag, so some needed initializations take
|
1255
|
-
// place.
|
1256
|
-
ConnectionDescriptor *cd = new ConnectionDescriptor (fd, this);
|
1257
|
-
if (!cd)
|
1258
|
-
throw std::runtime_error ("no connection allocated");
|
1259
|
-
cd->SetConnectPending (true);
|
1260
|
-
Add (cd);
|
1261
|
-
out = cd->GetBinding();
|
1262
|
-
|
1263
|
-
if (!out)
|
1264
|
-
closesocket (fd);
|
1265
|
-
|
1266
|
-
return out;
|
1267
|
-
#endif
|
1268
|
-
}
|
1269
|
-
|
1270
|
-
/************************
|
1271
|
-
EventMachine_t::AttachFD
|
1272
|
-
************************/
|
1273
|
-
|
1274
|
-
const unsigned long EventMachine_t::AttachFD (int fd, bool watch_mode)
|
1275
|
-
{
|
1276
|
-
#ifdef OS_UNIX
|
1277
|
-
if (fcntl(fd, F_GETFL, 0) < 0)
|
1278
|
-
throw std::runtime_error ("invalid file descriptor");
|
1279
|
-
#endif
|
1280
|
-
|
1281
|
-
#ifdef OS_WIN32
|
1282
|
-
// TODO: add better check for invalid file descriptors (see ioctlsocket or getsockopt)
|
1283
|
-
if (fd == INVALID_SOCKET)
|
1284
|
-
throw std::runtime_error ("invalid file descriptor");
|
1285
|
-
#endif
|
1286
|
-
|
1287
|
-
{// Check for duplicate descriptors
|
1288
|
-
size_t i;
|
1289
|
-
for (i = 0; i < Descriptors.size(); i++) {
|
1290
|
-
EventableDescriptor *ed = Descriptors[i];
|
1291
|
-
assert (ed);
|
1292
|
-
if (ed->GetSocket() == fd)
|
1293
|
-
throw std::runtime_error ("adding existing descriptor");
|
1294
|
-
}
|
1295
|
-
|
1296
|
-
for (i = 0; i < NewDescriptors.size(); i++) {
|
1297
|
-
EventableDescriptor *ed = NewDescriptors[i];
|
1298
|
-
assert (ed);
|
1299
|
-
if (ed->GetSocket() == fd)
|
1300
|
-
throw std::runtime_error ("adding existing new descriptor");
|
1301
|
-
}
|
1302
|
-
}
|
1303
|
-
|
1304
|
-
if (!watch_mode)
|
1305
|
-
SetSocketNonblocking(fd);
|
1306
|
-
|
1307
|
-
ConnectionDescriptor *cd = new ConnectionDescriptor (fd, this);
|
1308
|
-
if (!cd)
|
1309
|
-
throw std::runtime_error ("no connection allocated");
|
1310
|
-
|
1311
|
-
cd->SetWatchOnly(watch_mode);
|
1312
|
-
cd->SetConnectPending (false);
|
1313
|
-
|
1314
|
-
Add (cd);
|
1315
|
-
|
1316
|
-
const unsigned long out = cd->GetBinding();
|
1317
|
-
return out;
|
1318
|
-
}
|
1319
|
-
|
1320
|
-
/************************
|
1321
|
-
EventMachine_t::DetachFD
|
1322
|
-
************************/
|
1323
|
-
|
1324
|
-
int EventMachine_t::DetachFD (EventableDescriptor *ed)
|
1325
|
-
{
|
1326
|
-
if (!ed)
|
1327
|
-
throw std::runtime_error ("detaching bad descriptor");
|
1328
|
-
|
1329
|
-
int fd = ed->GetSocket();
|
1330
|
-
|
1331
|
-
#ifdef HAVE_EPOLL
|
1332
|
-
if (bEpoll) {
|
1333
|
-
if (ed->GetSocket() != INVALID_SOCKET) {
|
1334
|
-
assert (epfd != -1);
|
1335
|
-
int e = epoll_ctl (epfd, EPOLL_CTL_DEL, ed->GetSocket(), ed->GetEpollEvent());
|
1336
|
-
// ENOENT or EBADF are not errors because the socket may be already closed when we get here.
|
1337
|
-
if (e && (errno != ENOENT) && (errno != EBADF)) {
|
1338
|
-
char buf [200];
|
1339
|
-
snprintf (buf, sizeof(buf)-1, "unable to delete epoll event: %s", strerror(errno));
|
1340
|
-
throw std::runtime_error (buf);
|
1341
|
-
}
|
1342
|
-
}
|
1343
|
-
}
|
1344
|
-
#endif
|
1345
|
-
|
1346
|
-
#ifdef HAVE_KQUEUE
|
1347
|
-
if (bKqueue) {
|
1348
|
-
// remove any read/write events for this fd
|
1349
|
-
struct kevent k;
|
1350
|
-
EV_SET (&k, ed->GetSocket(), EVFILT_READ | EVFILT_WRITE, EV_DELETE, 0, 0, ed);
|
1351
|
-
int t = kevent (kqfd, &k, 1, NULL, 0, NULL);
|
1352
|
-
if (t < 0 && (errno != ENOENT) && (errno != EBADF)) {
|
1353
|
-
char buf [200];
|
1354
|
-
snprintf (buf, sizeof(buf)-1, "unable to delete kqueue event: %s", strerror(errno));
|
1355
|
-
throw std::runtime_error (buf);
|
1356
|
-
}
|
1357
|
-
}
|
1358
|
-
#endif
|
1359
|
-
|
1360
|
-
// Prevent the descriptor from being modified, in case DetachFD was called from a timer or next_tick
|
1361
|
-
ModifiedDescriptors.erase (ed);
|
1362
|
-
|
1363
|
-
// Set MySocket = INVALID_SOCKET so ShouldDelete() is true (and the descriptor gets deleted and removed),
|
1364
|
-
// and also to prevent anyone from calling close() on the detached fd
|
1365
|
-
ed->SetSocketInvalid();
|
1366
|
-
|
1367
|
-
return fd;
|
1368
|
-
}
|
1369
|
-
|
1370
|
-
/************
|
1371
|
-
name2address
|
1372
|
-
************/
|
1373
|
-
|
1374
|
-
struct sockaddr *name2address (const char *server, int port, int *family, int *bind_size)
|
1375
|
-
{
|
1376
|
-
// THIS IS NOT RE-ENTRANT OR THREADSAFE. Optimize for speed.
|
1377
|
-
// Check the more-common cases first.
|
1378
|
-
// Return NULL if no resolution.
|
1379
|
-
|
1380
|
-
static struct sockaddr_in in4;
|
1381
|
-
#ifndef __CYGWIN__
|
1382
|
-
static struct sockaddr_in6 in6;
|
1383
|
-
#endif
|
1384
|
-
struct hostent *hp;
|
1385
|
-
|
1386
|
-
if (!server || !*server)
|
1387
|
-
server = "0.0.0.0";
|
1388
|
-
|
1389
|
-
memset (&in4, 0, sizeof(in4));
|
1390
|
-
if ( (in4.sin_addr.s_addr = inet_addr (server)) != INADDR_NONE) {
|
1391
|
-
if (family)
|
1392
|
-
*family = AF_INET;
|
1393
|
-
if (bind_size)
|
1394
|
-
*bind_size = sizeof(in4);
|
1395
|
-
in4.sin_family = AF_INET;
|
1396
|
-
in4.sin_port = htons (port);
|
1397
|
-
return (struct sockaddr*)&in4;
|
1398
|
-
}
|
1399
|
-
|
1400
|
-
#if defined(OS_UNIX) && !defined(__CYGWIN__)
|
1401
|
-
memset (&in6, 0, sizeof(in6));
|
1402
|
-
if (inet_pton (AF_INET6, server, in6.sin6_addr.s6_addr) > 0) {
|
1403
|
-
if (family)
|
1404
|
-
*family = AF_INET6;
|
1405
|
-
if (bind_size)
|
1406
|
-
*bind_size = sizeof(in6);
|
1407
|
-
in6.sin6_family = AF_INET6;
|
1408
|
-
in6.sin6_port = htons (port);
|
1409
|
-
return (struct sockaddr*)&in6;
|
1410
|
-
}
|
1411
|
-
#endif
|
1412
|
-
|
1413
|
-
#ifdef OS_WIN32
|
1414
|
-
// TODO, must complete this branch. Windows doesn't have inet_pton.
|
1415
|
-
// A possible approach is to make a getaddrinfo call with the supplied
|
1416
|
-
// server address, constraining the hints to ipv6 and seeing if we
|
1417
|
-
// get any addresses.
|
1418
|
-
// For the time being, Ipv6 addresses aren't supported on Windows.
|
1419
|
-
#endif
|
1420
|
-
|
1421
|
-
hp = gethostbyname ((char*)server); // Windows requires the cast.
|
1422
|
-
if (hp) {
|
1423
|
-
in4.sin_addr.s_addr = ((in_addr*)(hp->h_addr))->s_addr;
|
1424
|
-
if (family)
|
1425
|
-
*family = AF_INET;
|
1426
|
-
if (bind_size)
|
1427
|
-
*bind_size = sizeof(in4);
|
1428
|
-
in4.sin_family = AF_INET;
|
1429
|
-
in4.sin_port = htons (port);
|
1430
|
-
return (struct sockaddr*)&in4;
|
1431
|
-
}
|
1432
|
-
|
1433
|
-
return NULL;
|
1434
|
-
}
|
1435
|
-
|
1436
|
-
|
1437
|
-
/*******************************
|
1438
|
-
EventMachine_t::CreateTcpServer
|
1439
|
-
*******************************/
|
1440
|
-
|
1441
|
-
const unsigned long EventMachine_t::CreateTcpServer (const char *server, int port)
|
1442
|
-
{
|
1443
|
-
/* Create a TCP-acceptor (server) socket and add it to the event machine.
|
1444
|
-
* Return the binding of the new acceptor to the caller.
|
1445
|
-
* This binding will be referenced when the new acceptor sends events
|
1446
|
-
* to indicate accepted connections.
|
1447
|
-
*/
|
1448
|
-
|
1449
|
-
|
1450
|
-
int family, bind_size;
|
1451
|
-
struct sockaddr *bind_here = name2address (server, port, &family, &bind_size);
|
1452
|
-
if (!bind_here)
|
1453
|
-
return NULL;
|
1454
|
-
|
1455
|
-
unsigned long output_binding = NULL;
|
1456
|
-
|
1457
|
-
//struct sockaddr_in sin;
|
1458
|
-
|
1459
|
-
int sd_accept = socket (family, SOCK_STREAM, 0);
|
1460
|
-
if (sd_accept == INVALID_SOCKET) {
|
1461
|
-
goto fail;
|
1462
|
-
}
|
1463
|
-
|
1464
|
-
/*
|
1465
|
-
memset (&sin, 0, sizeof(sin));
|
1466
|
-
sin.sin_family = AF_INET;
|
1467
|
-
sin.sin_addr.s_addr = INADDR_ANY;
|
1468
|
-
sin.sin_port = htons (port);
|
1469
|
-
|
1470
|
-
if (server && *server) {
|
1471
|
-
sin.sin_addr.s_addr = inet_addr (server);
|
1472
|
-
if (sin.sin_addr.s_addr == INADDR_NONE) {
|
1473
|
-
hostent *hp = gethostbyname ((char*)server); // Windows requires the cast.
|
1474
|
-
if (hp == NULL) {
|
1475
|
-
//__warning ("hostname not resolved: ", server);
|
1476
|
-
goto fail;
|
1477
|
-
}
|
1478
|
-
sin.sin_addr.s_addr = ((in_addr*)(hp->h_addr))->s_addr;
|
1479
|
-
}
|
1480
|
-
}
|
1481
|
-
*/
|
1482
|
-
|
1483
|
-
{ // set reuseaddr to improve performance on restarts.
|
1484
|
-
int oval = 1;
|
1485
|
-
if (setsockopt (sd_accept, SOL_SOCKET, SO_REUSEADDR, (char*)&oval, sizeof(oval)) < 0) {
|
1486
|
-
//__warning ("setsockopt failed while creating listener","");
|
1487
|
-
goto fail;
|
1488
|
-
}
|
1489
|
-
}
|
1490
|
-
|
1491
|
-
{ // set CLOEXEC. Only makes sense on Unix
|
1492
|
-
#ifdef OS_UNIX
|
1493
|
-
int cloexec = fcntl (sd_accept, F_GETFD, 0);
|
1494
|
-
assert (cloexec >= 0);
|
1495
|
-
cloexec |= FD_CLOEXEC;
|
1496
|
-
fcntl (sd_accept, F_SETFD, cloexec);
|
1497
|
-
#endif
|
1498
|
-
}
|
1499
|
-
|
1500
|
-
|
1501
|
-
//if (bind (sd_accept, (struct sockaddr*)&sin, sizeof(sin))) {
|
1502
|
-
if (bind (sd_accept, bind_here, bind_size)) {
|
1503
|
-
//__warning ("binding failed");
|
1504
|
-
goto fail;
|
1505
|
-
}
|
1506
|
-
|
1507
|
-
if (listen (sd_accept, 100)) {
|
1508
|
-
//__warning ("listen failed");
|
1509
|
-
goto fail;
|
1510
|
-
}
|
1511
|
-
|
1512
|
-
{
|
1513
|
-
// Set the acceptor non-blocking.
|
1514
|
-
// THIS IS CRUCIALLY IMPORTANT because we read it in a select loop.
|
1515
|
-
if (!SetSocketNonblocking (sd_accept)) {
|
1516
|
-
//int val = fcntl (sd_accept, F_GETFL, 0);
|
1517
|
-
//if (fcntl (sd_accept, F_SETFL, val | O_NONBLOCK) == -1) {
|
1518
|
-
goto fail;
|
1519
|
-
}
|
1520
|
-
}
|
1521
|
-
|
1522
|
-
{ // Looking good.
|
1523
|
-
AcceptorDescriptor *ad = new AcceptorDescriptor (sd_accept, this);
|
1524
|
-
if (!ad)
|
1525
|
-
throw std::runtime_error ("unable to allocate acceptor");
|
1526
|
-
Add (ad);
|
1527
|
-
output_binding = ad->GetBinding();
|
1528
|
-
}
|
1529
|
-
|
1530
|
-
return output_binding;
|
1531
|
-
|
1532
|
-
fail:
|
1533
|
-
if (sd_accept != INVALID_SOCKET)
|
1534
|
-
closesocket (sd_accept);
|
1535
|
-
return NULL;
|
1536
|
-
}
|
1537
|
-
|
1538
|
-
|
1539
|
-
/**********************************
|
1540
|
-
EventMachine_t::OpenDatagramSocket
|
1541
|
-
**********************************/
|
1542
|
-
|
1543
|
-
const unsigned long EventMachine_t::OpenDatagramSocket (const char *address, int port)
|
1544
|
-
{
|
1545
|
-
unsigned long output_binding = NULL;
|
1546
|
-
|
1547
|
-
int sd = socket (AF_INET, SOCK_DGRAM, 0);
|
1548
|
-
if (sd == INVALID_SOCKET)
|
1549
|
-
goto fail;
|
1550
|
-
// from here on, early returns must close the socket!
|
1551
|
-
|
1552
|
-
|
1553
|
-
struct sockaddr_in sin;
|
1554
|
-
memset (&sin, 0, sizeof(sin));
|
1555
|
-
sin.sin_family = AF_INET;
|
1556
|
-
sin.sin_port = htons (port);
|
1557
|
-
|
1558
|
-
|
1559
|
-
if (address && *address) {
|
1560
|
-
sin.sin_addr.s_addr = inet_addr (address);
|
1561
|
-
if (sin.sin_addr.s_addr == INADDR_NONE) {
|
1562
|
-
hostent *hp = gethostbyname ((char*)address); // Windows requires the cast.
|
1563
|
-
if (hp == NULL)
|
1564
|
-
goto fail;
|
1565
|
-
sin.sin_addr.s_addr = ((in_addr*)(hp->h_addr))->s_addr;
|
1566
|
-
}
|
1567
|
-
}
|
1568
|
-
else
|
1569
|
-
sin.sin_addr.s_addr = htonl (INADDR_ANY);
|
1570
|
-
|
1571
|
-
|
1572
|
-
// Set the new socket nonblocking.
|
1573
|
-
{
|
1574
|
-
if (!SetSocketNonblocking (sd))
|
1575
|
-
//int val = fcntl (sd, F_GETFL, 0);
|
1576
|
-
//if (fcntl (sd, F_SETFL, val | O_NONBLOCK) == -1)
|
1577
|
-
goto fail;
|
1578
|
-
}
|
1579
|
-
|
1580
|
-
if (bind (sd, (struct sockaddr*)&sin, sizeof(sin)) != 0)
|
1581
|
-
goto fail;
|
1582
|
-
|
1583
|
-
{ // Looking good.
|
1584
|
-
DatagramDescriptor *ds = new DatagramDescriptor (sd, this);
|
1585
|
-
if (!ds)
|
1586
|
-
throw std::runtime_error ("unable to allocate datagram-socket");
|
1587
|
-
Add (ds);
|
1588
|
-
output_binding = ds->GetBinding();
|
1589
|
-
}
|
1590
|
-
|
1591
|
-
return output_binding;
|
1592
|
-
|
1593
|
-
fail:
|
1594
|
-
if (sd != INVALID_SOCKET)
|
1595
|
-
closesocket (sd);
|
1596
|
-
return NULL;
|
1597
|
-
}
|
1598
|
-
|
1599
|
-
|
1600
|
-
|
1601
|
-
/*******************
|
1602
|
-
EventMachine_t::Add
|
1603
|
-
*******************/
|
1604
|
-
|
1605
|
-
void EventMachine_t::Add (EventableDescriptor *ed)
|
1606
|
-
{
|
1607
|
-
if (!ed)
|
1608
|
-
throw std::runtime_error ("added bad descriptor");
|
1609
|
-
ed->SetEventCallback (EventCallback);
|
1610
|
-
NewDescriptors.push_back (ed);
|
1611
|
-
}
|
1612
|
-
|
1613
|
-
|
1614
|
-
/*******************************
|
1615
|
-
EventMachine_t::ArmKqueueWriter
|
1616
|
-
*******************************/
|
1617
|
-
|
1618
|
-
void EventMachine_t::ArmKqueueWriter (EventableDescriptor *ed)
|
1619
|
-
{
|
1620
|
-
#ifdef HAVE_KQUEUE
|
1621
|
-
if (bKqueue) {
|
1622
|
-
if (!ed)
|
1623
|
-
throw std::runtime_error ("added bad descriptor");
|
1624
|
-
struct kevent k;
|
1625
|
-
EV_SET (&k, ed->GetSocket(), EVFILT_WRITE, EV_ADD | EV_ONESHOT, 0, 0, ed);
|
1626
|
-
int t = kevent (kqfd, &k, 1, NULL, 0, NULL);
|
1627
|
-
if (t < 0) {
|
1628
|
-
char buf [200];
|
1629
|
-
snprintf (buf, sizeof(buf)-1, "arm kqueue writer failed on %d: %s", ed->GetSocket(), strerror(errno));
|
1630
|
-
throw std::runtime_error (buf);
|
1631
|
-
}
|
1632
|
-
}
|
1633
|
-
#endif
|
1634
|
-
}
|
1635
|
-
|
1636
|
-
/*******************************
|
1637
|
-
EventMachine_t::ArmKqueueReader
|
1638
|
-
*******************************/
|
1639
|
-
|
1640
|
-
void EventMachine_t::ArmKqueueReader (EventableDescriptor *ed)
|
1641
|
-
{
|
1642
|
-
#ifdef HAVE_KQUEUE
|
1643
|
-
if (bKqueue) {
|
1644
|
-
if (!ed)
|
1645
|
-
throw std::runtime_error ("added bad descriptor");
|
1646
|
-
struct kevent k;
|
1647
|
-
EV_SET (&k, ed->GetSocket(), EVFILT_READ, EV_ADD, 0, 0, ed);
|
1648
|
-
int t = kevent (kqfd, &k, 1, NULL, 0, NULL);
|
1649
|
-
if (t < 0) {
|
1650
|
-
char buf [200];
|
1651
|
-
snprintf (buf, sizeof(buf)-1, "arm kqueue reader failed on %d: %s", ed->GetSocket(), strerror(errno));
|
1652
|
-
throw std::runtime_error (buf);
|
1653
|
-
}
|
1654
|
-
}
|
1655
|
-
#endif
|
1656
|
-
}
|
1657
|
-
|
1658
|
-
/**********************************
|
1659
|
-
EventMachine_t::_AddNewDescriptors
|
1660
|
-
**********************************/
|
1661
|
-
|
1662
|
-
void EventMachine_t::_AddNewDescriptors()
|
1663
|
-
{
|
1664
|
-
/* Avoid adding descriptors to the main descriptor list
|
1665
|
-
* while we're actually traversing the list.
|
1666
|
-
* Any descriptors that are added as a result of processing timers
|
1667
|
-
* or acceptors should go on a temporary queue and then added
|
1668
|
-
* while we're not traversing the main list.
|
1669
|
-
* Also, it (rarely) happens that a newly-created descriptor
|
1670
|
-
* is immediately scheduled to close. It might be a good
|
1671
|
-
* idea not to bother scheduling these for I/O but if
|
1672
|
-
* we do that, we might bypass some important processing.
|
1673
|
-
*/
|
1674
|
-
|
1675
|
-
for (size_t i = 0; i < NewDescriptors.size(); i++) {
|
1676
|
-
EventableDescriptor *ed = NewDescriptors[i];
|
1677
|
-
if (ed == NULL)
|
1678
|
-
throw std::runtime_error ("adding bad descriptor");
|
1679
|
-
|
1680
|
-
#if HAVE_EPOLL
|
1681
|
-
if (bEpoll) {
|
1682
|
-
assert (epfd != -1);
|
1683
|
-
int e = epoll_ctl (epfd, EPOLL_CTL_ADD, ed->GetSocket(), ed->GetEpollEvent());
|
1684
|
-
if (e) {
|
1685
|
-
char buf [200];
|
1686
|
-
snprintf (buf, sizeof(buf)-1, "unable to add new descriptor: %s", strerror(errno));
|
1687
|
-
throw std::runtime_error (buf);
|
1688
|
-
}
|
1689
|
-
}
|
1690
|
-
#endif
|
1691
|
-
|
1692
|
-
#if HAVE_KQUEUE
|
1693
|
-
/*
|
1694
|
-
if (bKqueue) {
|
1695
|
-
// INCOMPLETE. Some descriptors don't want to be readable.
|
1696
|
-
assert (kqfd != -1);
|
1697
|
-
struct kevent k;
|
1698
|
-
EV_SET (&k, ed->GetSocket(), EVFILT_READ, EV_ADD, 0, 0, ed);
|
1699
|
-
int t = kevent (kqfd, &k, 1, NULL, 0, NULL);
|
1700
|
-
assert (t == 0);
|
1701
|
-
}
|
1702
|
-
*/
|
1703
|
-
#endif
|
1704
|
-
|
1705
|
-
Descriptors.push_back (ed);
|
1706
|
-
}
|
1707
|
-
NewDescriptors.clear();
|
1708
|
-
}
|
1709
|
-
|
1710
|
-
|
1711
|
-
/**********************************
|
1712
|
-
EventMachine_t::_ModifyDescriptors
|
1713
|
-
**********************************/
|
1714
|
-
|
1715
|
-
void EventMachine_t::_ModifyDescriptors()
|
1716
|
-
{
|
1717
|
-
/* For implementations which don't level check every descriptor on
|
1718
|
-
* every pass through the machine, as select does.
|
1719
|
-
* If we're not selecting, then descriptors need a way to signal to the
|
1720
|
-
* machine that their readable or writable status has changed.
|
1721
|
-
* That's what the ::Modify call is for. We do it this way to avoid
|
1722
|
-
* modifying descriptors during the loop traversal, where it can easily
|
1723
|
-
* happen that an object (like a UDP socket) gets data written on it by
|
1724
|
-
* the application during #post_init. That would take place BEFORE the
|
1725
|
-
* descriptor even gets added to the epoll descriptor, so the modify
|
1726
|
-
* operation will crash messily.
|
1727
|
-
* Another really messy possibility is for a descriptor to put itself
|
1728
|
-
* on the Modified list, and then get deleted before we get here.
|
1729
|
-
* Remember, deletes happen after the I/O traversal and before the
|
1730
|
-
* next pass through here. So we have to make sure when we delete a
|
1731
|
-
* descriptor to remove it from the Modified list.
|
1732
|
-
*/
|
1733
|
-
|
1734
|
-
#ifdef HAVE_EPOLL
|
1735
|
-
if (bEpoll) {
|
1736
|
-
set<EventableDescriptor*>::iterator i = ModifiedDescriptors.begin();
|
1737
|
-
while (i != ModifiedDescriptors.end()) {
|
1738
|
-
assert (*i);
|
1739
|
-
_ModifyEpollEvent (*i);
|
1740
|
-
++i;
|
1741
|
-
}
|
1742
|
-
}
|
1743
|
-
#endif
|
1744
|
-
|
1745
|
-
ModifiedDescriptors.clear();
|
1746
|
-
}
|
1747
|
-
|
1748
|
-
|
1749
|
-
/**********************
|
1750
|
-
EventMachine_t::Modify
|
1751
|
-
**********************/
|
1752
|
-
|
1753
|
-
void EventMachine_t::Modify (EventableDescriptor *ed)
|
1754
|
-
{
|
1755
|
-
if (!ed)
|
1756
|
-
throw std::runtime_error ("modified bad descriptor");
|
1757
|
-
ModifiedDescriptors.insert (ed);
|
1758
|
-
}
|
1759
|
-
|
1760
|
-
|
1761
|
-
/***********************************
|
1762
|
-
EventMachine_t::_OpenFileForWriting
|
1763
|
-
***********************************/
|
1764
|
-
|
1765
|
-
const unsigned long EventMachine_t::_OpenFileForWriting (const char *filename)
|
1766
|
-
{
|
1767
|
-
/*
|
1768
|
-
* Return the binding-text of the newly-opened file,
|
1769
|
-
* or NULL if there was a problem.
|
1770
|
-
*/
|
1771
|
-
|
1772
|
-
if (!filename || !*filename)
|
1773
|
-
return NULL;
|
1774
|
-
|
1775
|
-
int fd = open (filename, O_CREAT|O_TRUNC|O_WRONLY|O_NONBLOCK, 0644);
|
1776
|
-
|
1777
|
-
FileStreamDescriptor *fsd = new FileStreamDescriptor (fd, this);
|
1778
|
-
if (!fsd)
|
1779
|
-
throw std::runtime_error ("no file-stream allocated");
|
1780
|
-
Add (fsd);
|
1781
|
-
return fsd->GetBinding();
|
1782
|
-
|
1783
|
-
}
|
1784
|
-
|
1785
|
-
|
1786
|
-
/**************************************
|
1787
|
-
EventMachine_t::CreateUnixDomainServer
|
1788
|
-
**************************************/
|
1789
|
-
|
1790
|
-
const unsigned long EventMachine_t::CreateUnixDomainServer (const char *filename)
|
1791
|
-
{
|
1792
|
-
/* Create a UNIX-domain acceptor (server) socket and add it to the event machine.
|
1793
|
-
* Return the binding of the new acceptor to the caller.
|
1794
|
-
* This binding will be referenced when the new acceptor sends events
|
1795
|
-
* to indicate accepted connections.
|
1796
|
-
* THERE IS NO MEANINGFUL IMPLEMENTATION ON WINDOWS.
|
1797
|
-
*/
|
1798
|
-
|
1799
|
-
#ifdef OS_WIN32
|
1800
|
-
throw std::runtime_error ("unix-domain server unavailable on this platform");
|
1801
|
-
#endif
|
1802
|
-
|
1803
|
-
// The whole rest of this function is only compiled on Unix systems.
|
1804
|
-
#ifdef OS_UNIX
|
1805
|
-
unsigned long output_binding = NULL;
|
1806
|
-
|
1807
|
-
struct sockaddr_un s_sun;
|
1808
|
-
|
1809
|
-
int sd_accept = socket (AF_LOCAL, SOCK_STREAM, 0);
|
1810
|
-
if (sd_accept == INVALID_SOCKET) {
|
1811
|
-
goto fail;
|
1812
|
-
}
|
1813
|
-
|
1814
|
-
if (!filename || !*filename)
|
1815
|
-
goto fail;
|
1816
|
-
unlink (filename);
|
1817
|
-
|
1818
|
-
bzero (&s_sun, sizeof(s_sun));
|
1819
|
-
s_sun.sun_family = AF_LOCAL;
|
1820
|
-
strncpy (s_sun.sun_path, filename, sizeof(s_sun.sun_path)-1);
|
1821
|
-
|
1822
|
-
// don't bother with reuseaddr for a local socket.
|
1823
|
-
|
1824
|
-
{ // set CLOEXEC. Only makes sense on Unix
|
1825
|
-
#ifdef OS_UNIX
|
1826
|
-
int cloexec = fcntl (sd_accept, F_GETFD, 0);
|
1827
|
-
assert (cloexec >= 0);
|
1828
|
-
cloexec |= FD_CLOEXEC;
|
1829
|
-
fcntl (sd_accept, F_SETFD, cloexec);
|
1830
|
-
#endif
|
1831
|
-
}
|
1832
|
-
|
1833
|
-
if (bind (sd_accept, (struct sockaddr*)&s_sun, sizeof(s_sun))) {
|
1834
|
-
//__warning ("binding failed");
|
1835
|
-
goto fail;
|
1836
|
-
}
|
1837
|
-
|
1838
|
-
if (listen (sd_accept, 100)) {
|
1839
|
-
//__warning ("listen failed");
|
1840
|
-
goto fail;
|
1841
|
-
}
|
1842
|
-
|
1843
|
-
{
|
1844
|
-
// Set the acceptor non-blocking.
|
1845
|
-
// THIS IS CRUCIALLY IMPORTANT because we read it in a select loop.
|
1846
|
-
if (!SetSocketNonblocking (sd_accept)) {
|
1847
|
-
//int val = fcntl (sd_accept, F_GETFL, 0);
|
1848
|
-
//if (fcntl (sd_accept, F_SETFL, val | O_NONBLOCK) == -1) {
|
1849
|
-
goto fail;
|
1850
|
-
}
|
1851
|
-
}
|
1852
|
-
|
1853
|
-
{ // Looking good.
|
1854
|
-
AcceptorDescriptor *ad = new AcceptorDescriptor (sd_accept, this);
|
1855
|
-
if (!ad)
|
1856
|
-
throw std::runtime_error ("unable to allocate acceptor");
|
1857
|
-
Add (ad);
|
1858
|
-
output_binding = ad->GetBinding();
|
1859
|
-
}
|
1860
|
-
|
1861
|
-
return output_binding;
|
1862
|
-
|
1863
|
-
fail:
|
1864
|
-
if (sd_accept != INVALID_SOCKET)
|
1865
|
-
closesocket (sd_accept);
|
1866
|
-
return NULL;
|
1867
|
-
#endif // OS_UNIX
|
1868
|
-
}
|
1869
|
-
|
1870
|
-
|
1871
|
-
/*********************
|
1872
|
-
EventMachine_t::Popen
|
1873
|
-
*********************/
|
1874
|
-
#if OBSOLETE
|
1875
|
-
const char *EventMachine_t::Popen (const char *cmd, const char *mode)
|
1876
|
-
{
|
1877
|
-
#ifdef OS_WIN32
|
1878
|
-
throw std::runtime_error ("popen is currently unavailable on this platform");
|
1879
|
-
#endif
|
1880
|
-
|
1881
|
-
// The whole rest of this function is only compiled on Unix systems.
|
1882
|
-
// Eventually we need this functionality (or a full-duplex equivalent) on Windows.
|
1883
|
-
#ifdef OS_UNIX
|
1884
|
-
const char *output_binding = NULL;
|
1885
|
-
|
1886
|
-
FILE *fp = popen (cmd, mode);
|
1887
|
-
if (!fp)
|
1888
|
-
return NULL;
|
1889
|
-
|
1890
|
-
// From here, all early returns must pclose the stream.
|
1891
|
-
|
1892
|
-
// According to the pipe(2) manpage, descriptors returned from pipe have both
|
1893
|
-
// CLOEXEC and NONBLOCK clear. Do NOT set CLOEXEC. DO set nonblocking.
|
1894
|
-
if (!SetSocketNonblocking (fileno (fp))) {
|
1895
|
-
pclose (fp);
|
1896
|
-
return NULL;
|
1897
|
-
}
|
1898
|
-
|
1899
|
-
{ // Looking good.
|
1900
|
-
PipeDescriptor *pd = new PipeDescriptor (fp, this);
|
1901
|
-
if (!pd)
|
1902
|
-
throw std::runtime_error ("unable to allocate pipe");
|
1903
|
-
Add (pd);
|
1904
|
-
output_binding = pd->GetBinding();
|
1905
|
-
}
|
1906
|
-
|
1907
|
-
return output_binding;
|
1908
|
-
#endif
|
1909
|
-
}
|
1910
|
-
#endif // OBSOLETE
|
1911
|
-
|
1912
|
-
/**************************
|
1913
|
-
EventMachine_t::Socketpair
|
1914
|
-
**************************/
|
1915
|
-
|
1916
|
-
const unsigned long EventMachine_t::Socketpair (char * const*cmd_strings)
|
1917
|
-
{
|
1918
|
-
#ifdef OS_WIN32
|
1919
|
-
throw std::runtime_error ("socketpair is currently unavailable on this platform");
|
1920
|
-
#endif
|
1921
|
-
|
1922
|
-
// The whole rest of this function is only compiled on Unix systems.
|
1923
|
-
// Eventually we need this functionality (or a full-duplex equivalent) on Windows.
|
1924
|
-
#ifdef OS_UNIX
|
1925
|
-
// Make sure the incoming array of command strings is sane.
|
1926
|
-
if (!cmd_strings)
|
1927
|
-
return NULL;
|
1928
|
-
int j;
|
1929
|
-
for (j=0; j < 100 && cmd_strings[j]; j++)
|
1930
|
-
;
|
1931
|
-
if ((j==0) || (j==100))
|
1932
|
-
return NULL;
|
1933
|
-
|
1934
|
-
unsigned long output_binding = NULL;
|
1935
|
-
|
1936
|
-
int sv[2];
|
1937
|
-
if (socketpair (AF_LOCAL, SOCK_STREAM, 0, sv) < 0)
|
1938
|
-
return NULL;
|
1939
|
-
// from here, all early returns must close the pair of sockets.
|
1940
|
-
|
1941
|
-
// Set the parent side of the socketpair nonblocking.
|
1942
|
-
// We don't care about the child side, and most child processes will expect their
|
1943
|
-
// stdout to be blocking. Thanks to Duane Johnson and Bill Kelly for pointing this out.
|
1944
|
-
// Obviously DON'T set CLOEXEC.
|
1945
|
-
if (!SetSocketNonblocking (sv[0])) {
|
1946
|
-
close (sv[0]);
|
1947
|
-
close (sv[1]);
|
1948
|
-
return NULL;
|
1949
|
-
}
|
1950
|
-
|
1951
|
-
pid_t f = fork();
|
1952
|
-
if (f > 0) {
|
1953
|
-
close (sv[1]);
|
1954
|
-
PipeDescriptor *pd = new PipeDescriptor (sv[0], f, this);
|
1955
|
-
if (!pd)
|
1956
|
-
throw std::runtime_error ("unable to allocate pipe");
|
1957
|
-
Add (pd);
|
1958
|
-
output_binding = pd->GetBinding();
|
1959
|
-
}
|
1960
|
-
else if (f == 0) {
|
1961
|
-
close (sv[0]);
|
1962
|
-
dup2 (sv[1], STDIN_FILENO);
|
1963
|
-
close (sv[1]);
|
1964
|
-
dup2 (STDIN_FILENO, STDOUT_FILENO);
|
1965
|
-
execvp (cmd_strings[0], cmd_strings+1);
|
1966
|
-
exit (-1); // end the child process if the exec doesn't work.
|
1967
|
-
}
|
1968
|
-
else
|
1969
|
-
throw std::runtime_error ("no fork");
|
1970
|
-
|
1971
|
-
return output_binding;
|
1972
|
-
#endif
|
1973
|
-
}
|
1974
|
-
|
1975
|
-
|
1976
|
-
/****************************
|
1977
|
-
EventMachine_t::OpenKeyboard
|
1978
|
-
****************************/
|
1979
|
-
|
1980
|
-
const unsigned long EventMachine_t::OpenKeyboard()
|
1981
|
-
{
|
1982
|
-
KeyboardDescriptor *kd = new KeyboardDescriptor (this);
|
1983
|
-
if (!kd)
|
1984
|
-
throw std::runtime_error ("no keyboard-object allocated");
|
1985
|
-
Add (kd);
|
1986
|
-
return kd->GetBinding();
|
1987
|
-
}
|
1988
|
-
|
1989
|
-
|
1990
|
-
/**********************************
|
1991
|
-
EventMachine_t::GetConnectionCount
|
1992
|
-
**********************************/
|
1993
|
-
|
1994
|
-
int EventMachine_t::GetConnectionCount ()
|
1995
|
-
{
|
1996
|
-
return Descriptors.size() + NewDescriptors.size();
|
1997
|
-
}
|
1998
|
-
|
1999
|
-
|
2000
|
-
/************************
|
2001
|
-
EventMachine_t::WatchPid
|
2002
|
-
************************/
|
2003
|
-
|
2004
|
-
const unsigned long EventMachine_t::WatchPid (int pid)
|
2005
|
-
{
|
2006
|
-
#ifdef HAVE_KQUEUE
|
2007
|
-
if (!bKqueue)
|
2008
|
-
throw std::runtime_error("must enable kqueue");
|
2009
|
-
|
2010
|
-
struct kevent event;
|
2011
|
-
int kqres;
|
2012
|
-
|
2013
|
-
EV_SET(&event, pid, EVFILT_PROC, EV_ADD, NOTE_EXIT | NOTE_FORK, 0, 0);
|
2014
|
-
|
2015
|
-
// Attempt to register the event
|
2016
|
-
kqres = kevent(kqfd, &event, 1, NULL, 0, NULL);
|
2017
|
-
if (kqres == -1) {
|
2018
|
-
char errbuf[200];
|
2019
|
-
sprintf(errbuf, "failed to register file watch descriptor with kqueue: %s", strerror(errno));
|
2020
|
-
throw std::runtime_error(errbuf);
|
2021
|
-
}
|
2022
|
-
#endif
|
2023
|
-
|
2024
|
-
#ifdef HAVE_KQUEUE
|
2025
|
-
Bindable_t* b = new Bindable_t();
|
2026
|
-
Pids.insert(make_pair (pid, b));
|
2027
|
-
|
2028
|
-
return b->GetBinding();
|
2029
|
-
#endif
|
2030
|
-
|
2031
|
-
throw std::runtime_error("no pid watching support on this system");
|
2032
|
-
}
|
2033
|
-
|
2034
|
-
/**************************
|
2035
|
-
EventMachine_t::UnwatchPid
|
2036
|
-
**************************/
|
2037
|
-
|
2038
|
-
void EventMachine_t::UnwatchPid (int pid)
|
2039
|
-
{
|
2040
|
-
Bindable_t *b = Pids[pid];
|
2041
|
-
assert(b);
|
2042
|
-
Pids.erase(pid);
|
2043
|
-
|
2044
|
-
#ifdef HAVE_KQUEUE
|
2045
|
-
struct kevent k;
|
2046
|
-
|
2047
|
-
EV_SET(&k, pid, EVFILT_PROC, EV_DELETE, 0, 0, 0);
|
2048
|
-
/*int t =*/ kevent (kqfd, &k, 1, NULL, 0, NULL);
|
2049
|
-
// t==-1 if the process already exited; ignore this for now
|
2050
|
-
#endif
|
2051
|
-
|
2052
|
-
if (EventCallback)
|
2053
|
-
(*EventCallback)(b->GetBinding(), EM_CONNECTION_UNBOUND, NULL, 0);
|
2054
|
-
|
2055
|
-
delete b;
|
2056
|
-
}
|
2057
|
-
|
2058
|
-
void EventMachine_t::UnwatchPid (const unsigned long sig)
|
2059
|
-
{
|
2060
|
-
for(map<int, Bindable_t*>::iterator i=Pids.begin(); i != Pids.end(); i++)
|
2061
|
-
{
|
2062
|
-
if (i->second->GetBinding() == sig) {
|
2063
|
-
UnwatchPid (i->first);
|
2064
|
-
return;
|
2065
|
-
}
|
2066
|
-
}
|
2067
|
-
|
2068
|
-
throw std::runtime_error("attempted to remove invalid pid signature");
|
2069
|
-
}
|
2070
|
-
|
2071
|
-
|
2072
|
-
/*************************
|
2073
|
-
EventMachine_t::WatchFile
|
2074
|
-
*************************/
|
2075
|
-
|
2076
|
-
const unsigned long EventMachine_t::WatchFile (const char *fpath)
|
2077
|
-
{
|
2078
|
-
struct stat sb;
|
2079
|
-
int sres;
|
2080
|
-
int wd = -1;
|
2081
|
-
|
2082
|
-
sres = stat(fpath, &sb);
|
2083
|
-
|
2084
|
-
if (sres == -1) {
|
2085
|
-
char errbuf[300];
|
2086
|
-
sprintf(errbuf, "error registering file %s for watching: %s", fpath, strerror(errno));
|
2087
|
-
throw std::runtime_error(errbuf);
|
2088
|
-
}
|
2089
|
-
|
2090
|
-
#ifdef HAVE_INOTIFY
|
2091
|
-
if (!inotify) {
|
2092
|
-
inotify = new InotifyDescriptor(this);
|
2093
|
-
assert (inotify);
|
2094
|
-
Add(inotify);
|
2095
|
-
}
|
2096
|
-
|
2097
|
-
wd = inotify_add_watch(inotify->GetSocket(), fpath, IN_MODIFY | IN_DELETE_SELF | IN_MOVE_SELF);
|
2098
|
-
if (wd == -1) {
|
2099
|
-
char errbuf[300];
|
2100
|
-
sprintf(errbuf, "failed to open file %s for registering with inotify: %s", fpath, strerror(errno));
|
2101
|
-
throw std::runtime_error(errbuf);
|
2102
|
-
}
|
2103
|
-
#endif
|
2104
|
-
|
2105
|
-
#ifdef HAVE_KQUEUE
|
2106
|
-
if (!bKqueue)
|
2107
|
-
throw std::runtime_error("must enable kqueue");
|
2108
|
-
|
2109
|
-
// With kqueue we have to open the file first and use the resulting fd to register for events
|
2110
|
-
wd = open(fpath, O_RDONLY);
|
2111
|
-
if (wd == -1) {
|
2112
|
-
char errbuf[300];
|
2113
|
-
sprintf(errbuf, "failed to open file %s for registering with kqueue: %s", fpath, strerror(errno));
|
2114
|
-
throw std::runtime_error(errbuf);
|
2115
|
-
}
|
2116
|
-
_RegisterKqueueFileEvent(wd);
|
2117
|
-
#endif
|
2118
|
-
|
2119
|
-
if (wd != -1) {
|
2120
|
-
Bindable_t* b = new Bindable_t();
|
2121
|
-
Files.insert(make_pair (wd, b));
|
2122
|
-
|
2123
|
-
return b->GetBinding();
|
2124
|
-
}
|
2125
|
-
|
2126
|
-
throw std::runtime_error("no file watching support on this system"); // is this the right thing to do?
|
2127
|
-
}
|
2128
|
-
|
2129
|
-
|
2130
|
-
/***************************
|
2131
|
-
EventMachine_t::UnwatchFile
|
2132
|
-
***************************/
|
2133
|
-
|
2134
|
-
void EventMachine_t::UnwatchFile (int wd)
|
2135
|
-
{
|
2136
|
-
Bindable_t *b = Files[wd];
|
2137
|
-
assert(b);
|
2138
|
-
Files.erase(wd);
|
2139
|
-
|
2140
|
-
#ifdef HAVE_INOTIFY
|
2141
|
-
inotify_rm_watch(inotify->GetSocket(), wd);
|
2142
|
-
#elif HAVE_KQUEUE
|
2143
|
-
// With kqueue, closing the monitored fd automatically clears all registered events for it
|
2144
|
-
close(wd);
|
2145
|
-
#endif
|
2146
|
-
|
2147
|
-
if (EventCallback)
|
2148
|
-
(*EventCallback)(b->GetBinding(), EM_CONNECTION_UNBOUND, NULL, 0);
|
2149
|
-
|
2150
|
-
delete b;
|
2151
|
-
}
|
2152
|
-
|
2153
|
-
void EventMachine_t::UnwatchFile (const unsigned long sig)
|
2154
|
-
{
|
2155
|
-
for(map<int, Bindable_t*>::iterator i=Files.begin(); i != Files.end(); i++)
|
2156
|
-
{
|
2157
|
-
if (i->second->GetBinding() == sig) {
|
2158
|
-
UnwatchFile (i->first);
|
2159
|
-
return;
|
2160
|
-
}
|
2161
|
-
}
|
2162
|
-
throw std::runtime_error("attempted to remove invalid watch signature");
|
2163
|
-
}
|
2164
|
-
|
2165
|
-
|
2166
|
-
/***********************************
|
2167
|
-
EventMachine_t::_ReadInotify_Events
|
2168
|
-
************************************/
|
2169
|
-
|
2170
|
-
void EventMachine_t::_ReadInotifyEvents()
|
2171
|
-
{
|
2172
|
-
#ifdef HAVE_INOTIFY
|
2173
|
-
struct inotify_event event;
|
2174
|
-
|
2175
|
-
assert(EventCallback);
|
2176
|
-
|
2177
|
-
while (read(inotify->GetSocket(), &event, INOTIFY_EVENT_SIZE) > 0) {
|
2178
|
-
assert(event.len == 0);
|
2179
|
-
if (event.mask & IN_MODIFY)
|
2180
|
-
(*EventCallback)(Files [event.wd]->GetBinding(), EM_CONNECTION_READ, "modified", 8);
|
2181
|
-
if (event.mask & IN_MOVE_SELF)
|
2182
|
-
(*EventCallback)(Files [event.wd]->GetBinding(), EM_CONNECTION_READ, "moved", 5);
|
2183
|
-
if (event.mask & IN_DELETE_SELF) {
|
2184
|
-
(*EventCallback)(Files [event.wd]->GetBinding(), EM_CONNECTION_READ, "deleted", 7);
|
2185
|
-
UnwatchFile ((int)event.wd);
|
2186
|
-
}
|
2187
|
-
}
|
2188
|
-
#endif
|
2189
|
-
}
|
2190
|
-
|
2191
|
-
|
2192
|
-
/*************************************
|
2193
|
-
EventMachine_t::_HandleKqueuePidEvent
|
2194
|
-
*************************************/
|
2195
|
-
|
2196
|
-
#ifdef HAVE_KQUEUE
|
2197
|
-
void EventMachine_t::_HandleKqueuePidEvent(struct kevent *event)
|
2198
|
-
{
|
2199
|
-
assert(EventCallback);
|
2200
|
-
|
2201
|
-
if (event->fflags & NOTE_FORK)
|
2202
|
-
(*EventCallback)(Pids [(int) event->ident]->GetBinding(), EM_CONNECTION_READ, "fork", 4);
|
2203
|
-
if (event->fflags & NOTE_EXIT) {
|
2204
|
-
(*EventCallback)(Pids [(int) event->ident]->GetBinding(), EM_CONNECTION_READ, "exit", 4);
|
2205
|
-
// stop watching the pid if it died
|
2206
|
-
UnwatchPid ((int)event->ident);
|
2207
|
-
}
|
2208
|
-
}
|
2209
|
-
#endif
|
2210
|
-
|
2211
|
-
|
2212
|
-
/**************************************
|
2213
|
-
EventMachine_t::_HandleKqueueFileEvent
|
2214
|
-
***************************************/
|
2215
|
-
|
2216
|
-
#ifdef HAVE_KQUEUE
|
2217
|
-
void EventMachine_t::_HandleKqueueFileEvent(struct kevent *event)
|
2218
|
-
{
|
2219
|
-
assert(EventCallback);
|
2220
|
-
|
2221
|
-
if (event->fflags & NOTE_WRITE)
|
2222
|
-
(*EventCallback)(Files [(int) event->ident]->GetBinding(), EM_CONNECTION_READ, "modified", 8);
|
2223
|
-
if (event->fflags & NOTE_RENAME)
|
2224
|
-
(*EventCallback)(Files [(int) event->ident]->GetBinding(), EM_CONNECTION_READ, "moved", 5);
|
2225
|
-
if (event->fflags & NOTE_DELETE) {
|
2226
|
-
(*EventCallback)(Files [(int) event->ident]->GetBinding(), EM_CONNECTION_READ, "deleted", 7);
|
2227
|
-
UnwatchFile ((int)event->ident);
|
2228
|
-
}
|
2229
|
-
}
|
2230
|
-
#endif
|
2231
|
-
|
2232
|
-
|
2233
|
-
/****************************************
|
2234
|
-
EventMachine_t::_RegisterKqueueFileEvent
|
2235
|
-
*****************************************/
|
2236
|
-
|
2237
|
-
#ifdef HAVE_KQUEUE
|
2238
|
-
void EventMachine_t::_RegisterKqueueFileEvent(int fd)
|
2239
|
-
{
|
2240
|
-
struct kevent newevent;
|
2241
|
-
int kqres;
|
2242
|
-
|
2243
|
-
// Setup the event with our fd and proper flags
|
2244
|
-
EV_SET(&newevent, fd, EVFILT_VNODE, EV_ADD | EV_CLEAR, NOTE_DELETE | NOTE_RENAME | NOTE_WRITE, 0, 0);
|
2245
|
-
|
2246
|
-
// Attempt to register the event
|
2247
|
-
kqres = kevent(kqfd, &newevent, 1, NULL, 0, NULL);
|
2248
|
-
if (kqres == -1) {
|
2249
|
-
char errbuf[200];
|
2250
|
-
sprintf(errbuf, "failed to register file watch descriptor with kqueue: %s", strerror(errno));
|
2251
|
-
close(fd);
|
2252
|
-
throw std::runtime_error(errbuf);
|
2253
|
-
}
|
2254
|
-
}
|
2255
|
-
#endif
|
2256
|
-
|
2257
|
-
|
2258
|
-
/************************************
|
2259
|
-
EventMachine_t::GetHeartbeatInterval
|
2260
|
-
*************************************/
|
2261
|
-
|
2262
|
-
float EventMachine_t::GetHeartbeatInterval()
|
2263
|
-
{
|
2264
|
-
return ((float)HeartbeatInterval / 1000000);
|
2265
|
-
}
|
2266
|
-
|
2267
|
-
|
2268
|
-
/************************************
|
2269
|
-
EventMachine_t::SetHeartbeatInterval
|
2270
|
-
*************************************/
|
2271
|
-
|
2272
|
-
int EventMachine_t::SetHeartbeatInterval(float interval)
|
2273
|
-
{
|
2274
|
-
int iv = (int)(interval * 1000000);
|
2275
|
-
if (iv > 0) {
|
2276
|
-
HeartbeatInterval = iv;
|
2277
|
-
return 1;
|
2278
|
-
}
|
2279
|
-
return 0;
|
2280
|
-
}
|
2281
|
-
//#endif // OS_UNIX
|
2282
|
-
|