webroar 0.4.0 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +39 -2
- data/COPYING +0 -0
- data/README +0 -0
- data/Rakefile +0 -0
- data/conf/mime_type.yml +0 -0
- data/conf/server_internal_config.yml +16 -16
- data/conf/starling_server_config.yml +0 -0
- data/conf/test_suite_config.yml +0 -0
- data/doc/images/icons/caution.png +0 -0
- data/doc/images/icons/example.png +0 -0
- data/doc/images/icons/important.png +0 -0
- data/doc/images/icons/note.png +0 -0
- data/doc/images/icons/tip.png +0 -0
- data/doc/images/icons/warning.png +0 -0
- data/doc/user-guide.html +0 -0
- data/doc/user-guide.txt +0 -0
- data/lib/command_runner.rb +0 -0
- data/lib/constant.rb +0 -0
- data/lib/dependencies.rb +0 -0
- data/lib/installer.rb +4 -4
- data/lib/user_interaction.rb +0 -0
- data/lib/webroar_command.rb +37 -4
- data/src/admin_panel/Rakefile +0 -0
- data/src/admin_panel/app/controllers/admin_controller.rb +24 -36
- data/src/admin_panel/app/controllers/application_specification_controller.rb +0 -0
- data/src/admin_panel/app/controllers/exceptions_controller.rb +59 -18
- data/src/admin_panel/app/controllers/graph_controller.rb +55 -18
- data/src/admin_panel/app/controllers/headers_controller.rb +0 -0
- data/src/admin_panel/app/controllers/mail_specification_controller.rb +0 -0
- data/src/admin_panel/app/controllers/server_specification_controller.rb +0 -0
- data/src/admin_panel/app/helpers/admin_helper.rb +41 -66
- data/src/admin_panel/app/helpers/application_helper.rb +0 -0
- data/src/admin_panel/app/helpers/exceptions_helper.rb +0 -0
- data/src/admin_panel/app/helpers/graph_helper.rb +0 -0
- data/src/admin_panel/app/models/app.rb +6 -0
- data/src/admin_panel/app/models/app_exception.rb +68 -29
- data/src/admin_panel/app/models/application_specification.rb +5 -1
- data/src/admin_panel/app/models/exception_detail.rb +23 -0
- data/src/admin_panel/app/models/headers.rb +0 -0
- data/src/admin_panel/app/models/mail_specification.rb +0 -0
- data/src/admin_panel/app/models/resource_usage.rb +29 -12
- data/src/admin_panel/app/models/server_specification.rb +0 -0
- data/src/admin_panel/app/models/user.rb +0 -0
- data/src/admin_panel/app/views/admin/_application_table.html.erb +36 -26
- data/src/admin_panel/app/views/admin/change_password_form.html.erb +16 -19
- data/src/admin_panel/app/views/admin/configuration.html.erb +29 -40
- data/src/admin_panel/app/views/admin/home.html.erb +31 -37
- data/src/admin_panel/app/views/admin/index.html.erb +8 -11
- data/src/admin_panel/app/views/application_specification/_application_specification_form.html.erb +35 -56
- data/src/admin_panel/app/views/application_specification/add_application_form.html.erb +1 -4
- data/src/admin_panel/app/views/application_specification/edit_application_form.html.erb +2 -4
- data/src/admin_panel/app/views/exceptions/_add_and_list_exception_classes.html.erb +53 -0
- data/src/admin_panel/app/views/exceptions/_add_exception_class_form.html.erb +25 -0
- data/src/admin_panel/app/views/exceptions/_exception_list_partial.html.erb +45 -22
- data/src/admin_panel/app/views/exceptions/_exceptions_listing_partial.html.erb +2 -2
- data/src/admin_panel/app/views/exceptions/_link_partial.html.erb +0 -0
- data/src/admin_panel/app/views/exceptions/_show.html.erb +74 -74
- data/src/admin_panel/app/views/exceptions/index.html.erb +2 -4
- data/src/admin_panel/app/views/graph/_database_usage_graph.html.erb +0 -0
- data/src/admin_panel/app/views/graph/_get_database_data.html.erb +5 -2
- data/src/admin_panel/app/views/graph/_get_resource_usage_data_app.html.erb +4 -4
- data/src/admin_panel/app/views/graph/_get_resource_usage_data_server.html.erb +4 -8
- data/src/admin_panel/app/views/graph/_get_throughput_data.html.erb +10 -7
- data/src/admin_panel/app/views/graph/_get_url_breakup_data.html.erb +4 -7
- data/src/admin_panel/app/views/graph/_get_url_data.html.erb +12 -13
- data/src/admin_panel/app/views/graph/_graph_page.html.erb +18 -28
- data/src/admin_panel/app/views/graph/_javascript_partial.html.erb +0 -0
- data/src/admin_panel/app/views/graph/_pie.html.erb +3 -5
- data/src/admin_panel/app/views/graph/_query_date.html.erb +3 -4
- data/src/admin_panel/app/views/graph/_query_period.html.erb +1 -2
- data/src/admin_panel/app/views/graph/_resource_usage_graph_app.html.erb +0 -0
- data/src/admin_panel/app/views/graph/_resource_usage_graph_server.html.erb +0 -0
- data/src/admin_panel/app/views/graph/_slider_partial.html.erb +2 -2
- data/src/admin_panel/app/views/graph/_throughput_graph.html.erb +0 -0
- data/src/admin_panel/app/views/graph/_url_breakup_graph.html.erb +0 -0
- data/src/admin_panel/app/views/graph/_url_calls_graph.html.erb +0 -0
- data/src/admin_panel/app/views/graph/index.html.erb +3 -3
- data/src/admin_panel/app/views/headers/_add_expires_text_box.html.erb +7 -14
- data/src/admin_panel/app/views/headers/_expires_by_type_form.html.erb +15 -35
- data/src/admin_panel/app/views/headers/_headers_table.html.erb +28 -54
- data/src/admin_panel/app/views/layouts/application.html.erb +14 -31
- data/src/admin_panel/app/views/layouts/index.html.erb +21 -16
- data/src/admin_panel/app/views/mail_specification/_current_spec.html.erb +39 -48
- data/src/admin_panel/app/views/mail_specification/_sendmail_form.html.erb +17 -26
- data/src/admin_panel/app/views/mail_specification/_smtp_form.html.erb +31 -53
- data/src/admin_panel/app/views/server_specification/_add_div.html.erb +15 -21
- data/src/admin_panel/app/views/server_specification/_ssl_support_form.html.erb +13 -22
- data/src/admin_panel/config/boot.rb +0 -0
- data/src/admin_panel/config/database.yml +0 -0
- data/src/admin_panel/config/environment.rb +0 -0
- data/src/admin_panel/config/environments/development.rb +0 -0
- data/src/admin_panel/config/environments/production.rb +0 -0
- data/src/admin_panel/config/environments/test.rb +0 -0
- data/src/admin_panel/config/initializers/application_constants.rb +2 -1
- data/src/admin_panel/config/initializers/inflections.rb +0 -0
- data/src/admin_panel/config/initializers/mime_types.rb +0 -0
- data/src/admin_panel/config/initializers/new_rails_defaults.rb +0 -0
- data/src/admin_panel/config/initializers/ssl.rb +0 -0
- data/src/admin_panel/db/migrate/20081020053129_create_app_time_samples.rb +0 -0
- data/src/admin_panel/db/migrate/20081020053411_create_url_time_samples.rb +0 -0
- data/src/admin_panel/db/migrate/20081021005144_add_constraints.rb +0 -0
- data/src/admin_panel/db/migrate/20100909072712_rename_app_exceptions.rb +29 -0
- data/src/admin_panel/db/migrate/20100909073026_create_new_app_exceptions.rb +36 -0
- data/src/admin_panel/db/migrate/{20090407052622_create_app_exceptions.rb → 20100909073236_create_exception_details.rb} +8 -9
- data/src/admin_panel/db/migrate/20100909073424_migrate_tmp_exceptions.rb +69 -0
- data/src/admin_panel/db/migrate/20100909073546_drop_tmp_exceptions.rb +28 -0
- data/src/admin_panel/doc/app/classes/ActionView/Helpers/AssetTagHelper.html +0 -0
- data/src/admin_panel/doc/app/classes/ActionView/Helpers.html +0 -0
- data/src/admin_panel/doc/app/classes/ActionView.html +0 -0
- data/src/admin_panel/doc/app/classes/AdminController.html +0 -0
- data/src/admin_panel/doc/app/classes/AdminHelper.html +0 -0
- data/src/admin_panel/doc/app/classes/Analytics/Database.html +0 -0
- data/src/admin_panel/doc/app/classes/Analytics/ResourceUsage.html +0 -0
- data/src/admin_panel/doc/app/classes/Analytics/Throughput.html +0 -0
- data/src/admin_panel/doc/app/classes/Analytics/Url.html +0 -0
- data/src/admin_panel/doc/app/classes/Analytics/UrlBreakup.html +0 -0
- data/src/admin_panel/doc/app/classes/Analytics.html +0 -0
- data/src/admin_panel/doc/app/classes/App.html +0 -0
- data/src/admin_panel/doc/app/classes/AppException.html +0 -0
- data/src/admin_panel/doc/app/classes/AppTimeSample.html +0 -0
- data/src/admin_panel/doc/app/classes/ApplicationController.html +0 -0
- data/src/admin_panel/doc/app/classes/ApplicationHelper.html +0 -0
- data/src/admin_panel/doc/app/classes/ApplicationSpecification.html +0 -0
- data/src/admin_panel/doc/app/classes/ApplicationSpecificationController.html +0 -0
- data/src/admin_panel/doc/app/classes/Control.html +0 -0
- data/src/admin_panel/doc/app/classes/ExceptionsController.html +0 -0
- data/src/admin_panel/doc/app/classes/ExceptionsHelper.html +0 -0
- data/src/admin_panel/doc/app/classes/GraphController.html +0 -0
- data/src/admin_panel/doc/app/classes/GraphHelper.html +0 -0
- data/src/admin_panel/doc/app/classes/MailSpecification.html +0 -0
- data/src/admin_panel/doc/app/classes/MailSpecificationController.html +0 -0
- data/src/admin_panel/doc/app/classes/PseudoModel.html +0 -0
- data/src/admin_panel/doc/app/classes/ResourceUsage.html +0 -0
- data/src/admin_panel/doc/app/classes/SCGI.html +0 -0
- data/src/admin_panel/doc/app/classes/ServerSpecification.html +0 -0
- data/src/admin_panel/doc/app/classes/ServerSpecificationController.html +0 -0
- data/src/admin_panel/doc/app/classes/UrlBreakupTimeSample.html +0 -0
- data/src/admin_panel/doc/app/classes/UrlTimeSample.html +0 -0
- data/src/admin_panel/doc/app/classes/User.html +0 -0
- data/src/admin_panel/doc/app/classes/YAMLWriter.html +0 -0
- data/src/admin_panel/doc/app/created.rid +0 -0
- data/src/admin_panel/doc/app/files/app/controllers/admin_controller_rb.html +0 -0
- data/src/admin_panel/doc/app/files/app/controllers/application_controller_rb.html +0 -0
- data/src/admin_panel/doc/app/files/app/controllers/application_specification_controller_rb.html +0 -0
- data/src/admin_panel/doc/app/files/app/controllers/exceptions_controller_rb.html +0 -0
- data/src/admin_panel/doc/app/files/app/controllers/graph_controller_rb.html +0 -0
- data/src/admin_panel/doc/app/files/app/controllers/mail_specification_controller_rb.html +0 -0
- data/src/admin_panel/doc/app/files/app/controllers/server_specification_controller_rb.html +0 -0
- data/src/admin_panel/doc/app/files/app/helpers/admin_helper_rb.html +0 -0
- data/src/admin_panel/doc/app/files/app/helpers/application_helper_rb.html +0 -0
- data/src/admin_panel/doc/app/files/app/helpers/exceptions_helper_rb.html +0 -0
- data/src/admin_panel/doc/app/files/app/helpers/graph_helper_rb.html +0 -0
- data/src/admin_panel/doc/app/files/app/models/app_exception_rb.html +0 -0
- data/src/admin_panel/doc/app/files/app/models/app_rb.html +0 -0
- data/src/admin_panel/doc/app/files/app/models/app_time_sample_rb.html +0 -0
- data/src/admin_panel/doc/app/files/app/models/application_specification_rb.html +0 -0
- data/src/admin_panel/doc/app/files/app/models/mail_specification_rb.html +0 -0
- data/src/admin_panel/doc/app/files/app/models/pseudo_model_rb.html +0 -0
- data/src/admin_panel/doc/app/files/app/models/resource_usage_rb.html +0 -0
- data/src/admin_panel/doc/app/files/app/models/server_specification_rb.html +0 -0
- data/src/admin_panel/doc/app/files/app/models/url_breakup_time_sample_rb.html +0 -0
- data/src/admin_panel/doc/app/files/app/models/url_time_sample_rb.html +0 -0
- data/src/admin_panel/doc/app/files/app/models/user_rb.html +0 -0
- data/src/admin_panel/doc/app/files/doc/README_FOR_APP.html +0 -0
- data/src/admin_panel/doc/app/files/lib/asset_tag_helper_ext_rb.html +0 -0
- data/src/admin_panel/doc/app/files/lib/control_rb.html +0 -0
- data/src/admin_panel/doc/app/files/lib/graph_controller_extensions/database_analytics_rb.html +0 -0
- data/src/admin_panel/doc/app/files/lib/graph_controller_extensions/resource_usage_analytics_rb.html +0 -0
- data/src/admin_panel/doc/app/files/lib/graph_controller_extensions/throughput_analytics_rb.html +0 -0
- data/src/admin_panel/doc/app/files/lib/graph_controller_extensions/url_analytics_rb.html +0 -0
- data/src/admin_panel/doc/app/files/lib/graph_controller_extensions/url_breakup_analytics_rb.html +0 -0
- data/src/admin_panel/doc/app/files/lib/scgi_rb.html +0 -0
- data/src/admin_panel/doc/app/files/lib/yaml_writer_rb.html +0 -0
- data/src/admin_panel/doc/app/fr_class_index.html +0 -0
- data/src/admin_panel/doc/app/fr_file_index.html +0 -0
- data/src/admin_panel/doc/app/fr_method_index.html +0 -0
- data/src/admin_panel/doc/app/index.html +0 -0
- data/src/admin_panel/doc/app/rdoc-style.css +0 -0
- data/src/admin_panel/lib/asset_tag_helper_ext.rb +0 -0
- data/src/admin_panel/lib/control.rb +0 -0
- data/src/admin_panel/lib/graph_controller_extensions/database_analytics.rb +10 -3
- data/src/admin_panel/lib/graph_controller_extensions/resource_usage_analytics.rb +0 -0
- data/src/admin_panel/lib/graph_controller_extensions/throughput_analytics.rb +8 -1
- data/src/admin_panel/lib/graph_controller_extensions/url_analytics.rb +7 -2
- data/src/admin_panel/lib/graph_controller_extensions/url_breakup_analytics.rb +3 -3
- data/src/admin_panel/lib/scgi.rb +0 -0
- data/src/admin_panel/lib/yaml_writer.rb +4 -4
- data/src/admin_panel/public/404.html +0 -0
- data/src/admin_panel/public/422.html +0 -0
- data/src/admin_panel/public/500.html +0 -0
- data/src/admin_panel/public/blank_iframe.html +0 -0
- data/src/admin_panel/public/favicon.ico +0 -0
- data/src/admin_panel/public/images/analytics_ad.gif +0 -0
- data/src/admin_panel/public/images/analytics_ad_ov.gif +0 -0
- data/src/admin_panel/public/images/analytics_dn.gif +0 -0
- data/src/admin_panel/public/images/analytics_up.gif +0 -0
- data/src/admin_panel/public/images/bar.gif +0 -0
- data/src/admin_panel/public/images/bullet.gif +0 -0
- data/src/admin_panel/public/images/calendar_date_select/calendar.gif +0 -0
- data/src/admin_panel/public/images/callout_left.gif +0 -0
- data/src/admin_panel/public/images/callout_right.gif +0 -0
- data/src/admin_panel/public/images/close.gif +0 -0
- data/src/admin_panel/public/images/configuration_ad.gif +0 -0
- data/src/admin_panel/public/images/configuration_ad_ov.gif +0 -0
- data/src/admin_panel/public/images/configuration_dn.gif +0 -0
- data/src/admin_panel/public/images/configuration_up.gif +0 -0
- data/src/admin_panel/public/images/exception_dn.gif +0 -0
- data/src/admin_panel/public/images/exception_up.gif +0 -0
- data/src/admin_panel/public/images/exceptions_ad.gif +0 -0
- data/src/admin_panel/public/images/exceptions_ad_ov.gif +0 -0
- data/src/admin_panel/public/images/external.gif +0 -0
- data/src/admin_panel/public/images/footer-bg.gif +0 -0
- data/src/admin_panel/public/images/home_ad.gif +0 -0
- data/src/admin_panel/public/images/home_ad_ov.gif +0 -0
- data/src/admin_panel/public/images/home_dn.gif +0 -0
- data/src/admin_panel/public/images/home_down.jpg +0 -0
- data/src/admin_panel/public/images/home_up.gif +0 -0
- data/src/admin_panel/public/images/home_up.jpg +0 -0
- data/src/admin_panel/public/images/impetus.gif +0 -0
- data/src/admin_panel/public/images/left_menu.gif +0 -0
- data/src/admin_panel/public/images/loading.gif +0 -0
- data/src/admin_panel/public/images/logout.gif +0 -0
- data/src/admin_panel/public/images/rails.png +0 -0
- data/src/admin_panel/public/images/right_menu.gif +0 -0
- data/src/admin_panel/public/images/server_logo.gif +0 -0
- data/src/admin_panel/public/images/setting_dn.gif +0 -0
- data/src/admin_panel/public/images/setting_up.gif +0 -0
- data/src/admin_panel/public/images/settings_ad.gif +0 -0
- data/src/admin_panel/public/images/settings_ad_ov.gif +0 -0
- data/src/admin_panel/public/images/settings_down.jpg +0 -0
- data/src/admin_panel/public/images/settings_up.jpg +0 -0
- data/src/admin_panel/public/images/slider.jpg +0 -0
- data/src/admin_panel/public/images/spinner.gif +0 -0
- data/src/admin_panel/public/images/tit_analytics_ad.gif +0 -0
- data/src/admin_panel/public/images/tit_configuration_ad.gif +0 -0
- data/src/admin_panel/public/images/tit_exceptions_ad.gif +0 -0
- data/src/admin_panel/public/images/tit_home_ad.gif +0 -0
- data/src/admin_panel/public/images/tit_settings_ad.gif +0 -0
- data/src/admin_panel/public/images/webroar-logo.gif +0 -0
- data/src/admin_panel/public/javascripts/application.js +477 -49
- data/src/admin_panel/public/javascripts/builder.js +0 -0
- data/src/admin_panel/public/javascripts/calendar_date_select/calendar_date_select.js +9 -4
- data/src/admin_panel/public/javascripts/calendar_date_select/format_american.js +2 -1
- data/src/admin_panel/public/javascripts/calendar_date_select/format_danish.js +31 -0
- data/src/admin_panel/public/javascripts/calendar_date_select/format_db.js +0 -0
- data/src/admin_panel/public/javascripts/calendar_date_select/format_euro_24hr.js +0 -0
- data/src/admin_panel/public/javascripts/calendar_date_select/format_euro_24hr_ymd.js +0 -0
- data/src/admin_panel/public/javascripts/calendar_date_select/format_finnish.js +0 -0
- data/src/admin_panel/public/javascripts/calendar_date_select/format_hyphen_ampm.js +0 -0
- data/src/admin_panel/public/javascripts/calendar_date_select/format_iso_date.js +19 -36
- data/src/admin_panel/public/javascripts/calendar_date_select/format_italian.js +0 -0
- data/src/admin_panel/public/javascripts/calendar_date_select/locale/ar.js +10 -0
- data/src/admin_panel/public/javascripts/calendar_date_select/locale/da.js +11 -0
- data/src/admin_panel/public/javascripts/calendar_date_select/locale/de.js +0 -0
- data/src/admin_panel/public/javascripts/calendar_date_select/locale/es.js +11 -0
- data/src/admin_panel/public/javascripts/calendar_date_select/locale/fi.js +0 -0
- data/src/admin_panel/public/javascripts/calendar_date_select/locale/fr.js +2 -1
- data/src/admin_panel/public/javascripts/calendar_date_select/locale/it.js +9 -0
- data/src/admin_panel/public/javascripts/calendar_date_select/locale/nl.js +11 -0
- data/src/admin_panel/public/javascripts/calendar_date_select/locale/pl.js +2 -1
- data/src/admin_panel/public/javascripts/calendar_date_select/locale/pt.js +0 -0
- data/src/admin_panel/public/javascripts/calendar_date_select/locale/ru.js +0 -0
- data/src/admin_panel/public/javascripts/calendar_date_select/locale/sl.js +11 -0
- data/src/admin_panel/public/javascripts/controls.js +0 -0
- data/src/admin_panel/public/javascripts/dragdrop.js +0 -0
- data/src/admin_panel/public/javascripts/effects.js +0 -0
- data/src/admin_panel/public/javascripts/prototype.js +0 -0
- data/src/admin_panel/public/open-flash-chart.swf +0 -0
- data/src/admin_panel/public/robots.txt +0 -0
- data/src/admin_panel/public/stylesheets/calendar_date_select/blue.css +0 -0
- data/src/admin_panel/public/stylesheets/calendar_date_select/default.css +0 -0
- data/src/admin_panel/public/stylesheets/calendar_date_select/green.css +142 -0
- data/src/admin_panel/public/stylesheets/calendar_date_select/plain.css +0 -0
- data/src/admin_panel/public/stylesheets/calendar_date_select/red.css +0 -0
- data/src/admin_panel/public/stylesheets/calendar_date_select/silver.css +0 -0
- data/src/admin_panel/public/stylesheets/netscape/login.css +36 -70
- data/src/admin_panel/public/stylesheets/netscape/style.css +276 -627
- data/src/admin_panel/public/stylesheets/other/login.css +36 -70
- data/src/admin_panel/public/stylesheets/other/style.css +164 -501
- data/src/admin_panel/public/stylesheets/safari/login.css +33 -49
- data/src/admin_panel/public/stylesheets/safari/style.css +276 -638
- data/src/admin_panel/test/fixtures/exception_details.yml +7 -0
- data/src/admin_panel/test/functional/admin_controller_test.rb +0 -0
- data/src/admin_panel/test/functional/application_specification_controller_test.rb +0 -0
- data/src/admin_panel/test/functional/exceptions_controller_test.rb +0 -0
- data/src/admin_panel/test/functional/graph_controller_test.rb +0 -0
- data/src/admin_panel/test/test_helper.rb +0 -0
- data/src/admin_panel/test/unit/app_exception_test.rb +0 -0
- data/src/admin_panel/test/unit/exception_detail_test.rb +8 -0
- data/src/admin_panel/test/unit/helpers/exceptions_helper_test.rb +0 -0
- data/src/admin_panel/vendor/plugins/open_flash_chart_2/requirements/VERSION.txt +0 -0
- data/src/admin_panel/vendor/plugins/ssl_requirement/README +0 -0
- data/src/admin_panel/vendor/plugins/ssl_requirement/lib/ssl_requirement.rb +0 -0
- data/src/admin_panel/vendor/plugins/ssl_requirement/test/ssl_requirement_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/CHANGELOG +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/MIT-LICENSE +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/README +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/Rakefile +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/install.rb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/adv_attr_accessor.rb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/base.rb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/helpers.rb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/mail_helper.rb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/part.rb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/part_container.rb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/quoting.rb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/test_case.rb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/test_helper.rb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/utils.rb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/vendor/text_format.rb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/address.rb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/attachments.rb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/base64.rb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/compat.rb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/config.rb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/core_extensions.rb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/encode.rb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/header.rb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/index.rb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/interface.rb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/loader.rb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/mail.rb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/mailbox.rb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/main.rb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/mbox.rb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/net.rb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/obsolete.rb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/parser.rb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/port.rb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/quoting.rb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/require_arch.rb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/scanner.rb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/scanner_r.rb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/stringio.rb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/utils.rb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/version.rb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail.rb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail.rb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer/version.rb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/lib/action_mailer.rb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/lib/actionmailer.rb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/test/abstract_unit.rb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/test/asset_host_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/test/delivery_method_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/asset_host_mailer/email_with_asset.html.erb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/auto_layout_mailer/hello.html.erb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/auto_layout_mailer/multipart.text.html.erb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/auto_layout_mailer/multipart.text.plain.erb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/explicit_layout_mailer/logout.html.erb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/explicit_layout_mailer/signup.html.erb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/first_mailer/share.erb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/helper_mailer/use_example_helper.erb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/helper_mailer/use_helper.erb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/helper_mailer/use_helper_method.erb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/helper_mailer/use_mail_helper.erb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/helpers/example_helper.rb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/layouts/auto_layout_mailer.html.erb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/layouts/auto_layout_mailer.text.erb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/layouts/spam.html.erb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/path.with.dots/funky_path_mailer/multipart_with_template_path_with_dots.erb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/raw_email +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/raw_email10 +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/raw_email12 +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/raw_email13 +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/raw_email2 +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/raw_email3 +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/raw_email4 +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/raw_email5 +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/raw_email6 +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/raw_email7 +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/raw_email8 +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/raw_email9 +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/raw_email_quoted_with_0d0a +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/raw_email_with_invalid_characters_in_content_type +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/raw_email_with_nested_attachment +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/raw_email_with_partially_quoted_subject +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/second_mailer/share.erb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/templates/signed_up.erb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/test_mailer/_subtemplate.text.plain.erb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/test_mailer/body_ivar.erb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/test_mailer/custom_templating_extension.text.html.haml +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/test_mailer/custom_templating_extension.text.plain.haml +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/test_mailer/implicitly_multipart_example.ignored.erb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/test_mailer/implicitly_multipart_example.text.html.erb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/test_mailer/implicitly_multipart_example.text.plain.erb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/test_mailer/implicitly_multipart_example.text.yaml.erb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/test_mailer/included_subtemplate.text.plain.erb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/test_mailer/rxml_template.builder +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/test_mailer/rxml_template.rxml +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/test_mailer/signed_up.html.erb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/test/fixtures/test_mailer/signed_up_with_url.erb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/test/mail_helper_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/test/mail_layout_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/test/mail_render_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/test/mail_service_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/test/quoting_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/test/test_helper_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/test/tmail_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionmailer/test/url_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/CHANGELOG +0 -0
- data/src/admin_panel/vendor/rails/actionpack/MIT-LICENSE +0 -0
- data/src/admin_panel/vendor/rails/actionpack/README +0 -0
- data/src/admin_panel/vendor/rails/actionpack/RUNNING_UNIT_TESTS +0 -0
- data/src/admin_panel/vendor/rails/actionpack/Rakefile +0 -0
- data/src/admin_panel/vendor/rails/actionpack/install.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/assertions/dom_assertions.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/assertions/model_assertions.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/assertions/response_assertions.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/assertions/routing_assertions.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/assertions/selector_assertions.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/assertions/tag_assertions.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/base.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/benchmarking.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/caching/actions.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/caching/fragments.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/caching/pages.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/caching/sweeper.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/caching/sweeping.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/caching.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/cgi_ext/cookie.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/cgi_ext/query_extension.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/cgi_ext/stdinput.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/cgi_ext.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/cgi_process.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/cookies.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/dispatcher.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/failsafe.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/filters.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/flash.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/headers.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/helpers.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/http_authentication.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/integration.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/layout.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/middleware_stack.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/middlewares.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/mime_responds.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/mime_type.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/mime_types.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/params_parser.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/performance_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/polymorphic_routes.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/rack_lint_patch.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/record_identifier.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/reloader.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/request_forgery_protection.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/rescue.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/resources.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/response.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/routing/builder.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/routing/optimisations.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/routing/recognition_optimisation.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/routing/route.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/routing/route_set.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/routing/routing_ext.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/routing/segments.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/routing.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/session/abstract_store.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/session/cookie_store.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/session/mem_cache_store.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/session_management.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/status_codes.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/streaming.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/string_coercion.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/templates/rescues/_request_and_response.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/templates/rescues/_trace.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/templates/rescues/diagnostics.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/templates/rescues/layout.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/templates/rescues/missing_template.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/templates/rescues/routing_error.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/templates/rescues/template_error.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/templates/rescues/unknown_action.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/test_case.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/test_process.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/translation.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/uploaded_file.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/url_rewriter.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/html-scanner/html/document.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/html-scanner/html/node.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/html-scanner/html/sanitizer.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/html-scanner/html/selector.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/html-scanner/html/tokenizer.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/html-scanner/html/version.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/vendor/html-scanner.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller/verification.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_controller.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_pack/version.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_pack.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_view/base.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_view/erb/util.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_view/helpers/active_record_helper.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_view/helpers/asset_tag_helper.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_view/helpers/atom_feed_helper.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_view/helpers/benchmark_helper.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_view/helpers/cache_helper.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_view/helpers/capture_helper.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_view/helpers/date_helper.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_view/helpers/debug_helper.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_view/helpers/form_helper.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_view/helpers/form_options_helper.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_view/helpers/form_tag_helper.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_view/helpers/javascript_helper.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_view/helpers/number_helper.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_view/helpers/prototype_helper.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_view/helpers/raw_output_helper.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_view/helpers/record_identification_helper.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_view/helpers/record_tag_helper.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_view/helpers/sanitize_helper.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_view/helpers/scriptaculous_helper.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_view/helpers/tag_helper.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_view/helpers/text_helper.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_view/helpers/translation_helper.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_view/helpers/url_helper.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_view/helpers.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_view/inline_template.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_view/locale/en.yml +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_view/partials.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_view/paths.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_view/reloadable_template.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_view/renderable.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_view/renderable_partial.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_view/safe_buffer.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_view/template.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_view/template_error.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_view/template_handler.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_view/template_handlers/builder.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_view/template_handlers/erb.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_view/template_handlers/rjs.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_view/template_handlers.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_view/test_case.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/action_view.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/lib/actionpack.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/abstract_unit.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/active_record_unit.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/activerecord/active_record_store_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/activerecord/render_partial_with_record_identification_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/adv_attr_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/action_pack_assertions_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/addresses_render_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/assert_select_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/base_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/benchmark_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/caching_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/capture_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/content_type_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/controller_fixtures/app/controllers/admin/user_controller.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/controller_fixtures/app/controllers/user_controller.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/controller_fixtures/vendor/plugins/bad_plugin/lib/plugin_controller.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/cookie_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/deprecation/deprecated_base_methods_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/dispatcher_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/dom_assertions_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/failsafe_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/fake_controllers.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/fake_models.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/filter_params_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/filters_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/flash_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/header_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/helper_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/html-scanner/cdata_node_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/html-scanner/document_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/html-scanner/node_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/html-scanner/sanitizer_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/html-scanner/tag_node_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/html-scanner/text_node_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/html-scanner/tokenizer_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/http_basic_authentication_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/http_digest_authentication_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/integration_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/layout_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/logging_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/middleware_stack_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/mime_responds_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/mime_type_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/polymorphic_routes_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/rack_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/record_identifier_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/redirect_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/reloader_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/render_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/request/json_params_parsing_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/request/multipart_params_parsing_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/request/query_string_parsing_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/request/test_request_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/request/url_encoded_params_parsing_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/request/xml_params_parsing_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/request_forgery_protection_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/request_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/rescue_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/resources_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/routing_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/selector_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/send_file_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/session/cookie_store_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/session/mem_cache_store_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/session/test_session_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/test_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/translation_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/url_rewriter_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/verification_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/view_paths_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/controller/webservice_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/_top_level_partial.html.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/_top_level_partial_only.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/addresses/list.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/alternate_helpers/foo_helper.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/bad_customers/_bad_customer.html.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/companies.yml +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/company.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/content_type/render_default_content_types_for_respond_to.rhtml +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/content_type/render_default_for_rhtml.rhtml +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/content_type/render_default_for_rjs.rjs +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/content_type/render_default_for_rxml.rxml +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/customers/_customer.html.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/db_definitions/sqlite.sql +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/developer.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/developers/_developer.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/developers.yml +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/developers_projects.yml +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/failsafe/500.html +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/fun/games/_game.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/fun/games/hello_world.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/fun/serious/games/_game.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/functional_caching/_partial.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/functional_caching/formatted_fragment_cached.html.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/functional_caching/formatted_fragment_cached.js.rjs +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/functional_caching/formatted_fragment_cached.xml.builder +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/functional_caching/fragment_cached.html.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/functional_caching/html_fragment_cached_with_partial.html.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/functional_caching/inline_fragment_cached.html.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/functional_caching/js_fragment_cached_with_partial.js.rjs +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/good_customers/_good_customer.html.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/helpers/abc_helper.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/helpers/fun/games_helper.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/helpers/fun/pdf_helper.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/layout_tests/abs_path_layout.rhtml +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/layout_tests/alt/hello.rhtml +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/layout_tests/alt/layouts/alt.rhtml +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/layout_tests/layouts/controller_name_space/nested.rhtml +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/layout_tests/layouts/item.rhtml +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/layout_tests/layouts/layout_test.rhtml +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/layout_tests/layouts/multiple_extensions.html.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/layout_tests/layouts/third_party_template_library.mab +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/layout_tests/views/hello.rhtml +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/layouts/_column.html.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/layouts/block_with_layout.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/layouts/builder.builder +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/layouts/default_html.html.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/layouts/partial_with_layout.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/layouts/standard.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/layouts/talk_from_action.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/layouts/xhr.html.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/layouts/yield.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/mascot.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/mascots/_mascot.html.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/mascots.yml +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/multipart/binary_file +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/multipart/boundary_problem_file +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/multipart/bracketed_param +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/multipart/empty +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/multipart/hello.txt +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/multipart/large_text_file +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/multipart/mixed_files +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/multipart/mona_lisa.jpg +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/multipart/none +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/multipart/single_parameter +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/multipart/text_file +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/override/test/hello_world.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/override2/layouts/test/sub.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/post_test/layouts/post.html.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/post_test/layouts/super_post.iphone.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/post_test/post/index.html.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/post_test/post/index.iphone.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/post_test/super_post/index.html.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/post_test/super_post/index.iphone.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/project.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/projects/_project.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/projects.yml +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/public/404.html +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/public/500.da.html +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/public/500.html +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/public/absolute/test.css +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/public/absolute/test.js +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/public/images/rails.png +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/public/javascripts/application.js +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/public/javascripts/bank.js +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/public/javascripts/controls.js +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/public/javascripts/dragdrop.js +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/public/javascripts/effects.js +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/public/javascripts/prototype.js +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/public/javascripts/robber.js +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/public/javascripts/subdir/subdir.js +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/public/javascripts/version.1.0.js +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/public/stylesheets/bank.css +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/public/stylesheets/robber.css +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/public/stylesheets/subdir/subdir.css +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/public/stylesheets/version.1.0.css +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/quiz/questions/_question.html.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/replies/_reply.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/replies.yml +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/reply.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/respond_to/all_types_with_layout.html.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/respond_to/all_types_with_layout.js.rjs +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/respond_to/custom_constant_handling_without_block.mobile.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/respond_to/iphone_with_html_response_type.html.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/respond_to/iphone_with_html_response_type.iphone.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/respond_to/layouts/missing.html.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/respond_to/layouts/standard.html.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/respond_to/layouts/standard.iphone.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/respond_to/using_defaults.html.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/respond_to/using_defaults.js.rjs +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/respond_to/using_defaults.xml.builder +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/respond_to/using_defaults_with_type_list.html.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/respond_to/using_defaults_with_type_list.js.rjs +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/respond_to/using_defaults_with_type_list.xml.builder +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/scope/test/modgreet.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/shared.html.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/symlink_parent/symlinked_layout.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/_counter.html.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/_customer.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/_customer_counter.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/_customer_greeting.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/_customer_with_var.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/_form.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/_from_helper.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/_hash_greeting.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/_hash_object.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/_hello.builder +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/_labelling_form.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/_layout_for_block_with_args.html.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/_layout_for_partial.html.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/_local_inspector.html.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/_one.html.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/_partial.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/_partial.html.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/_partial.js.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/_partial_for_use_in_layout.html.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/_partial_only.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/_partial_with_only_html_version.html.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/_person.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/_raise.html.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/_two.html.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/action_talk_to_layout.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/calling_partial_with_layout.html.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/capturing.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/content_for.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/content_for_concatenated.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/content_for_with_parameter.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/delete_with_js.rjs +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/dont_pick_me +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/dot.directory/render_file_with_ivar.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/enum_rjs_test.rjs +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/formatted_html_erb.html.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/formatted_xml_erb.builder +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/formatted_xml_erb.html.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/formatted_xml_erb.xml.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/greeting.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/greeting.js.rjs +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/hello.builder +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/hello_world.da.html.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/hello_world.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/hello_world.pt-BR.html.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/hello_world_container.builder +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/hello_world_from_rxml.builder +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/hello_world_with_layout_false.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/hello_xml_world.builder +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/hyphen-ated.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/implicit_content_type.atom.builder +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/list.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/nested_layout.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/non_erb_block_content_for.builder +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/potential_conflicts.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/render_explicit_html_template.js.rjs +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/render_file_from_template.html.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/render_file_with_ivar.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/render_file_with_locals.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/render_implicit_html_template.js.rjs +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/render_implicit_html_template_from_xhr_request.da.html.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/render_implicit_html_template_from_xhr_request.html.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/render_implicit_js_template_without_layout.js.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/render_to_string_test.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/sub_template_raise.html.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/template.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/update_element_with_capture.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/using_layout_around_block.html.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/using_layout_around_block_with_args.html.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/test/utf8.html.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/topic.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/topics/_topic.html.erb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/fixtures/topics.yml +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/template/active_record_helper_i18n_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/template/active_record_helper_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/template/asset_tag_helper_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/template/atom_feed_helper_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/template/benchmark_helper_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/template/compiled_templates_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/template/date_helper_i18n_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/template/date_helper_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/template/erb_util_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/template/form_helper_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/template/form_options_helper_i18n_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/template/form_options_helper_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/template/form_tag_helper_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/template/javascript_helper_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/template/number_helper_i18n_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/template/number_helper_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/template/prototype_helper_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/template/raw_output_helper_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/template/record_tag_helper_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/template/render_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/template/sanitize_helper_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/template/scriptaculous_helper_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/template/tag_helper_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/template/template_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/template/test_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/template/text_helper_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/template/translation_helper_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/template/url_helper_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/testing_sandbox.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/view/safe_buffer_test.rb +0 -0
- data/src/admin_panel/vendor/rails/actionpack/test/view/test_case_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/CHANGELOG +0 -0
- data/src/admin_panel/vendor/rails/activerecord/README +0 -0
- data/src/admin_panel/vendor/rails/activerecord/RUNNING_UNIT_TESTS +0 -0
- data/src/admin_panel/vendor/rails/activerecord/Rakefile +0 -0
- data/src/admin_panel/vendor/rails/activerecord/examples/associations.png +0 -0
- data/src/admin_panel/vendor/rails/activerecord/install.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/lib/active_record/aggregations.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/lib/active_record/association_preload.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/lib/active_record/associations/association_collection.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/lib/active_record/associations/association_proxy.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/lib/active_record/associations/belongs_to_association.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/lib/active_record/associations/belongs_to_polymorphic_association.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/lib/active_record/associations/has_and_belongs_to_many_association.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/lib/active_record/associations/has_many_association.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/lib/active_record/associations/has_many_through_association.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/lib/active_record/associations/has_one_association.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/lib/active_record/associations/has_one_through_association.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/lib/active_record/attribute_methods.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/lib/active_record/autosave_association.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/lib/active_record/batches.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/lib/active_record/calculations.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/lib/active_record/callbacks.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/connection_specification.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/quoting.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/lib/active_record/dirty.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/lib/active_record/dynamic_finder_match.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/lib/active_record/dynamic_scope_match.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/lib/active_record/fixtures.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/lib/active_record/i18n_interpolation_deprecation.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/lib/active_record/locale/en.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/lib/active_record/locking/optimistic.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/lib/active_record/locking/pessimistic.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/lib/active_record/migration.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/lib/active_record/named_scope.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/lib/active_record/nested_attributes.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/lib/active_record/observer.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/lib/active_record/query_cache.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/lib/active_record/reflection.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/lib/active_record/schema.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/lib/active_record/schema_dumper.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/lib/active_record/serialization.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/lib/active_record/serializers/json_serializer.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/lib/active_record/serializers/xml_serializer.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/lib/active_record/session_store.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/lib/active_record/test_case.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/lib/active_record/timestamp.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/lib/active_record/transactions.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/lib/active_record/validations.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/lib/active_record/version.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/lib/active_record.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/lib/activerecord.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/assets/flowers.jpg +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/aaa_create_tables_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/active_schema_test_mysql.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/active_schema_test_postgresql.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/adapter_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/aggregations_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/ar_schema_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/associations/belongs_to_associations_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/associations/callbacks_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/associations/cascaded_eager_loading_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/associations/eager_load_includes_full_sti_class_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/associations/eager_load_nested_include_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/associations/eager_singularization_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/associations/eager_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/associations/extension_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/associations/habtm_join_table_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/associations/has_and_belongs_to_many_associations_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/associations/has_many_associations_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/associations/has_many_through_associations_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/associations/has_one_associations_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/associations/has_one_through_associations_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/associations/inner_join_association_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/associations/join_model_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/associations_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/attribute_methods_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/autosave_association_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/batches_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/binary_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/calculations_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/callbacks_observers_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/callbacks_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/class_inheritable_attributes_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/column_alias_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/column_definition_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/connection_pool_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/connection_test_firebird.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/connection_test_mysql.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/copy_table_test_sqlite.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/database_statements_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/datatype_test_postgresql.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/date_time_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/default_test_firebird.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/defaults_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/deprecated_finder_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/dirty_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/finder_respond_to_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/finder_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/fixtures_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/helper.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/i18n_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/inheritance_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/invalid_date_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/json_serialization_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/lifecycle_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/locking_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/method_scoping_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/migration_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/migration_test_firebird.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/mixin_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/modules_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/multiple_db_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/named_scope_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/nested_attributes_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/pk_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/pooled_connections_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/query_cache_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/readonly_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/reflection_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/reload_models_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/repair_helper.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/reserved_word_test_mysql.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/sanitize_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/schema_authorization_test_postgresql.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/schema_dumper_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/schema_test_postgresql.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/serialization_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/synonym_test_oracle.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/timestamp_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/transactions_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/unconnected_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/validations_i18n_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/validations_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/cases/xml_serialization_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/config.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/connections/jdbc_jdbcderby/connection.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/connections/jdbc_jdbch2/connection.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/connections/jdbc_jdbchsqldb/connection.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/connections/jdbc_jdbcmysql/connection.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/connections/jdbc_jdbcpostgresql/connection.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/connections/jdbc_jdbcsqlite3/connection.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/connections/native_db2/connection.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/connections/native_firebird/connection.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/connections/native_frontbase/connection.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/connections/native_mysql/connection.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/connections/native_openbase/connection.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/connections/native_oracle/connection.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/connections/native_postgresql/connection.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/connections/native_sqlite/connection.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/connections/native_sqlite3/connection.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/connections/native_sqlite3/in_memory_connection.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/connections/native_sybase/connection.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/accounts.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/all/developers.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/all/people.csv +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/all/tasks.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/author_addresses.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/author_favorites.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/authors.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/binaries.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/books.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/categories/special_categories.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/categories/subsubdir/arbitrary_filename.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/categories.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/categories_ordered.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/categories_posts.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/categorizations.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/clubs.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/comments.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/companies.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/computers.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/courses.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/customers.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/developers.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/developers_projects.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/edges.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/entrants.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/fixture_database.sqlite +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/fixture_database.sqlite3 +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/fixture_database_2.sqlite +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/fixture_database_2.sqlite3 +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/fk_test_has_fk.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/fk_test_has_pk.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/funny_jokes.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/items.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/jobs.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/legacy_things.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/mateys.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/member_types.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/members.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/memberships.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/minimalistics.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/mixed_case_monkeys.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/mixins.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/movies.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/naked/csv/accounts.csv +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/naked/yml/accounts.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/naked/yml/companies.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/naked/yml/courses.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/organizations.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/owners.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/parrots.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/parrots_pirates.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/people.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/pets.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/pirates.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/posts.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/price_estimates.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/projects.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/readers.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/references.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/reserved_words/distinct.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/reserved_words/distincts_selects.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/reserved_words/group.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/reserved_words/select.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/reserved_words/values.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/ships.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/sponsors.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/subscribers.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/subscriptions.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/taggings.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/tags.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/tasks.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/topics.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/toys.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/treasures.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/vertices.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/fixtures/warehouse-things.yml +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/migrations/broken/100_migration_that_raises_exception.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/migrations/decimal/1_give_me_big_numbers.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/migrations/duplicate/1_people_have_last_names.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/migrations/duplicate/2_we_need_reminders.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/migrations/duplicate/3_foo.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/migrations/duplicate/3_innocent_jointable.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/migrations/duplicate_names/20080507052938_chunky.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/migrations/duplicate_names/20080507053028_chunky.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/migrations/interleaved/pass_1/3_innocent_jointable.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/migrations/interleaved/pass_2/1_people_have_last_names.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/migrations/interleaved/pass_2/3_innocent_jointable.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/migrations/interleaved/pass_3/1_people_have_last_names.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/migrations/interleaved/pass_3/2_i_raise_on_down.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/migrations/interleaved/pass_3/3_innocent_jointable.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/migrations/missing/1000_people_have_middle_names.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/migrations/missing/1_people_have_last_names.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/migrations/missing/3_we_need_reminders.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/migrations/missing/4_innocent_jointable.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/migrations/valid/1_people_have_last_names.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/migrations/valid/2_we_need_reminders.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/migrations/valid/3_innocent_jointable.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/author.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/auto_id.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/binary.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/bird.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/book.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/categorization.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/category.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/citation.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/club.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/column_name.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/comment.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/company.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/company_in_module.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/computer.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/contact.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/contract.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/course.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/customer.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/default.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/developer.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/edge.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/entrant.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/essay.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/event.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/guid.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/item.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/job.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/joke.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/keyboard.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/legacy_thing.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/matey.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/member.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/member_detail.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/member_type.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/membership.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/minimalistic.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/mixed_case_monkey.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/movie.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/order.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/organization.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/owner.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/parrot.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/person.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/pet.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/pirate.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/post.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/price_estimate.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/project.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/reader.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/reference.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/reply.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/ship.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/ship_part.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/sponsor.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/subject.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/subscriber.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/subscription.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/tag.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/tagging.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/task.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/topic.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/toy.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/treasure.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/vertex.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/models/warehouse_thing.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/schema/mysql_specific_schema.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/schema/postgresql_specific_schema.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/schema/schema.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/schema/schema2.rb +0 -0
- data/src/admin_panel/vendor/rails/activerecord/test/schema/sqlite_specific_schema.rb +0 -0
- data/src/admin_panel/vendor/rails/activeresource/CHANGELOG +0 -0
- data/src/admin_panel/vendor/rails/activeresource/README +0 -0
- data/src/admin_panel/vendor/rails/activeresource/Rakefile +0 -0
- data/src/admin_panel/vendor/rails/activeresource/lib/active_resource/base.rb +0 -0
- data/src/admin_panel/vendor/rails/activeresource/lib/active_resource/connection.rb +0 -0
- data/src/admin_panel/vendor/rails/activeresource/lib/active_resource/custom_methods.rb +0 -0
- data/src/admin_panel/vendor/rails/activeresource/lib/active_resource/exceptions.rb +0 -0
- data/src/admin_panel/vendor/rails/activeresource/lib/active_resource/formats/json_format.rb +0 -0
- data/src/admin_panel/vendor/rails/activeresource/lib/active_resource/formats/xml_format.rb +0 -0
- data/src/admin_panel/vendor/rails/activeresource/lib/active_resource/formats.rb +0 -0
- data/src/admin_panel/vendor/rails/activeresource/lib/active_resource/http_mock.rb +0 -0
- data/src/admin_panel/vendor/rails/activeresource/lib/active_resource/validations.rb +0 -0
- data/src/admin_panel/vendor/rails/activeresource/lib/active_resource/version.rb +0 -0
- data/src/admin_panel/vendor/rails/activeresource/lib/active_resource.rb +0 -0
- data/src/admin_panel/vendor/rails/activeresource/lib/activeresource.rb +0 -0
- data/src/admin_panel/vendor/rails/activeresource/test/abstract_unit.rb +0 -0
- data/src/admin_panel/vendor/rails/activeresource/test/authorization_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activeresource/test/base/custom_methods_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activeresource/test/base/equality_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activeresource/test/base/load_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activeresource/test/base_errors_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activeresource/test/base_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activeresource/test/connection_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activeresource/test/fixtures/beast.rb +0 -0
- data/src/admin_panel/vendor/rails/activeresource/test/fixtures/customer.rb +0 -0
- data/src/admin_panel/vendor/rails/activeresource/test/fixtures/person.rb +0 -0
- data/src/admin_panel/vendor/rails/activeresource/test/fixtures/proxy.rb +0 -0
- data/src/admin_panel/vendor/rails/activeresource/test/fixtures/street_address.rb +0 -0
- data/src/admin_panel/vendor/rails/activeresource/test/format_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activeresource/test/setter_trap.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/CHANGELOG +0 -0
- data/src/admin_panel/vendor/rails/activesupport/README +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/all.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/backtrace_cleaner.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/base64.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/basic_object.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/buffered_logger.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/cache/compressed_mem_cache_store.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/cache/drb_store.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/cache/file_store.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/cache/mem_cache_store.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/cache/memory_store.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/cache/strategy/local_cache.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/cache/synchronized_memory_store.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/cache.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/callbacks.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/array/access.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/array/conversions.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/array/extract_options.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/array/grouping.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/array/random_access.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/array/wrapper.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/array.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/base64/encoding.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/base64.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/benchmark.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/bigdecimal/conversions.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/bigdecimal.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/blank.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/cgi/escape_skipping_slashes.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/cgi.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/class/attribute_accessors.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/class/delegating_attributes.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/class/inheritable_attributes.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/class/removal.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/class.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/date/behavior.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/date/calculations.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/date/conversions.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/date.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/date_time/calculations.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/date_time/conversions.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/date_time.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/duplicable.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/enumerable.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/exception.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/file/atomic.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/file.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/float/rounding.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/float/time.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/float.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/hash/conversions.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/hash/deep_merge.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/hash/diff.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/hash/except.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/hash/indifferent_access.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/hash/keys.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/hash/reverse_merge.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/hash/slice.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/hash.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/integer/even_odd.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/integer/inflections.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/integer/time.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/integer.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/kernel/agnostics.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/kernel/daemonizing.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/kernel/debugger.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/kernel/reporting.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/kernel/requires.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/kernel.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/load_error.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/logger.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/module/aliasing.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/module/attr_accessor_with_default.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/module/attr_internal.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/module/attribute_accessors.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/module/delegation.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/module/inclusion.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/module/introspection.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/module/loading.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/module/model_naming.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/module/synchronization.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/module.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/name_error.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/numeric/bytes.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/numeric/conversions.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/numeric/time.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/numeric.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/object/blank.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/object/conversions.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/object/extending.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/object/instance_variables.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/object/metaclass.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/object/misc.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/object.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/pathname/clean_within.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/pathname.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/proc.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/process/daemon.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/process.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/range/blockless_step.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/range/conversions.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/range/include_range.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/range/overlaps.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/range.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/rexml.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/string/access.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/string/behavior.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/string/bytesize.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/string/conversions.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/string/filters.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/string/inflections.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/string/iterators.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/string/multibyte.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/string/output_safety.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/string/starts_ends_with.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/string/xchar.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/string.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/symbol.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/time/behavior.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/time/calculations.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/time/conversions.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/time/zones.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/time.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/try.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext/uri.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/core_ext.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/dependencies.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/deprecation.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/duration.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/gzip.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/inflections.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/inflector.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/json/backends/jsongem.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/json/backends/yaml.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/json/decoding.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/json/encoders/date.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/json/encoders/date_time.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/json/encoders/enumerable.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/json/encoders/false_class.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/json/encoders/hash.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/json/encoders/nil_class.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/json/encoders/numeric.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/json/encoders/object.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/json/encoders/regexp.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/json/encoders/string.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/json/encoders/symbol.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/json/encoders/time.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/json/encoders/true_class.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/json/encoding.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/json/variable.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/json.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/locale/en.yml +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/memoizable.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/message_encryptor.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/message_verifier.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/multibyte/chars.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/multibyte/exceptions.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/multibyte/unicode_database.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/multibyte/utils.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/multibyte.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/option_merger.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/ordered_hash.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/ordered_options.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/rescuable.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/secure_random.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/string_inquirer.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/test_case.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/testing/assertions.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/testing/declarative.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/testing/default.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/testing/deprecation.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/testing/performance.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/testing/setup_and_teardown.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/time_with_zone.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/values/time_zone.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/values/unicode_tables.dat +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/builder-2.1.2/blankslate.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/builder-2.1.2/builder/blankslate.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/builder-2.1.2/builder/css.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/builder-2.1.2/builder/xchar.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/builder-2.1.2/builder/xmlbase.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/builder-2.1.2/builder/xmlevents.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/builder-2.1.2/builder/xmlmarkup.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/builder-2.1.2/builder.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/README.textile +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/Rakefile +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/i18n.gemspec +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/lib/i18n/backend/simple.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/lib/i18n/exceptions.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/test/all.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/test/i18n_exceptions_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/test/i18n_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/test/locale/en.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/test/locale/en.yml +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/test/simple_backend_test.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/memcache-client-1.7.4/memcache.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/data_timezone.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/data_timezone_info.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Algiers.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Cairo.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Casablanca.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Harare.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Johannesburg.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Monrovia.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Nairobi.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Argentina/Buenos_Aires.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Argentina/San_Juan.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Bogota.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Caracas.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Chicago.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Chihuahua.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Denver.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Godthab.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Guatemala.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Halifax.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Indiana/Indianapolis.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Juneau.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/La_Paz.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Lima.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Los_Angeles.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Mazatlan.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Mexico_City.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Monterrey.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/New_York.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Phoenix.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Regina.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Santiago.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Sao_Paulo.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/St_Johns.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Tijuana.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Almaty.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Baghdad.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Baku.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Bangkok.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Chongqing.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Colombo.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Dhaka.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Hong_Kong.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Irkutsk.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Jakarta.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Jerusalem.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Kabul.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Kamchatka.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Karachi.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Katmandu.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Kolkata.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Krasnoyarsk.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Kuala_Lumpur.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Kuwait.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Magadan.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Muscat.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Novosibirsk.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Rangoon.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Riyadh.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Seoul.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Shanghai.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Singapore.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Taipei.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Tashkent.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Tbilisi.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Tehran.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Tokyo.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Ulaanbaatar.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Urumqi.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Vladivostok.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Yakutsk.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Yekaterinburg.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Yerevan.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Atlantic/Azores.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Atlantic/Cape_Verde.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Atlantic/South_Georgia.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Adelaide.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Brisbane.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Darwin.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Hobart.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Melbourne.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Perth.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Sydney.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Etc/UTC.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Amsterdam.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Athens.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Belgrade.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Berlin.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Bratislava.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Brussels.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Bucharest.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Budapest.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Copenhagen.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Dublin.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Helsinki.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Istanbul.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Kiev.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Lisbon.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Ljubljana.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/London.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Madrid.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Minsk.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Moscow.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Paris.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Prague.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Riga.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Rome.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Sarajevo.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Skopje.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Sofia.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Stockholm.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Tallinn.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Vienna.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Vilnius.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Warsaw.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Zagreb.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Auckland.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Fiji.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Guam.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Honolulu.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Majuro.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Midway.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Noumea.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Pago_Pago.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Port_Moresby.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Tongatapu.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/info_timezone.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/linked_timezone.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/linked_timezone_info.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/offset_rationals.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/ruby_core_support.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/time_or_datetime.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone_definition.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone_info.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone_offset_info.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone_period.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone_transition_info.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/vendor.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/version.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/whiny_nil.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/xml_mini/jdom.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/xml_mini/libxml.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/xml_mini/nokogiri.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/xml_mini/rexml.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support/xml_mini.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/active_support.rb +0 -0
- data/src/admin_panel/vendor/rails/activesupport/lib/activesupport.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/CHANGELOG +0 -0
- data/src/admin_panel/vendor/rails/railties/MIT-LICENSE +0 -0
- data/src/admin_panel/vendor/rails/railties/README +0 -0
- data/src/admin_panel/vendor/rails/railties/Rakefile +0 -0
- data/src/admin_panel/vendor/rails/railties/builtin/rails_info/rails/info.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/builtin/rails_info/rails/info_controller.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/builtin/rails_info/rails/info_helper.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/builtin/rails_info/rails_info_controller.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/configs/databases/frontbase.yml +0 -0
- data/src/admin_panel/vendor/rails/railties/configs/databases/ibm_db.yml +0 -0
- data/src/admin_panel/vendor/rails/railties/configs/databases/mysql.yml +0 -0
- data/src/admin_panel/vendor/rails/railties/configs/databases/oracle.yml +0 -0
- data/src/admin_panel/vendor/rails/railties/configs/databases/postgresql.yml +0 -0
- data/src/admin_panel/vendor/rails/railties/configs/databases/sqlite2.yml +0 -0
- data/src/admin_panel/vendor/rails/railties/configs/databases/sqlite3.yml +0 -0
- data/src/admin_panel/vendor/rails/railties/configs/initializers/backtrace_silencers.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/configs/initializers/inflections.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/configs/initializers/mime_types.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/configs/initializers/new_rails_defaults.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/configs/initializers/session_store.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/configs/locales/en.yml +0 -0
- data/src/admin_panel/vendor/rails/railties/configs/routes.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/configs/seeds.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/dispatches/config.ru +0 -0
- data/src/admin_panel/vendor/rails/railties/doc/README_FOR_APP +0 -0
- data/src/admin_panel/vendor/rails/railties/environments/boot.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/environments/development.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/environments/environment.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/environments/production.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/environments/test.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/files/javascripts/highlighters.js +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/files/stylesheets/main.css +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/files/stylesheets/syntax.css +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/belongs_to.png +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/book_icon.gif +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/bullet.gif +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/chapters_icon.gif +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/check_bullet.gif +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/credits_pic_blank.gif +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/csrf.png +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/customized_error_messages.png +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/error_messages.png +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/feature_tile.gif +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/footer_tile.gif +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/fxn.jpg +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/grey_bullet.gif +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/habtm.png +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/has_many.png +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/has_many_through.png +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/has_one.png +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/has_one_through.png +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/header_backdrop.png +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/header_tile.gif +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/i18n/demo_localized_pirate.png +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/i18n/demo_translated_en.png +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/i18n/demo_translated_pirate.png +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/i18n/demo_translation_missing.png +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/i18n/demo_untranslated.png +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/icons/README +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/icons/callouts/1.png +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/icons/callouts/10.png +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/icons/callouts/11.png +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/icons/callouts/12.png +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/icons/callouts/13.png +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/icons/callouts/14.png +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/icons/callouts/15.png +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/icons/callouts/2.png +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/icons/callouts/3.png +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/icons/callouts/4.png +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/icons/callouts/5.png +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/icons/callouts/6.png +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/icons/callouts/7.png +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/icons/callouts/8.png +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/icons/callouts/9.png +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/icons/caution.png +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/icons/example.png +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/icons/home.png +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/icons/important.png +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/icons/next.png +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/icons/note.png +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/icons/prev.png +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/icons/tip.png +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/icons/up.png +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/icons/warning.png +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/nav_arrow.gif +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/polymorphic.png +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/posts_index.png +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/rails_guides_logo.gif +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/rails_logo_remix.gif +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/rails_welcome.png +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/session_fixation.png +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/tab_grey.gif +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/tab_info.gif +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/tab_note.gif +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/tab_red.gif +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/tab_yellow.gif +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/tab_yellow.png +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/images/validation_error_messages.png +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/rails_guides/generator.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/rails_guides/helpers.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/rails_guides/indexer.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/rails_guides/textile_extensions.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/rails_guides.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/source/2_2_release_notes.textile +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/source/2_3_release_notes.textile +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/source/action_controller_overview.textile +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/source/action_mailer_basics.textile +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/source/active_record_basics.textile +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/source/active_record_querying.textile +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/source/activerecord_validations_callbacks.textile +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/source/association_basics.textile +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/source/caching_with_rails.textile +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/source/command_line.textile +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/source/configuring.textile +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/source/contribute.textile +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/source/contributing_to_rails.textile +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/source/credits.erb.textile +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/source/debugging_rails_applications.textile +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/source/form_helpers.textile +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/source/getting_started.textile +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/source/i18n.textile +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/source/index.erb.textile +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/source/layout.html.erb +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/source/layouts_and_rendering.textile +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/source/migrations.textile +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/source/nested_model_forms.textile +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/source/performance_testing.textile +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/source/plugins.textile +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/source/rails_on_rack.textile +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/source/routing.textile +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/source/security.textile +0 -0
- data/src/admin_panel/vendor/rails/railties/guides/source/testing.textile +0 -0
- data/src/admin_panel/vendor/rails/railties/helpers/application_controller.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/helpers/application_helper.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/helpers/performance_test.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/helpers/test_helper.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/html/404.html +0 -0
- data/src/admin_panel/vendor/rails/railties/html/422.html +0 -0
- data/src/admin_panel/vendor/rails/railties/html/500.html +0 -0
- data/src/admin_panel/vendor/rails/railties/html/favicon.ico +0 -0
- data/src/admin_panel/vendor/rails/railties/html/images/rails.png +0 -0
- data/src/admin_panel/vendor/rails/railties/html/index.html +0 -0
- data/src/admin_panel/vendor/rails/railties/html/javascripts/application.js +0 -0
- data/src/admin_panel/vendor/rails/railties/html/javascripts/controls.js +0 -0
- data/src/admin_panel/vendor/rails/railties/html/javascripts/dragdrop.js +0 -0
- data/src/admin_panel/vendor/rails/railties/html/javascripts/effects.js +0 -0
- data/src/admin_panel/vendor/rails/railties/html/javascripts/prototype.js +0 -0
- data/src/admin_panel/vendor/rails/railties/html/robots.txt +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/code_statistics.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/commands/about.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/commands/console.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/commands/dbconsole.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/commands/destroy.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/commands/performance/benchmarker.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/commands/performance/profiler.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/commands/plugin.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/commands/runner.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/commands/server.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/commands/update.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/commands.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/console_app.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/console_sandbox.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/console_with_helpers.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/dispatcher.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/fcgi_handler.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/initializer.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/performance_test_help.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails/backtrace_cleaner.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails/gem_builder.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails/gem_dependency.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails/plugin/loader.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails/plugin/locator.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails/plugin.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails/rack/debugger.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails/rack/log_tailer.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails/rack/metal.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails/rack/static.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails/rack.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails/vendor_gem_source_index.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails/version.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/base.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/commands.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generated_attribute.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/applications/app/USAGE +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/applications/app/app_generator.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/applications/app/scm/git.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/applications/app/scm/scm.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/applications/app/scm/svn.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/applications/app/template_runner.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/controller/USAGE +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/controller/controller_generator.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/controller/templates/controller.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/controller/templates/functional_test.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/controller/templates/helper.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/controller/templates/helper_test.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/controller/templates/view.html.erb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/helper/USAGE +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/helper/helper_generator.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/helper/templates/helper.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/helper/templates/helper_test.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/integration_test/USAGE +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/integration_test/integration_test_generator.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/integration_test/templates/integration_test.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/mailer/USAGE +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/mailer/mailer_generator.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/mailer/templates/fixture.erb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/mailer/templates/fixture.rhtml +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/mailer/templates/mailer.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/mailer/templates/unit_test.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/mailer/templates/view.erb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/mailer/templates/view.rhtml +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/metal/USAGE +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/metal/metal_generator.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/metal/templates/metal.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/migration/USAGE +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/migration/migration_generator.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/migration/templates/migration.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/model/USAGE +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/model/model_generator.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/model/templates/fixtures.yml +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/model/templates/migration.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/model/templates/model.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/model/templates/unit_test.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/observer/USAGE +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/observer/observer_generator.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/observer/templates/observer.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/observer/templates/unit_test.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/performance_test/USAGE +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/performance_test/performance_test_generator.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/performance_test/templates/performance_test.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/plugin/USAGE +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/plugin/plugin_generator.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/MIT-LICENSE +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/README +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/Rakefile +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/USAGE +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/generator.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/init.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/install.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/plugin.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/tasks.rake +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/test_helper.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/uninstall.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/unit_test.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/resource/USAGE +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/resource/resource_generator.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/resource/templates/controller.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/resource/templates/functional_test.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/resource/templates/helper.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/resource/templates/helper_test.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/USAGE +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/scaffold_generator.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/controller.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/functional_test.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/helper.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/helper_test.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/layout.html.erb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/style.css +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/view_edit.html.erb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/view_index.html.erb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/view_new.html.erb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/view_show.html.erb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/session_migration/USAGE +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/session_migration/session_migration_generator.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/generators/components/session_migration/templates/migration.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/lookup.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/manifest.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/options.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/scripts/destroy.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/scripts/generate.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/scripts/update.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/scripts.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/secret_key_generator.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/simple_logger.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator/spec.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rails_generator.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/railties_path.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/ruby_version_check.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/rubyprof_ext.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/source_annotation_extractor.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/tasks/annotations.rake +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/tasks/databases.rake +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/tasks/documentation.rake +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/tasks/framework.rake +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/tasks/gems.rake +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/tasks/log.rake +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/tasks/middleware.rake +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/tasks/misc.rake +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/tasks/rails.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/tasks/routes.rake +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/tasks/statistics.rake +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/tasks/testing.rake +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/tasks/tmp.rake +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/test_help.rb +0 -0
- data/src/admin_panel/vendor/rails/railties/lib/webrick_server.rb +0 -0
- data/src/head/wr_access_log.c +0 -0
- data/src/head/wr_access_log.h +0 -0
- data/src/head/wr_application.c +5 -1
- data/src/head/wr_application.h +0 -0
- data/src/head/wr_configurator.c +44 -44
- data/src/head/wr_configurator.h +0 -0
- data/src/head/wr_connection.c +0 -0
- data/src/head/wr_connection.h +0 -0
- data/src/head/wr_controller.c +1 -1
- data/src/head/wr_controller.h +0 -0
- data/src/head/wr_main.c +0 -0
- data/src/head/wr_request.c +0 -0
- data/src/head/wr_request.h +0 -0
- data/src/head/wr_resolver.c +0 -0
- data/src/head/wr_resolver.h +0 -0
- data/src/head/wr_server.c +0 -0
- data/src/head/wr_server.h +0 -0
- data/src/head/wr_worker.c +0 -0
- data/src/head/wr_worker.h +0 -0
- data/src/helper/wr_config.c +2 -2
- data/src/helper/wr_config.h +0 -0
- data/src/helper/wr_helper.h +0 -0
- data/src/helper/wr_logger.c +0 -0
- data/src/helper/wr_logger.h +0 -0
- data/src/helper/wr_macro.h +0 -0
- data/src/helper/wr_msg_queue_client.c +0 -0
- data/src/helper/wr_msg_queue_client.h +0 -0
- data/src/helper/wr_queue.c +0 -0
- data/src/helper/wr_queue.h +4 -4
- data/src/helper/wr_scgi.c +0 -0
- data/src/helper/wr_scgi.h +0 -0
- data/src/helper/wr_stack.c +65 -0
- data/src/helper/wr_stack.h +49 -0
- data/src/helper/wr_string.c +0 -0
- data/src/helper/wr_string.h +13 -13
- data/src/helper/wr_util.c +0 -0
- data/src/helper/wr_util.h +2 -2
- data/src/helper/wr_yaml_parser.c +196 -184
- data/src/helper/wr_yaml_parser.h +28 -23
- data/src/ruby_lib/analyzer/db_connect.rb +1 -1
- data/src/ruby_lib/analyzer/logger.rb +0 -0
- data/src/ruby_lib/analyzer/message_analyzer.rb +57 -26
- data/src/ruby_lib/analyzer/message_reader.rb +0 -0
- data/src/ruby_lib/analyzer/process_helper.rb +0 -0
- data/src/ruby_lib/analyzer/resources_analyzer.rb +0 -0
- data/src/ruby_lib/analyzer/user_defined_exception.rb +0 -0
- data/src/ruby_lib/analyzer/webroar_analyzer.rb +0 -0
- data/src/ruby_lib/analyzer/webroar_analyzer_script_runner.rb +0 -0
- data/src/ruby_lib/analyzer/with_exception_handling.rb +0 -0
- data/src/ruby_lib/exception_tracker/instrumentation/action_controller.rb +4 -2
- data/src/ruby_lib/exception_tracker/instrumentation/instrumentation.rb +0 -0
- data/src/ruby_lib/exception_tracker/instrumentation/rails.rb +0 -0
- data/src/ruby_lib/exception_tracker/webroar_exception.rb +0 -0
- data/src/ruby_lib/mailer/smtpmail.rb +0 -0
- data/src/ruby_lib/profiler/instrumentation/action_controller.rb +5 -3
- data/src/ruby_lib/profiler/instrumentation/active_record.rb +9 -7
- data/src/ruby_lib/profiler/instrumentation/instrumentation.rb +0 -0
- data/src/ruby_lib/profiler/instrumentation/rails.rb +0 -0
- data/src/ruby_lib/profiler/message_dispatcher.rb +4 -2
- data/src/ruby_lib/profiler/webroar_profiling.rb +0 -0
- data/src/ruby_lib/rack/adapter/rack.rb +0 -1
- data/src/ruby_lib/rack/adapter/rails.rb +5 -5
- data/src/ruby_lib/ruby_interface/adapter.rb +0 -0
- data/src/ruby_lib/ruby_interface/client.rb +8 -6
- data/src/ruby_lib/ruby_interface/constants.rb +0 -0
- data/src/ruby_lib/ruby_interface/deflater.rb +0 -3
- data/src/ruby_lib/ruby_interface/logger.rb +0 -0
- data/src/ruby_lib/ruby_interface/request_body.rb +0 -0
- data/src/ruby_lib/ruby_interface/request_handler.rb +0 -0
- data/src/ruby_lib/ruby_interface/ruby_interface.rb +1 -1
- data/src/ruby_lib/ruby_interface/utils.rb +0 -0
- data/src/ruby_lib/ruby_interface/version.rb +1 -1
- data/src/ruby_lib/webroar_app_loader.rb +4 -0
- data/src/vendor/libebb/LICENSE +0 -0
- data/src/vendor/libebb/README +0 -0
- data/src/vendor/libebb/doc/icon.png +0 -0
- data/src/vendor/libebb/doc/index.html +0 -0
- data/src/vendor/libebb/ebb.c +0 -0
- data/src/vendor/libebb/ebb.h +0 -0
- data/src/vendor/libebb/ebb_request_parser.c +0 -0
- data/src/vendor/libebb/ebb_request_parser.h +0 -0
- data/src/vendor/libebb/ebb_request_parser.rl +0 -0
- data/src/vendor/libebb/examples/ca-cert.pem +0 -0
- data/src/vendor/libebb/examples/ca-key.pem +0 -0
- data/src/vendor/libebb/examples/hello_world.c +0 -0
- data/src/vendor/libebb/rbtree.c +0 -0
- data/src/vendor/libebb/rbtree.h +0 -0
- data/src/vendor/libebb/test/test_examples.rb +0 -0
- data/src/vendor/libebb/test/test_rbtree.c +0 -0
- data/src/vendor/libebb/test/test_request_parser.c +0 -0
- data/src/vendor/libev/Changes +81 -0
- data/src/vendor/libev/LICENSE +1 -1
- data/src/vendor/libev/README +0 -0
- data/src/vendor/libev/config.h.in +6 -0
- data/src/vendor/libev/ev++.h +19 -5
- data/src/vendor/libev/ev.3 +878 -225
- data/src/vendor/libev/ev.c +837 -301
- data/src/vendor/libev/ev.h +111 -54
- data/src/vendor/libev/ev.pod +821 -154
- data/src/vendor/libev/ev_epoll.c +16 -3
- data/src/vendor/libev/ev_kqueue.c +3 -1
- data/src/vendor/libev/ev_poll.c +6 -2
- data/src/vendor/libev/ev_port.c +4 -2
- data/src/vendor/libev/ev_select.c +10 -2
- data/src/vendor/libev/ev_vars.h +34 -11
- data/src/vendor/libev/ev_win32.c +14 -15
- data/src/vendor/libev/ev_wrap.h +44 -16
- data/src/vendor/libev/event.c +0 -0
- data/src/vendor/libev/event.h +2 -2
- data/src/vendor/libyaml/LICENSE +0 -0
- data/src/vendor/libyaml/README +0 -0
- data/src/vendor/libyaml/api.c +5 -1
- data/src/vendor/libyaml/config.h +5 -5
- data/src/vendor/libyaml/dumper.c +0 -0
- data/src/vendor/libyaml/emitter.c +48 -16
- data/src/vendor/libyaml/loader.c +3 -1
- data/src/vendor/libyaml/parser.c +4 -4
- data/src/vendor/libyaml/reader.c +18 -13
- data/src/vendor/libyaml/scanner.c +5 -3
- data/src/vendor/libyaml/writer.c +2 -2
- data/src/vendor/libyaml/yaml.h +0 -0
- data/src/vendor/libyaml/yaml_private.h +5 -0
- data/src/worker/wkr_controller.c +0 -0
- data/src/worker/wkr_http.c +0 -0
- data/src/worker/wkr_http.h +0 -0
- data/src/worker/wkr_http_request.c +0 -0
- data/src/worker/wkr_http_request.h +0 -0
- data/src/worker/wkr_http_response.c +0 -0
- data/src/worker/wkr_http_response.h +1 -0
- data/src/worker/wkr_main.c +2 -2
- data/src/worker/wkr_static.c +176 -43
- data/src/worker/wkr_static.h +0 -0
- data/src/worker/worker.c +8 -9
- data/src/worker/worker.h +0 -0
- data/tasks/compile.rake +0 -0
- data/tasks/gem.rake +3 -3
- data/tasks/test.rake +0 -0
- data/test/spec/access_log_spec.rb +0 -0
- data/test/spec/analytics_spec.rb +5 -5
- data/test/spec/conditional_spec.rb +0 -0
- data/test/spec/connection_keep_alive_spec.rb +0 -0
- data/test/spec/content_encoding_spec.rb +0 -0
- data/test/spec/heart_beat_spec.rb +0 -0
- data/test/spec/host_name_spec.rb +0 -0
- data/test/spec/http_request_parser_spec.rb +0 -0
- data/test/spec/http_spec.rb +0 -0
- data/test/spec/spec_helper.rb +0 -0
- data/test/spec/test_app/Rakefile +0 -0
- data/test/spec/test_app/app/controllers/application_controller.rb +0 -0
- data/test/spec/test_app/app/controllers/test_controller.rb +0 -0
- data/test/spec/test_app/app/controllers/users_controller.rb +0 -0
- data/test/spec/test_app/app/helpers/application_helper.rb +0 -0
- data/test/spec/test_app/app/helpers/test_helper.rb +0 -0
- data/test/spec/test_app/app/helpers/users_helper.rb +0 -0
- data/test/spec/test_app/app/models/user.rb +0 -0
- data/test/spec/test_app/app/views/layouts/users.html.erb +0 -0
- data/test/spec/test_app/app/views/test/post_data.html.erb +0 -0
- data/test/spec/test_app/app/views/test/upload_file.html.erb +0 -0
- data/test/spec/test_app/app/views/users/edit.html.erb +0 -0
- data/test/spec/test_app/app/views/users/index.html.erb +0 -0
- data/test/spec/test_app/app/views/users/new.html.erb +0 -0
- data/test/spec/test_app/app/views/users/show.html.erb +0 -0
- data/test/spec/test_app/config/boot.rb +0 -0
- data/test/spec/test_app/config/database.yml +0 -0
- data/test/spec/test_app/config/environment.rb +0 -0
- data/test/spec/test_app/config/environments/development.rb +0 -0
- data/test/spec/test_app/config/environments/production.rb +0 -0
- data/test/spec/test_app/config/environments/test.rb +0 -0
- data/test/spec/test_app/config/initializers/backtrace_silencers.rb +0 -0
- data/test/spec/test_app/config/initializers/inflections.rb +0 -0
- data/test/spec/test_app/config/initializers/mime_types.rb +0 -0
- data/test/spec/test_app/config/initializers/new_rails_defaults.rb +0 -0
- data/test/spec/test_app/config/initializers/session_store.rb +0 -0
- data/test/spec/test_app/config/routes.rb +0 -0
- data/test/spec/test_app/db/migrate/20090602102438_create_users.rb +0 -0
- data/test/spec/test_app/public/404.html +0 -0
- data/test/spec/test_app/public/422.html +0 -0
- data/test/spec/test_app/public/500.html +0 -0
- data/test/spec/test_app/public/index.html +0 -0
- data/test/spec/test_app/public/javascripts/application.js +0 -0
- data/test/spec/test_app/public/javascripts/controls.js +0 -0
- data/test/spec/test_app/public/javascripts/dragdrop.js +0 -0
- data/test/spec/test_app/public/javascripts/effects.js +0 -0
- data/test/spec/test_app/public/javascripts/prototype.js +0 -0
- data/test/spec/test_app/public/robots.txt +0 -0
- data/test/spec/test_app/public/stylesheets/scaffold.css +0 -0
- data/test/spec/test_app/vendor/.placeholder +0 -0
- data/test/spec/upload_helper.rb +0 -0
- data/test/spec/webroar_command_spec.rb +0 -0
- data/test/unit/config/config1.yml +0 -0
- data/test/unit/config/config2.yml +0 -0
- data/test/unit/config/config3.yml +2 -5
- data/test/unit/config/config4.yml +1 -1
- data/test/unit/config/config5.yml +0 -0
- data/test/unit/queue_test.c +0 -0
- data/test/unit/scgi_test.c +0 -0
- data/test/unit/test.c +0 -0
- data/test/unit/test.h +0 -0
- data/test/unit/ut_test.c +34 -29
- data/test/unit/ut_test.h +6 -6
- data/test/unit/util_test.c +0 -0
- data/test/unit/yaml_test.c +50 -75
- metadata +2037 -2020
data/src/vendor/libev/ev.3
CHANGED
@@ -1,15 +1,7 @@
|
|
1
|
-
.\" Automatically generated by Pod::Man 2.
|
1
|
+
.\" Automatically generated by Pod::Man 2.22 (Pod::Simple 3.07)
|
2
2
|
.\"
|
3
3
|
.\" Standard preamble:
|
4
4
|
.\" ========================================================================
|
5
|
-
.de Sh \" Subsection heading
|
6
|
-
.br
|
7
|
-
.if t .Sp
|
8
|
-
.ne 5
|
9
|
-
.PP
|
10
|
-
\fB\\$1\fR
|
11
|
-
.PP
|
12
|
-
..
|
13
5
|
.de Sp \" Vertical space (when we can't use .PP)
|
14
6
|
.if t .sp .5v
|
15
7
|
.if n .sp
|
@@ -53,7 +45,7 @@
|
|
53
45
|
.el .ds Aq '
|
54
46
|
.\"
|
55
47
|
.\" If the F register is turned on, we'll generate index entries on stderr for
|
56
|
-
.\" titles (.TH), headers (.SH), subsections (.
|
48
|
+
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
|
57
49
|
.\" entries marked with X<> in POD. Of course, you'll have to process the
|
58
50
|
.\" output yourself in some meaningful fashion.
|
59
51
|
.ie \nF \{\
|
@@ -132,7 +124,7 @@
|
|
132
124
|
.\" ========================================================================
|
133
125
|
.\"
|
134
126
|
.IX Title "LIBEV 3"
|
135
|
-
.TH LIBEV 3 "2009-
|
127
|
+
.TH LIBEV 3 "2009-12-31" "libev-3.9" "libev - high performance full featured event loop"
|
136
128
|
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
137
129
|
.\" way too many mistakes in technical documents.
|
138
130
|
.if n .ad l
|
@@ -144,7 +136,7 @@ libev \- a high performance full\-featured event loop written in C
|
|
144
136
|
.Vb 1
|
145
137
|
\& #include <ev.h>
|
146
138
|
.Ve
|
147
|
-
.
|
139
|
+
.SS "\s-1EXAMPLE\s0 \s-1PROGRAM\s0"
|
148
140
|
.IX Subsection "EXAMPLE PROGRAM"
|
149
141
|
.Vb 2
|
150
142
|
\& // a single header file is required
|
@@ -203,12 +195,23 @@ libev \- a high performance full\-featured event loop written in C
|
|
203
195
|
\& return 0;
|
204
196
|
\& }
|
205
197
|
.Ve
|
206
|
-
.SH "
|
207
|
-
.IX Header "
|
198
|
+
.SH "ABOUT THIS DOCUMENT"
|
199
|
+
.IX Header "ABOUT THIS DOCUMENT"
|
200
|
+
This document documents the libev software package.
|
201
|
+
.PP
|
208
202
|
The newest version of this document is also available as an html-formatted
|
209
203
|
web page you might find easier to navigate when reading it for the first
|
210
204
|
time: <http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod>.
|
211
205
|
.PP
|
206
|
+
While this document tries to be as complete as possible in documenting
|
207
|
+
libev, its usage and the rationale behind its design, it is not a tutorial
|
208
|
+
on event-based programming, nor will it introduce event-based programming
|
209
|
+
with libev.
|
210
|
+
.PP
|
211
|
+
Familarity with event based programming techniques in general is assumed
|
212
|
+
throughout this document.
|
213
|
+
.SH "ABOUT LIBEV"
|
214
|
+
.IX Header "ABOUT LIBEV"
|
212
215
|
Libev is an event loop: you register interest in certain events (such as a
|
213
216
|
file descriptor being readable or a timeout occurring), and it will manage
|
214
217
|
these event sources and provide your program with events.
|
@@ -221,39 +224,40 @@ You register interest in certain events by registering so-called \fIevent
|
|
221
224
|
watchers\fR, which are relatively small C structures you initialise with the
|
222
225
|
details of the event, and then hand it over to libev by \fIstarting\fR the
|
223
226
|
watcher.
|
224
|
-
.
|
227
|
+
.SS "\s-1FEATURES\s0"
|
225
228
|
.IX Subsection "FEATURES"
|
226
229
|
Libev supports \f(CW\*(C`select\*(C'\fR, \f(CW\*(C`poll\*(C'\fR, the Linux-specific \f(CW\*(C`epoll\*(C'\fR, the
|
227
230
|
BSD-specific \f(CW\*(C`kqueue\*(C'\fR and the Solaris-specific event port mechanisms
|
228
231
|
for file descriptor events (\f(CW\*(C`ev_io\*(C'\fR), the Linux \f(CW\*(C`inotify\*(C'\fR interface
|
229
|
-
(for \f(CW\*(C`ev_stat\*(C'\fR),
|
230
|
-
|
231
|
-
(\f(CW\*(C`
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
(\f(CW\*(C`
|
232
|
+
(for \f(CW\*(C`ev_stat\*(C'\fR), Linux eventfd/signalfd (for faster and cleaner
|
233
|
+
inter-thread wakeup (\f(CW\*(C`ev_async\*(C'\fR)/signal handling (\f(CW\*(C`ev_signal\*(C'\fR)) relative
|
234
|
+
timers (\f(CW\*(C`ev_timer\*(C'\fR), absolute timers with customised rescheduling
|
235
|
+
(\f(CW\*(C`ev_periodic\*(C'\fR), synchronous signals (\f(CW\*(C`ev_signal\*(C'\fR), process status
|
236
|
+
change events (\f(CW\*(C`ev_child\*(C'\fR), and event watchers dealing with the event
|
237
|
+
loop mechanism itself (\f(CW\*(C`ev_idle\*(C'\fR, \f(CW\*(C`ev_embed\*(C'\fR, \f(CW\*(C`ev_prepare\*(C'\fR and
|
238
|
+
\&\f(CW\*(C`ev_check\*(C'\fR watchers) as well as file watchers (\f(CW\*(C`ev_stat\*(C'\fR) and even
|
239
|
+
limited support for fork events (\f(CW\*(C`ev_fork\*(C'\fR).
|
236
240
|
.PP
|
237
241
|
It also is quite fast (see this
|
238
|
-
benchmark comparing it to libevent
|
242
|
+
<benchmark> comparing it to libevent
|
239
243
|
for example).
|
240
|
-
.
|
244
|
+
.SS "\s-1CONVENTIONS\s0"
|
241
245
|
.IX Subsection "CONVENTIONS"
|
242
246
|
Libev is very configurable. In this manual the default (and most common)
|
243
247
|
configuration will be described, which supports multiple event loops. For
|
244
248
|
more info about various configuration options please have a look at
|
245
249
|
\&\fB\s-1EMBED\s0\fR section in this manual. If libev was configured without support
|
246
250
|
for multiple event loops, then all functions taking an initial argument of
|
247
|
-
name \f(CW\*(C`loop\*(C'\fR (which is always of type \f(CW\*(C`ev_loop *\*(C'\fR) will not have
|
251
|
+
name \f(CW\*(C`loop\*(C'\fR (which is always of type \f(CW\*(C`struct ev_loop *\*(C'\fR) will not have
|
248
252
|
this argument.
|
249
|
-
.
|
253
|
+
.SS "\s-1TIME\s0 \s-1REPRESENTATION\s0"
|
250
254
|
.IX Subsection "TIME REPRESENTATION"
|
251
|
-
Libev represents time as a single floating point number, representing
|
252
|
-
(fractional) number of seconds since the (\s-1POSIX\s0) epoch (somewhere
|
253
|
-
the beginning of 1970, details are complicated, don't ask). This
|
254
|
-
called \f(CW\*(C`ev_tstamp\*(C'\fR, which is what you should use too. It usually
|
255
|
-
to the \f(CW\*(C`double\*(C'\fR type in C
|
256
|
-
it, you should treat it as some floating point value. Unlike the name
|
255
|
+
Libev represents time as a single floating point number, representing
|
256
|
+
the (fractional) number of seconds since the (\s-1POSIX\s0) epoch (somewhere
|
257
|
+
near the beginning of 1970, details are complicated, don't ask). This
|
258
|
+
type is called \f(CW\*(C`ev_tstamp\*(C'\fR, which is what you should use too. It usually
|
259
|
+
aliases to the \f(CW\*(C`double\*(C'\fR type in C. When you need to do any calculations
|
260
|
+
on it, you should treat it as some floating point value. Unlike the name
|
257
261
|
component \f(CW\*(C`stamp\*(C'\fR might indicate, it is also used for time differences
|
258
262
|
throughout libev.
|
259
263
|
.SH "ERROR HANDLING"
|
@@ -477,6 +481,26 @@ flag.
|
|
477
481
|
.Sp
|
478
482
|
This flag setting cannot be overridden or specified in the \f(CW\*(C`LIBEV_FLAGS\*(C'\fR
|
479
483
|
environment variable.
|
484
|
+
.ie n .IP """EVFLAG_NOINOTIFY""" 4
|
485
|
+
.el .IP "\f(CWEVFLAG_NOINOTIFY\fR" 4
|
486
|
+
.IX Item "EVFLAG_NOINOTIFY"
|
487
|
+
When this flag is specified, then libev will not attempt to use the
|
488
|
+
\&\fIinotify\fR \s-1API\s0 for it's \f(CW\*(C`ev_stat\*(C'\fR watchers. Apart from debugging and
|
489
|
+
testing, this flag can be useful to conserve inotify file descriptors, as
|
490
|
+
otherwise each loop using \f(CW\*(C`ev_stat\*(C'\fR watchers consumes one inotify handle.
|
491
|
+
.ie n .IP """EVFLAG_SIGNALFD""" 4
|
492
|
+
.el .IP "\f(CWEVFLAG_SIGNALFD\fR" 4
|
493
|
+
.IX Item "EVFLAG_SIGNALFD"
|
494
|
+
When this flag is specified, then libev will attempt to use the
|
495
|
+
\&\fIsignalfd\fR \s-1API\s0 for it's \f(CW\*(C`ev_signal\*(C'\fR (and \f(CW\*(C`ev_child\*(C'\fR) watchers. This \s-1API\s0
|
496
|
+
delivers signals synchronously, which makes it both faster and might make
|
497
|
+
it possible to get the queued signal data. It can also simplify signal
|
498
|
+
handling with threads, as long as you properly block signals in your
|
499
|
+
threads that are not interested in handling them.
|
500
|
+
.Sp
|
501
|
+
Signalfd will not be used by default as this changes your signal mask, and
|
502
|
+
there are a lot of shoddy libraries and programs (glib's threadpool for
|
503
|
+
example) that can't properly initialise their signal masks.
|
480
504
|
.ie n .IP """EVBACKEND_SELECT"" (value 1, portable select backend)" 4
|
481
505
|
.el .IP "\f(CWEVBACKEND_SELECT\fR (value 1, portable select backend)" 4
|
482
506
|
.IX Item "EVBACKEND_SELECT (value 1, portable select backend)"
|
@@ -511,6 +535,9 @@ This backend maps \f(CW\*(C`EV_READ\*(C'\fR to \f(CW\*(C`POLLIN | POLLERR | POLL
|
|
511
535
|
.ie n .IP """EVBACKEND_EPOLL"" (value 4, Linux)" 4
|
512
536
|
.el .IP "\f(CWEVBACKEND_EPOLL\fR (value 4, Linux)" 4
|
513
537
|
.IX Item "EVBACKEND_EPOLL (value 4, Linux)"
|
538
|
+
Use the linux-specific \fIepoll\fR\|(7) interface (for both pre\- and post\-2.6.9
|
539
|
+
kernels).
|
540
|
+
.Sp
|
514
541
|
For few fds, this backend is a bit little slower than poll and select,
|
515
542
|
but it scales phenomenally better. While poll and select usually scale
|
516
543
|
like O(total_fds) where n is the total number of fds (or the highest fd),
|
@@ -634,9 +661,10 @@ It is definitely not recommended to use this flag.
|
|
634
661
|
.RE
|
635
662
|
.RS 4
|
636
663
|
.Sp
|
637
|
-
If one or more of
|
638
|
-
backends will be tried (in the reverse order as listed
|
639
|
-
specified, all backends in \f(CW\*(C`ev_recommended_backends
|
664
|
+
If one or more of the backend flags are or'ed into the flags value,
|
665
|
+
then only these backends will be tried (in the reverse order as listed
|
666
|
+
here). If none are specified, all backends in \f(CW\*(C`ev_recommended_backends
|
667
|
+
()\*(C'\fR will be tried.
|
640
668
|
.Sp
|
641
669
|
Example: This is the most typical usage.
|
642
670
|
.Sp
|
@@ -696,7 +724,7 @@ as signal and child watchers) would need to be stopped manually.
|
|
696
724
|
In general it is not advisable to call this function except in the
|
697
725
|
rare occasion where you really need to free e.g. the signal handling
|
698
726
|
pipe fds. If you need dynamically allocated loops it is better to use
|
699
|
-
\&\f(CW\*(C`ev_loop_new\*(C'\fR and \f(CW\*(C`ev_loop_destroy\*(C'\fR
|
727
|
+
\&\f(CW\*(C`ev_loop_new\*(C'\fR and \f(CW\*(C`ev_loop_destroy\*(C'\fR.
|
700
728
|
.IP "ev_loop_destroy (loop)" 4
|
701
729
|
.IX Item "ev_loop_destroy (loop)"
|
702
730
|
Like \f(CW\*(C`ev_default_destroy\*(C'\fR, but destroys an event loop created by an
|
@@ -740,6 +768,17 @@ happily wraps around with enough iterations.
|
|
740
768
|
This value can sometimes be useful as a generation counter of sorts (it
|
741
769
|
\&\*(L"ticks\*(R" the number of loop iterations), as it roughly corresponds with
|
742
770
|
\&\f(CW\*(C`ev_prepare\*(C'\fR and \f(CW\*(C`ev_check\*(C'\fR calls.
|
771
|
+
.IP "unsigned int ev_loop_depth (loop)" 4
|
772
|
+
.IX Item "unsigned int ev_loop_depth (loop)"
|
773
|
+
Returns the number of times \f(CW\*(C`ev_loop\*(C'\fR was entered minus the number of
|
774
|
+
times \f(CW\*(C`ev_loop\*(C'\fR was exited, in other words, the recursion depth.
|
775
|
+
.Sp
|
776
|
+
Outside \f(CW\*(C`ev_loop\*(C'\fR, this number is zero. In a callback, this number is
|
777
|
+
\&\f(CW1\fR, unless \f(CW\*(C`ev_loop\*(C'\fR was invoked recursively (or from another thread),
|
778
|
+
in which case it is higher.
|
779
|
+
.Sp
|
780
|
+
Leaving \f(CW\*(C`ev_loop\*(C'\fR abnormally (setjmp/longjmp, cancelling the thread
|
781
|
+
etc.), doesn't count as exit.
|
743
782
|
.IP "unsigned int ev_backend (loop)" 4
|
744
783
|
.IX Item "unsigned int ev_backend (loop)"
|
745
784
|
Returns one of the \f(CW\*(C`EVBACKEND_*\*(C'\fR flags indicating the event backend in
|
@@ -762,11 +801,38 @@ very long time without entering the event loop, updating libev's idea of
|
|
762
801
|
the current time is a good idea.
|
763
802
|
.Sp
|
764
803
|
See also \*(L"The special problem of time updates\*(R" in the \f(CW\*(C`ev_timer\*(C'\fR section.
|
804
|
+
.IP "ev_suspend (loop)" 4
|
805
|
+
.IX Item "ev_suspend (loop)"
|
806
|
+
.PD 0
|
807
|
+
.IP "ev_resume (loop)" 4
|
808
|
+
.IX Item "ev_resume (loop)"
|
809
|
+
.PD
|
810
|
+
These two functions suspend and resume a loop, for use when the loop is
|
811
|
+
not used for a while and timeouts should not be processed.
|
812
|
+
.Sp
|
813
|
+
A typical use case would be an interactive program such as a game: When
|
814
|
+
the user presses \f(CW\*(C`^Z\*(C'\fR to suspend the game and resumes it an hour later it
|
815
|
+
would be best to handle timeouts as if no time had actually passed while
|
816
|
+
the program was suspended. This can be achieved by calling \f(CW\*(C`ev_suspend\*(C'\fR
|
817
|
+
in your \f(CW\*(C`SIGTSTP\*(C'\fR handler, sending yourself a \f(CW\*(C`SIGSTOP\*(C'\fR and calling
|
818
|
+
\&\f(CW\*(C`ev_resume\*(C'\fR directly afterwards to resume timer processing.
|
819
|
+
.Sp
|
820
|
+
Effectively, all \f(CW\*(C`ev_timer\*(C'\fR watchers will be delayed by the time spend
|
821
|
+
between \f(CW\*(C`ev_suspend\*(C'\fR and \f(CW\*(C`ev_resume\*(C'\fR, and all \f(CW\*(C`ev_periodic\*(C'\fR watchers
|
822
|
+
will be rescheduled (that is, they will lose any events that would have
|
823
|
+
occured while suspended).
|
824
|
+
.Sp
|
825
|
+
After calling \f(CW\*(C`ev_suspend\*(C'\fR you \fBmust not\fR call \fIany\fR function on the
|
826
|
+
given loop other than \f(CW\*(C`ev_resume\*(C'\fR, and you \fBmust not\fR call \f(CW\*(C`ev_resume\*(C'\fR
|
827
|
+
without a previous call to \f(CW\*(C`ev_suspend\*(C'\fR.
|
828
|
+
.Sp
|
829
|
+
Calling \f(CW\*(C`ev_suspend\*(C'\fR/\f(CW\*(C`ev_resume\*(C'\fR has the side effect of updating the
|
830
|
+
event loop time (see \f(CW\*(C`ev_now_update\*(C'\fR).
|
765
831
|
.IP "ev_loop (loop, int flags)" 4
|
766
832
|
.IX Item "ev_loop (loop, int flags)"
|
767
833
|
Finally, this is it, the event handler. This function usually is called
|
768
|
-
after you initialised all your watchers and you want to start
|
769
|
-
events.
|
834
|
+
after you have initialised all your watchers and you want to start
|
835
|
+
handling events.
|
770
836
|
.Sp
|
771
837
|
If the flags argument is specified as \f(CW0\fR, it will not return until
|
772
838
|
either no event watchers are active anymore or \f(CW\*(C`ev_unloop\*(C'\fR was called.
|
@@ -854,17 +920,20 @@ Ref/unref can be used to add or remove a reference count on the event
|
|
854
920
|
loop: Every watcher keeps one reference, and as long as the reference
|
855
921
|
count is nonzero, \f(CW\*(C`ev_loop\*(C'\fR will not return on its own.
|
856
922
|
.Sp
|
857
|
-
|
858
|
-
|
859
|
-
|
860
|
-
.
|
861
|
-
|
862
|
-
|
863
|
-
|
864
|
-
|
865
|
-
|
866
|
-
|
867
|
-
|
923
|
+
This is useful when you have a watcher that you never intend to
|
924
|
+
unregister, but that nevertheless should not keep \f(CW\*(C`ev_loop\*(C'\fR from
|
925
|
+
returning. In such a case, call \f(CW\*(C`ev_unref\*(C'\fR after starting, and \f(CW\*(C`ev_ref\*(C'\fR
|
926
|
+
before stopping it.
|
927
|
+
.Sp
|
928
|
+
As an example, libev itself uses this for its internal signal pipe: It
|
929
|
+
is not visible to the libev user and should not keep \f(CW\*(C`ev_loop\*(C'\fR from
|
930
|
+
exiting if no event watchers registered by it are active. It is also an
|
931
|
+
excellent way to do this for generic recurring timers or from within
|
932
|
+
third-party libraries. Just remember to \fIunref after start\fR and \fIref
|
933
|
+
before stop\fR (but only if the watcher wasn't active before, or was active
|
934
|
+
before, respectively. Note also that libev might stop watchers itself
|
935
|
+
(e.g. non-repeating timers) in which case you have to \f(CW\*(C`ev_ref\*(C'\fR
|
936
|
+
in the callback).
|
868
937
|
.Sp
|
869
938
|
Example: Create a signal watcher, but keep it from keeping \f(CW\*(C`ev_loop\*(C'\fR
|
870
939
|
running when nothing else is active.
|
@@ -908,7 +977,9 @@ By setting a higher \fIio collect interval\fR you allow libev to spend more
|
|
908
977
|
time collecting I/O events, so you can handle more events per iteration,
|
909
978
|
at the cost of increasing latency. Timeouts (both \f(CW\*(C`ev_periodic\*(C'\fR and
|
910
979
|
\&\f(CW\*(C`ev_timer\*(C'\fR) will be not affected. Setting this to a non-null value will
|
911
|
-
introduce an additional \f(CW\*(C`ev_sleep ()\*(C'\fR call into most loop iterations.
|
980
|
+
introduce an additional \f(CW\*(C`ev_sleep ()\*(C'\fR call into most loop iterations. The
|
981
|
+
sleep time ensures that libev will not poll for I/O events more often then
|
982
|
+
once per this interval, on average.
|
912
983
|
.Sp
|
913
984
|
Likewise, by setting a higher \fItimeout collect interval\fR you allow libev
|
914
985
|
to spend more time collecting timeouts, at the expense of increased
|
@@ -920,7 +991,11 @@ Many (busy) programs can usually benefit by setting the I/O collect
|
|
920
991
|
interval to a value near \f(CW0.1\fR or so, which is often enough for
|
921
992
|
interactive servers (of course not for games), likewise for timeouts. It
|
922
993
|
usually doesn't make much sense to set it to a lower value than \f(CW0.01\fR,
|
923
|
-
as this approaches the timing granularity of most systems.
|
994
|
+
as this approaches the timing granularity of most systems. Note that if
|
995
|
+
you do transactions with the outside world and you can't increase the
|
996
|
+
parallelity, then this setting will limit your transaction rate (if you
|
997
|
+
need to poll once per transaction and the I/O collect interval is 0.01,
|
998
|
+
then you can't do more than 100 transations per second).
|
924
999
|
.Sp
|
925
1000
|
Setting the \fItimeout collect interval\fR can improve the opportunity for
|
926
1001
|
saving power, as the program will \*(L"bundle\*(R" timer callback invocations that
|
@@ -928,6 +1003,76 @@ are \*(L"near\*(R" in time together, by delaying some, thus reducing the number
|
|
928
1003
|
times the process sleeps and wakes up again. Another useful technique to
|
929
1004
|
reduce iterations/wake\-ups is to use \f(CW\*(C`ev_periodic\*(C'\fR watchers and make sure
|
930
1005
|
they fire on, say, one-second boundaries only.
|
1006
|
+
.Sp
|
1007
|
+
Example: we only need 0.1s timeout granularity, and we wish not to poll
|
1008
|
+
more often than 100 times per second:
|
1009
|
+
.Sp
|
1010
|
+
.Vb 2
|
1011
|
+
\& ev_set_timeout_collect_interval (EV_DEFAULT_UC_ 0.1);
|
1012
|
+
\& ev_set_io_collect_interval (EV_DEFAULT_UC_ 0.01);
|
1013
|
+
.Ve
|
1014
|
+
.IP "ev_invoke_pending (loop)" 4
|
1015
|
+
.IX Item "ev_invoke_pending (loop)"
|
1016
|
+
This call will simply invoke all pending watchers while resetting their
|
1017
|
+
pending state. Normally, \f(CW\*(C`ev_loop\*(C'\fR does this automatically when required,
|
1018
|
+
but when overriding the invoke callback this call comes handy.
|
1019
|
+
.IP "int ev_pending_count (loop)" 4
|
1020
|
+
.IX Item "int ev_pending_count (loop)"
|
1021
|
+
Returns the number of pending watchers \- zero indicates that no watchers
|
1022
|
+
are pending.
|
1023
|
+
.IP "ev_set_invoke_pending_cb (loop, void (*invoke_pending_cb)(\s-1EV_P\s0))" 4
|
1024
|
+
.IX Item "ev_set_invoke_pending_cb (loop, void (*invoke_pending_cb)(EV_P))"
|
1025
|
+
This overrides the invoke pending functionality of the loop: Instead of
|
1026
|
+
invoking all pending watchers when there are any, \f(CW\*(C`ev_loop\*(C'\fR will call
|
1027
|
+
this callback instead. This is useful, for example, when you want to
|
1028
|
+
invoke the actual watchers inside another context (another thread etc.).
|
1029
|
+
.Sp
|
1030
|
+
If you want to reset the callback, use \f(CW\*(C`ev_invoke_pending\*(C'\fR as new
|
1031
|
+
callback.
|
1032
|
+
.IP "ev_set_loop_release_cb (loop, void (*release)(\s-1EV_P\s0), void (*acquire)(\s-1EV_P\s0))" 4
|
1033
|
+
.IX Item "ev_set_loop_release_cb (loop, void (*release)(EV_P), void (*acquire)(EV_P))"
|
1034
|
+
Sometimes you want to share the same loop between multiple threads. This
|
1035
|
+
can be done relatively simply by putting mutex_lock/unlock calls around
|
1036
|
+
each call to a libev function.
|
1037
|
+
.Sp
|
1038
|
+
However, \f(CW\*(C`ev_loop\*(C'\fR can run an indefinite time, so it is not feasible to
|
1039
|
+
wait for it to return. One way around this is to wake up the loop via
|
1040
|
+
\&\f(CW\*(C`ev_unloop\*(C'\fR and \f(CW\*(C`av_async_send\*(C'\fR, another way is to set these \fIrelease\fR
|
1041
|
+
and \fIacquire\fR callbacks on the loop.
|
1042
|
+
.Sp
|
1043
|
+
When set, then \f(CW\*(C`release\*(C'\fR will be called just before the thread is
|
1044
|
+
suspended waiting for new events, and \f(CW\*(C`acquire\*(C'\fR is called just
|
1045
|
+
afterwards.
|
1046
|
+
.Sp
|
1047
|
+
Ideally, \f(CW\*(C`release\*(C'\fR will just call your mutex_unlock function, and
|
1048
|
+
\&\f(CW\*(C`acquire\*(C'\fR will just call the mutex_lock function again.
|
1049
|
+
.Sp
|
1050
|
+
While event loop modifications are allowed between invocations of
|
1051
|
+
\&\f(CW\*(C`release\*(C'\fR and \f(CW\*(C`acquire\*(C'\fR (that's their only purpose after all), no
|
1052
|
+
modifications done will affect the event loop, i.e. adding watchers will
|
1053
|
+
have no effect on the set of file descriptors being watched, or the time
|
1054
|
+
waited. Use an \f(CW\*(C`ev_async\*(C'\fR watcher to wake up \f(CW\*(C`ev_loop\*(C'\fR when you want it
|
1055
|
+
to take note of any changes you made.
|
1056
|
+
.Sp
|
1057
|
+
In theory, threads executing \f(CW\*(C`ev_loop\*(C'\fR will be async-cancel safe between
|
1058
|
+
invocations of \f(CW\*(C`release\*(C'\fR and \f(CW\*(C`acquire\*(C'\fR.
|
1059
|
+
.Sp
|
1060
|
+
See also the locking example in the \f(CW\*(C`THREADS\*(C'\fR section later in this
|
1061
|
+
document.
|
1062
|
+
.IP "ev_set_userdata (loop, void *data)" 4
|
1063
|
+
.IX Item "ev_set_userdata (loop, void *data)"
|
1064
|
+
.PD 0
|
1065
|
+
.IP "ev_userdata (loop)" 4
|
1066
|
+
.IX Item "ev_userdata (loop)"
|
1067
|
+
.PD
|
1068
|
+
Set and retrieve a single \f(CW\*(C`void *\*(C'\fR associated with a loop. When
|
1069
|
+
\&\f(CW\*(C`ev_set_userdata\*(C'\fR has never been called, then \f(CW\*(C`ev_userdata\*(C'\fR returns
|
1070
|
+
\&\f(CW0.\fR
|
1071
|
+
.Sp
|
1072
|
+
These two functions can be used to associate arbitrary data with a loop,
|
1073
|
+
and are intended solely for the \f(CW\*(C`invoke_pending_cb\*(C'\fR, \f(CW\*(C`release\*(C'\fR and
|
1074
|
+
\&\f(CW\*(C`acquire\*(C'\fR callbacks described above, but of course can be (ab\-)used for
|
1075
|
+
any other purpose as well.
|
931
1076
|
.IP "ev_loop_verify (loop)" 4
|
932
1077
|
.IX Item "ev_loop_verify (loop)"
|
933
1078
|
This function only does something when \f(CW\*(C`EV_VERIFY\*(C'\fR support has been
|
@@ -1062,6 +1207,11 @@ The event loop has been resumed in the child process after fork (see
|
|
1062
1207
|
.el .IP "\f(CWEV_ASYNC\fR" 4
|
1063
1208
|
.IX Item "EV_ASYNC"
|
1064
1209
|
The given async watcher has been asynchronously notified (see \f(CW\*(C`ev_async\*(C'\fR).
|
1210
|
+
.ie n .IP """EV_CUSTOM""" 4
|
1211
|
+
.el .IP "\f(CWEV_CUSTOM\fR" 4
|
1212
|
+
.IX Item "EV_CUSTOM"
|
1213
|
+
Not ever sent (or otherwise used) by libev itself, but can be freely used
|
1214
|
+
by libev users to signal watchers (e.g. via \f(CW\*(C`ev_feed_event\*(C'\fR).
|
1065
1215
|
.ie n .IP """EV_ERROR""" 4
|
1066
1216
|
.el .IP "\f(CWEV_ERROR\fR" 4
|
1067
1217
|
.IX Item "EV_ERROR"
|
@@ -1081,7 +1231,7 @@ callbacks is well-written it can just attempt the operation and cope with
|
|
1081
1231
|
the error from \fIread()\fR or \fIwrite()\fR. This will not work in multi-threaded
|
1082
1232
|
programs, though, as the fd could already be closed and reused for another
|
1083
1233
|
thing, so beware.
|
1084
|
-
.
|
1234
|
+
.SS "\s-1GENERIC\s0 \s-1WATCHER\s0 \s-1FUNCTIONS\s0"
|
1085
1235
|
.IX Subsection "GENERIC WATCHER FUNCTIONS"
|
1086
1236
|
.ie n .IP """ev_init"" (ev_TYPE *watcher, callback)" 4
|
1087
1237
|
.el .IP "\f(CWev_init\fR (ev_TYPE *watcher, callback)" 4
|
@@ -1106,9 +1256,9 @@ Example: Initialise an \f(CW\*(C`ev_io\*(C'\fR watcher in two steps.
|
|
1106
1256
|
\& ev_init (&w, my_cb);
|
1107
1257
|
\& ev_io_set (&w, STDIN_FILENO, EV_READ);
|
1108
1258
|
.Ve
|
1109
|
-
.ie n .IP """ev_TYPE_set"" (ev_TYPE
|
1110
|
-
.el .IP "\f(CWev_TYPE_set\fR (ev_TYPE
|
1111
|
-
.IX Item "ev_TYPE_set (ev_TYPE
|
1259
|
+
.ie n .IP """ev_TYPE_set"" (ev_TYPE *watcher, [args])" 4
|
1260
|
+
.el .IP "\f(CWev_TYPE_set\fR (ev_TYPE *watcher, [args])" 4
|
1261
|
+
.IX Item "ev_TYPE_set (ev_TYPE *watcher, [args])"
|
1112
1262
|
This macro initialises the type-specific parts of a watcher. You need to
|
1113
1263
|
call \f(CW\*(C`ev_init\*(C'\fR at least once before you call this macro, but you can
|
1114
1264
|
call \f(CW\*(C`ev_TYPE_set\*(C'\fR any number of times. You must not, however, call this
|
@@ -1131,9 +1281,9 @@ Example: Initialise and set an \f(CW\*(C`ev_io\*(C'\fR watcher in one step.
|
|
1131
1281
|
.Vb 1
|
1132
1282
|
\& ev_io_init (&w, my_cb, STDIN_FILENO, EV_READ);
|
1133
1283
|
.Ve
|
1134
|
-
.ie n .IP """ev_TYPE_start"" (loop
|
1135
|
-
.el .IP "\f(CWev_TYPE_start\fR (loop
|
1136
|
-
.IX Item "ev_TYPE_start (loop
|
1284
|
+
.ie n .IP """ev_TYPE_start"" (loop, ev_TYPE *watcher)" 4
|
1285
|
+
.el .IP "\f(CWev_TYPE_start\fR (loop, ev_TYPE *watcher)" 4
|
1286
|
+
.IX Item "ev_TYPE_start (loop, ev_TYPE *watcher)"
|
1137
1287
|
Starts (activates) the given watcher. Only active watchers will receive
|
1138
1288
|
events. If the watcher is already active nothing will happen.
|
1139
1289
|
.Sp
|
@@ -1143,9 +1293,9 @@ whole section.
|
|
1143
1293
|
.Vb 1
|
1144
1294
|
\& ev_io_start (EV_DEFAULT_UC, &w);
|
1145
1295
|
.Ve
|
1146
|
-
.ie n .IP """ev_TYPE_stop"" (loop
|
1147
|
-
.el .IP "\f(CWev_TYPE_stop\fR (loop
|
1148
|
-
.IX Item "ev_TYPE_stop (loop
|
1296
|
+
.ie n .IP """ev_TYPE_stop"" (loop, ev_TYPE *watcher)" 4
|
1297
|
+
.el .IP "\f(CWev_TYPE_stop\fR (loop, ev_TYPE *watcher)" 4
|
1298
|
+
.IX Item "ev_TYPE_stop (loop, ev_TYPE *watcher)"
|
1149
1299
|
Stops the given watcher if active, and clears the pending status (whether
|
1150
1300
|
the watcher was active or not).
|
1151
1301
|
.Sp
|
@@ -1174,8 +1324,8 @@ Returns the callback currently set on the watcher.
|
|
1174
1324
|
.IX Item "ev_cb_set (ev_TYPE *watcher, callback)"
|
1175
1325
|
Change the callback. You can change the callback at virtually any time
|
1176
1326
|
(modulo threads).
|
1177
|
-
.IP "ev_set_priority (ev_TYPE *watcher, priority)" 4
|
1178
|
-
.IX Item "ev_set_priority (ev_TYPE *watcher, priority)"
|
1327
|
+
.IP "ev_set_priority (ev_TYPE *watcher, int priority)" 4
|
1328
|
+
.IX Item "ev_set_priority (ev_TYPE *watcher, int priority)"
|
1179
1329
|
.PD 0
|
1180
1330
|
.IP "int ev_priority (ev_TYPE *watcher)" 4
|
1181
1331
|
.IX Item "int ev_priority (ev_TYPE *watcher)"
|
@@ -1186,23 +1336,21 @@ integer between \f(CW\*(C`EV_MAXPRI\*(C'\fR (default: \f(CW2\fR) and \f(CW\*(C`E
|
|
1186
1336
|
before watchers with lower priority, but priority will not keep watchers
|
1187
1337
|
from being executed (except for \f(CW\*(C`ev_idle\*(C'\fR watchers).
|
1188
1338
|
.Sp
|
1189
|
-
This means that priorities are \fIonly\fR used for ordering callback
|
1190
|
-
invocation after new events have been received. This is useful, for
|
1191
|
-
example, to reduce latency after idling, or more often, to bind two
|
1192
|
-
watchers on the same event and make sure one is called first.
|
1193
|
-
.Sp
|
1194
1339
|
If you need to suppress invocation when higher priority events are pending
|
1195
1340
|
you need to look at \f(CW\*(C`ev_idle\*(C'\fR watchers, which provide this functionality.
|
1196
1341
|
.Sp
|
1197
1342
|
You \fImust not\fR change the priority of a watcher as long as it is active or
|
1198
1343
|
pending.
|
1199
1344
|
.Sp
|
1200
|
-
The default priority used by watchers when no priority has been set is
|
1201
|
-
always \f(CW0\fR, which is supposed to not be too high and not be too low :).
|
1202
|
-
.Sp
|
1203
1345
|
Setting a priority outside the range of \f(CW\*(C`EV_MINPRI\*(C'\fR to \f(CW\*(C`EV_MAXPRI\*(C'\fR is
|
1204
1346
|
fine, as long as you do not mind that the priority value you query might
|
1205
1347
|
or might not have been clamped to the valid range.
|
1348
|
+
.Sp
|
1349
|
+
The default priority used by watchers when no priority has been set is
|
1350
|
+
always \f(CW0\fR, which is supposed to not be too high and not be too low :).
|
1351
|
+
.Sp
|
1352
|
+
See \*(L"\s-1WATCHER\s0 \s-1PRIORITY\s0 \s-1MODELS\s0\*(R", below, for a more thorough treatment of
|
1353
|
+
priorities.
|
1206
1354
|
.IP "ev_invoke (loop, ev_TYPE *watcher, int revents)" 4
|
1207
1355
|
.IX Item "ev_invoke (loop, ev_TYPE *watcher, int revents)"
|
1208
1356
|
Invoke the \f(CW\*(C`watcher\*(C'\fR with the given \f(CW\*(C`loop\*(C'\fR and \f(CW\*(C`revents\*(C'\fR. Neither
|
@@ -1217,7 +1365,20 @@ watcher isn't pending it does nothing and returns \f(CW0\fR.
|
|
1217
1365
|
.Sp
|
1218
1366
|
Sometimes it can be useful to \*(L"poll\*(R" a watcher instead of waiting for its
|
1219
1367
|
callback to be invoked, which can be accomplished with this function.
|
1220
|
-
.
|
1368
|
+
.IP "ev_feed_event (loop, ev_TYPE *watcher, int revents)" 4
|
1369
|
+
.IX Item "ev_feed_event (loop, ev_TYPE *watcher, int revents)"
|
1370
|
+
Feeds the given event set into the event loop, as if the specified event
|
1371
|
+
had happened for the specified watcher (which must be a pointer to an
|
1372
|
+
initialised but not necessarily started event watcher). Obviously you must
|
1373
|
+
not free the watcher as long as it has pending events.
|
1374
|
+
.Sp
|
1375
|
+
Stopping the watcher, letting libev invoke it, or calling
|
1376
|
+
\&\f(CW\*(C`ev_clear_pending\*(C'\fR will clear the pending event, even if the watcher was
|
1377
|
+
not started in the first place.
|
1378
|
+
.Sp
|
1379
|
+
See also \f(CW\*(C`ev_feed_fd_event\*(C'\fR and \f(CW\*(C`ev_feed_signal_event\*(C'\fR for related
|
1380
|
+
functions that do not need a watcher.
|
1381
|
+
.SS "\s-1ASSOCIATING\s0 \s-1CUSTOM\s0 \s-1DATA\s0 \s-1WITH\s0 A \s-1WATCHER\s0"
|
1221
1382
|
.IX Subsection "ASSOCIATING CUSTOM DATA WITH A WATCHER"
|
1222
1383
|
Each watcher has, by default, a member \f(CW\*(C`void *data\*(C'\fR that you can change
|
1223
1384
|
and read at any time: libev will completely ignore it. This can be used
|
@@ -1278,17 +1439,121 @@ programmers):
|
|
1278
1439
|
\& static void
|
1279
1440
|
\& t1_cb (EV_P_ ev_timer *w, int revents)
|
1280
1441
|
\& {
|
1281
|
-
\& struct my_biggy big = (struct my_biggy *
|
1442
|
+
\& struct my_biggy big = (struct my_biggy *)
|
1282
1443
|
\& (((char *)w) \- offsetof (struct my_biggy, t1));
|
1283
1444
|
\& }
|
1284
1445
|
\&
|
1285
1446
|
\& static void
|
1286
1447
|
\& t2_cb (EV_P_ ev_timer *w, int revents)
|
1287
1448
|
\& {
|
1288
|
-
\& struct my_biggy big = (struct my_biggy *
|
1449
|
+
\& struct my_biggy big = (struct my_biggy *)
|
1289
1450
|
\& (((char *)w) \- offsetof (struct my_biggy, t2));
|
1290
1451
|
\& }
|
1291
1452
|
.Ve
|
1453
|
+
.SS "\s-1WATCHER\s0 \s-1PRIORITY\s0 \s-1MODELS\s0"
|
1454
|
+
.IX Subsection "WATCHER PRIORITY MODELS"
|
1455
|
+
Many event loops support \fIwatcher priorities\fR, which are usually small
|
1456
|
+
integers that influence the ordering of event callback invocation
|
1457
|
+
between watchers in some way, all else being equal.
|
1458
|
+
.PP
|
1459
|
+
In libev, Watcher priorities can be set using \f(CW\*(C`ev_set_priority\*(C'\fR. See its
|
1460
|
+
description for the more technical details such as the actual priority
|
1461
|
+
range.
|
1462
|
+
.PP
|
1463
|
+
There are two common ways how these these priorities are being interpreted
|
1464
|
+
by event loops:
|
1465
|
+
.PP
|
1466
|
+
In the more common lock-out model, higher priorities \*(L"lock out\*(R" invocation
|
1467
|
+
of lower priority watchers, which means as long as higher priority
|
1468
|
+
watchers receive events, lower priority watchers are not being invoked.
|
1469
|
+
.PP
|
1470
|
+
The less common only-for-ordering model uses priorities solely to order
|
1471
|
+
callback invocation within a single event loop iteration: Higher priority
|
1472
|
+
watchers are invoked before lower priority ones, but they all get invoked
|
1473
|
+
before polling for new events.
|
1474
|
+
.PP
|
1475
|
+
Libev uses the second (only-for-ordering) model for all its watchers
|
1476
|
+
except for idle watchers (which use the lock-out model).
|
1477
|
+
.PP
|
1478
|
+
The rationale behind this is that implementing the lock-out model for
|
1479
|
+
watchers is not well supported by most kernel interfaces, and most event
|
1480
|
+
libraries will just poll for the same events again and again as long as
|
1481
|
+
their callbacks have not been executed, which is very inefficient in the
|
1482
|
+
common case of one high-priority watcher locking out a mass of lower
|
1483
|
+
priority ones.
|
1484
|
+
.PP
|
1485
|
+
Static (ordering) priorities are most useful when you have two or more
|
1486
|
+
watchers handling the same resource: a typical usage example is having an
|
1487
|
+
\&\f(CW\*(C`ev_io\*(C'\fR watcher to receive data, and an associated \f(CW\*(C`ev_timer\*(C'\fR to handle
|
1488
|
+
timeouts. Under load, data might be received while the program handles
|
1489
|
+
other jobs, but since timers normally get invoked first, the timeout
|
1490
|
+
handler will be executed before checking for data. In that case, giving
|
1491
|
+
the timer a lower priority than the I/O watcher ensures that I/O will be
|
1492
|
+
handled first even under adverse conditions (which is usually, but not
|
1493
|
+
always, what you want).
|
1494
|
+
.PP
|
1495
|
+
Since idle watchers use the \*(L"lock-out\*(R" model, meaning that idle watchers
|
1496
|
+
will only be executed when no same or higher priority watchers have
|
1497
|
+
received events, they can be used to implement the \*(L"lock-out\*(R" model when
|
1498
|
+
required.
|
1499
|
+
.PP
|
1500
|
+
For example, to emulate how many other event libraries handle priorities,
|
1501
|
+
you can associate an \f(CW\*(C`ev_idle\*(C'\fR watcher to each such watcher, and in
|
1502
|
+
the normal watcher callback, you just start the idle watcher. The real
|
1503
|
+
processing is done in the idle watcher callback. This causes libev to
|
1504
|
+
continously poll and process kernel event data for the watcher, but when
|
1505
|
+
the lock-out case is known to be rare (which in turn is rare :), this is
|
1506
|
+
workable.
|
1507
|
+
.PP
|
1508
|
+
Usually, however, the lock-out model implemented that way will perform
|
1509
|
+
miserably under the type of load it was designed to handle. In that case,
|
1510
|
+
it might be preferable to stop the real watcher before starting the
|
1511
|
+
idle watcher, so the kernel will not have to process the event in case
|
1512
|
+
the actual processing will be delayed for considerable time.
|
1513
|
+
.PP
|
1514
|
+
Here is an example of an I/O watcher that should run at a strictly lower
|
1515
|
+
priority than the default, and which should only process data when no
|
1516
|
+
other events are pending:
|
1517
|
+
.PP
|
1518
|
+
.Vb 2
|
1519
|
+
\& ev_idle idle; // actual processing watcher
|
1520
|
+
\& ev_io io; // actual event watcher
|
1521
|
+
\&
|
1522
|
+
\& static void
|
1523
|
+
\& io_cb (EV_P_ ev_io *w, int revents)
|
1524
|
+
\& {
|
1525
|
+
\& // stop the I/O watcher, we received the event, but
|
1526
|
+
\& // are not yet ready to handle it.
|
1527
|
+
\& ev_io_stop (EV_A_ w);
|
1528
|
+
\&
|
1529
|
+
\& // start the idle watcher to ahndle the actual event.
|
1530
|
+
\& // it will not be executed as long as other watchers
|
1531
|
+
\& // with the default priority are receiving events.
|
1532
|
+
\& ev_idle_start (EV_A_ &idle);
|
1533
|
+
\& }
|
1534
|
+
\&
|
1535
|
+
\& static void
|
1536
|
+
\& idle_cb (EV_P_ ev_idle *w, int revents)
|
1537
|
+
\& {
|
1538
|
+
\& // actual processing
|
1539
|
+
\& read (STDIN_FILENO, ...);
|
1540
|
+
\&
|
1541
|
+
\& // have to start the I/O watcher again, as
|
1542
|
+
\& // we have handled the event
|
1543
|
+
\& ev_io_start (EV_P_ &io);
|
1544
|
+
\& }
|
1545
|
+
\&
|
1546
|
+
\& // initialisation
|
1547
|
+
\& ev_idle_init (&idle, idle_cb);
|
1548
|
+
\& ev_io_init (&io, io_cb, STDIN_FILENO, EV_READ);
|
1549
|
+
\& ev_io_start (EV_DEFAULT_ &io);
|
1550
|
+
.Ve
|
1551
|
+
.PP
|
1552
|
+
In the \*(L"real\*(R" world, it might also be beneficial to start a timer, so that
|
1553
|
+
low-priority connections can not be locked out forever under load. This
|
1554
|
+
enables your program to keep a lower latency for important connections
|
1555
|
+
during short periods of high load, while not completely locking out less
|
1556
|
+
important ones.
|
1292
1557
|
.SH "WATCHER TYPES"
|
1293
1558
|
.IX Header "WATCHER TYPES"
|
1294
1559
|
This section describes each watcher in detail, but will not repeat
|
@@ -1303,8 +1568,8 @@ means you can expect it to have some sensible content while the watcher
|
|
1303
1568
|
is active, but you can also modify it. Modifying it may not do something
|
1304
1569
|
sensible or take immediate effect (or do anything at all), but libev will
|
1305
1570
|
not crash or malfunction in any way.
|
1306
|
-
.ie n .
|
1307
|
-
.el .
|
1571
|
+
.ie n .SS """ev_io"" \- is this file descriptor readable or writable?"
|
1572
|
+
.el .SS "\f(CWev_io\fP \- is this file descriptor readable or writable?"
|
1308
1573
|
.IX Subsection "ev_io - is this file descriptor readable or writable?"
|
1309
1574
|
I/O watchers check whether a file descriptor is readable or writable
|
1310
1575
|
in each iteration of the event loop, or, more precisely, when reading
|
@@ -1321,7 +1586,9 @@ required if you know what you are doing).
|
|
1321
1586
|
.PP
|
1322
1587
|
If you cannot use non-blocking mode, then force the use of a
|
1323
1588
|
known-to-be-good backend (at the time of this writing, this includes only
|
1324
|
-
\&\f(CW\*(C`EVBACKEND_SELECT\*(C'\fR and \f(CW\*(C`EVBACKEND_POLL\*(C'\fR).
|
1589
|
+
\&\f(CW\*(C`EVBACKEND_SELECT\*(C'\fR and \f(CW\*(C`EVBACKEND_POLL\*(C'\fR). The same applies to file
|
1590
|
+
descriptors for which non-blocking operation makes no sense (such as
|
1591
|
+
files) \- libev doesn't guarentee any specific behaviour in that case.
|
1325
1592
|
.PP
|
1326
1593
|
Another thing you have to watch out for is that it is quite easy to
|
1327
1594
|
receive \*(L"spurious\*(R" readiness notifications, that is your callback might
|
@@ -1440,8 +1707,8 @@ attempt to read a whole line in the callback.
|
|
1440
1707
|
\& ev_io_start (loop, &stdin_readable);
|
1441
1708
|
\& ev_loop (loop, 0);
|
1442
1709
|
.Ve
|
1443
|
-
.ie n .
|
1444
|
-
.el .
|
1710
|
+
.ie n .SS """ev_timer"" \- relative and optionally repeating timeouts"
|
1711
|
+
.el .SS "\f(CWev_timer\fP \- relative and optionally repeating timeouts"
|
1445
1712
|
.IX Subsection "ev_timer - relative and optionally repeating timeouts"
|
1446
1713
|
Timer watchers are simple relative timers that generate an event after a
|
1447
1714
|
given time, and optionally repeating in regular intervals after that.
|
@@ -1453,8 +1720,11 @@ detecting time jumps is hard, and some inaccuracies are unavoidable (the
|
|
1453
1720
|
monotonic clock option helps a lot here).
|
1454
1721
|
.PP
|
1455
1722
|
The callback is guaranteed to be invoked only \fIafter\fR its timeout has
|
1456
|
-
passed
|
1457
|
-
|
1723
|
+
passed (not \fIat\fR, so on systems with very low-resolution clocks this
|
1724
|
+
might introduce a small delay). If multiple timers become ready during the
|
1725
|
+
same loop iteration then the ones with earlier time-out values are invoked
|
1726
|
+
before ones of the same priority with later time-out values (but this is
|
1727
|
+
no longer true when a callback calls \f(CW\*(C`ev_loop\*(C'\fR recursively).
|
1458
1728
|
.PP
|
1459
1729
|
\fIBe smart about timeouts\fR
|
1460
1730
|
.IX Subsection "Be smart about timeouts"
|
@@ -1511,7 +1781,7 @@ member and \f(CW\*(C`ev_timer_again\*(C'\fR.
|
|
1511
1781
|
At start:
|
1512
1782
|
.Sp
|
1513
1783
|
.Vb 3
|
1514
|
-
\&
|
1784
|
+
\& ev_init (timer, callback);
|
1515
1785
|
\& timer\->repeat = 60.;
|
1516
1786
|
\& ev_timer_again (loop, timer);
|
1517
1787
|
.Ve
|
@@ -1590,7 +1860,7 @@ to the current time (meaning we just have some activity :), then call the
|
|
1590
1860
|
callback, which will \*(L"do the right thing\*(R" and start the timer:
|
1591
1861
|
.Sp
|
1592
1862
|
.Vb 3
|
1593
|
-
\&
|
1863
|
+
\& ev_init (timer, callback);
|
1594
1864
|
\& last_activity = ev_now (loop);
|
1595
1865
|
\& callback (loop, timer, EV_TIMEOUT);
|
1596
1866
|
.Ve
|
@@ -1664,6 +1934,37 @@ If the event loop is suspended for a long time, you can also force an
|
|
1664
1934
|
update of the time returned by \f(CW\*(C`ev_now ()\*(C'\fR by calling \f(CW\*(C`ev_now_update
|
1665
1935
|
()\*(C'\fR.
|
1666
1936
|
.PP
|
1937
|
+
\fIThe special problems of suspended animation\fR
|
1938
|
+
.IX Subsection "The special problems of suspended animation"
|
1939
|
+
.PP
|
1940
|
+
When you leave the server world it is quite customary to hit machines that
|
1941
|
+
can suspend/hibernate \- what happens to the clocks during such a suspend?
|
1942
|
+
.PP
|
1943
|
+
Some quick tests made with a Linux 2.6.28 indicate that a suspend freezes
|
1944
|
+
all processes, while the clocks (\f(CW\*(C`times\*(C'\fR, \f(CW\*(C`CLOCK_MONOTONIC\*(C'\fR) continue
|
1945
|
+
to run until the system is suspended, but they will not advance while the
|
1946
|
+
system is suspended. That means, on resume, it will be as if the program
|
1947
|
+
was frozen for a few seconds, but the suspend time will not be counted
|
1948
|
+
towards \f(CW\*(C`ev_timer\*(C'\fR when a monotonic clock source is used. The real time
|
1949
|
+
clock advanced as expected, but if it is used as sole clocksource, then a
|
1950
|
+
long suspend would be detected as a time jump by libev, and timers would
|
1951
|
+
be adjusted accordingly.
|
1952
|
+
.PP
|
1953
|
+
I would not be surprised to see different behaviour in different between
|
1954
|
+
operating systems, \s-1OS\s0 versions or even different hardware.
|
1955
|
+
.PP
|
1956
|
+
The other form of suspend (job control, or sending a \s-1SIGSTOP\s0) will see a
|
1957
|
+
time jump in the monotonic clocks and the realtime clock. If the program
|
1958
|
+
is suspended for a very long time, and monotonic clock sources are in use,
|
1959
|
+
then you can expect \f(CW\*(C`ev_timer\*(C'\fRs to expire as the full suspension time
|
1960
|
+
will be counted towards the timers. When no monotonic clock source is in
|
1961
|
+
use, then libev will again assume a timejump and adjust accordingly.
|
1962
|
+
.PP
|
1963
|
+
It might be beneficial for this latter case to call \f(CW\*(C`ev_suspend\*(C'\fR
|
1964
|
+
and \f(CW\*(C`ev_resume\*(C'\fR in code that handles \f(CW\*(C`SIGTSTP\*(C'\fR, to at least get
|
1965
|
+
deterministic behaviour in this case (you can do nothing against
|
1966
|
+
\&\f(CW\*(C`SIGSTOP\*(C'\fR).
|
1967
|
+
.PP
|
1667
1968
|
\fIWatcher-Specific Functions and Data Members\fR
|
1668
1969
|
.IX Subsection "Watcher-Specific Functions and Data Members"
|
1669
1970
|
.IP "ev_timer_init (ev_timer *, callback, ev_tstamp after, ev_tstamp repeat)" 4
|
@@ -1697,6 +1998,17 @@ If the timer is repeating, either start it if necessary (with the
|
|
1697
1998
|
.Sp
|
1698
1999
|
This sounds a bit complicated, see \*(L"Be smart about timeouts\*(R", above, for a
|
1699
2000
|
usage example.
|
2001
|
+
.IP "ev_tstamp ev_timer_remaining (loop, ev_timer *)" 4
|
2002
|
+
.IX Item "ev_tstamp ev_timer_remaining (loop, ev_timer *)"
|
2003
|
+
Returns the remaining time until a timer fires. If the timer is active,
|
2004
|
+
then this time is relative to the current event loop time, otherwise it's
|
2005
|
+
the timeout value currently configured.
|
2006
|
+
.Sp
|
2007
|
+
That is, after an \f(CW\*(C`ev_timer_set (w, 5, 7)\*(C'\fR, \f(CW\*(C`ev_timer_remaining\*(C'\fR returns
|
2008
|
+
\&\f(CW5\fR. When the timer is started and one second passes, \f(CW\*(C`ev_timer_remain\*(C'\fR
|
2009
|
+
will return \f(CW4\fR. When the timer expires and is restarted, it will return
|
2010
|
+
roughly \f(CW7\fR (likely slightly less as callback invocation takes some time,
|
2011
|
+
too), and so on.
|
1700
2012
|
.IP "ev_tstamp repeat [read\-write]" 4
|
1701
2013
|
.IX Item "ev_tstamp repeat [read-write]"
|
1702
2014
|
The current \f(CW\*(C`repeat\*(C'\fR value. Will be used each time the watcher times out
|
@@ -1739,57 +2051,68 @@ inactivity.
|
|
1739
2051
|
\& // reset the timeout to start ticking again at 10 seconds
|
1740
2052
|
\& ev_timer_again (&mytimer);
|
1741
2053
|
.Ve
|
1742
|
-
.ie n .
|
1743
|
-
.el .
|
2054
|
+
.ie n .SS """ev_periodic"" \- to cron or not to cron?"
|
2055
|
+
.el .SS "\f(CWev_periodic\fP \- to cron or not to cron?"
|
1744
2056
|
.IX Subsection "ev_periodic - to cron or not to cron?"
|
1745
2057
|
Periodic watchers are also timers of a kind, but they are very versatile
|
1746
2058
|
(and unfortunately a bit complex).
|
1747
2059
|
.PP
|
1748
|
-
Unlike \f(CW\*(C`ev_timer\*(C'\fR
|
1749
|
-
|
1750
|
-
|
1751
|
-
|
1752
|
-
|
1753
|
-
|
1754
|
-
|
1755
|
-
|
1756
|
-
|
1757
|
-
|
1758
|
-
|
1759
|
-
|
2060
|
+
Unlike \f(CW\*(C`ev_timer\*(C'\fR, periodic watchers are not based on real time (or
|
2061
|
+
relative time, the physical time that passes) but on wall clock time
|
2062
|
+
(absolute time, the thing you can read on your calender or clock). The
|
2063
|
+
difference is that wall clock time can run faster or slower than real
|
2064
|
+
time, and time jumps are not uncommon (e.g. when you adjust your
|
2065
|
+
wrist-watch).
|
2066
|
+
.PP
|
2067
|
+
You can tell a periodic watcher to trigger after some specific point
|
2068
|
+
in time: for example, if you tell a periodic watcher to trigger \*(L"in 10
|
2069
|
+
seconds\*(R" (by specifying e.g. \f(CW\*(C`ev_now () + 10.\*(C'\fR, that is, an absolute time
|
2070
|
+
not a delay) and then reset your system clock to January of the previous
|
2071
|
+
year, then it will take a year or more to trigger the event (unlike an
|
2072
|
+
\&\f(CW\*(C`ev_timer\*(C'\fR, which would still trigger roughly 10 seconds after starting
|
2073
|
+
it, as it uses a relative timeout).
|
2074
|
+
.PP
|
2075
|
+
\&\f(CW\*(C`ev_periodic\*(C'\fR watchers can also be used to implement vastly more complex
|
2076
|
+
timers, such as triggering an event on each \*(L"midnight, local time\*(R", or
|
2077
|
+
other complicated rules. This cannot be done with \f(CW\*(C`ev_timer\*(C'\fR watchers, as
|
2078
|
+
those cannot react to time jumps.
|
1760
2079
|
.PP
|
1761
2080
|
As with timers, the callback is guaranteed to be invoked only when the
|
1762
|
-
time
|
1763
|
-
during the same loop iteration
|
2081
|
+
point in time where it is supposed to trigger has passed. If multiple
|
2082
|
+
timers become ready during the same loop iteration then the ones with
|
2083
|
+
earlier time-out values are invoked before ones with later time-out values
|
2084
|
+
(but this is no longer true when a callback calls \f(CW\*(C`ev_loop\*(C'\fR recursively).
|
1764
2085
|
.PP
|
1765
2086
|
\fIWatcher-Specific Functions and Data Members\fR
|
1766
2087
|
.IX Subsection "Watcher-Specific Functions and Data Members"
|
1767
|
-
.IP "ev_periodic_init (ev_periodic *, callback, ev_tstamp
|
1768
|
-
.IX Item "ev_periodic_init (ev_periodic *, callback, ev_tstamp
|
2088
|
+
.IP "ev_periodic_init (ev_periodic *, callback, ev_tstamp offset, ev_tstamp interval, reschedule_cb)" 4
|
2089
|
+
.IX Item "ev_periodic_init (ev_periodic *, callback, ev_tstamp offset, ev_tstamp interval, reschedule_cb)"
|
1769
2090
|
.PD 0
|
1770
|
-
.IP "ev_periodic_set (ev_periodic *, ev_tstamp
|
1771
|
-
.IX Item "ev_periodic_set (ev_periodic *, ev_tstamp
|
2091
|
+
.IP "ev_periodic_set (ev_periodic *, ev_tstamp offset, ev_tstamp interval, reschedule_cb)" 4
|
2092
|
+
.IX Item "ev_periodic_set (ev_periodic *, ev_tstamp offset, ev_tstamp interval, reschedule_cb)"
|
1772
2093
|
.PD
|
1773
|
-
Lots of arguments,
|
2094
|
+
Lots of arguments, let's sort it out... There are basically three modes of
|
1774
2095
|
operation, and we will explain them from simplest to most complex:
|
1775
2096
|
.RS 4
|
1776
2097
|
.IP "\(bu" 4
|
1777
|
-
absolute timer (
|
2098
|
+
absolute timer (offset = absolute time, interval = 0, reschedule_cb = 0)
|
1778
2099
|
.Sp
|
1779
2100
|
In this configuration the watcher triggers an event after the wall clock
|
1780
|
-
time \f(CW\*(C`
|
1781
|
-
jump occurs, that is, if it is to be run at January 1st 2011 then it
|
1782
|
-
|
2101
|
+
time \f(CW\*(C`offset\*(C'\fR has passed. It will not repeat and will not adjust when a
|
2102
|
+
time jump occurs, that is, if it is to be run at January 1st 2011 then it
|
2103
|
+
will be stopped and invoked when the system clock reaches or surpasses
|
2104
|
+
this point in time.
|
1783
2105
|
.IP "\(bu" 4
|
1784
|
-
repeating interval timer (
|
2106
|
+
repeating interval timer (offset = offset within interval, interval > 0, reschedule_cb = 0)
|
1785
2107
|
.Sp
|
1786
2108
|
In this mode the watcher will always be scheduled to time out at the next
|
1787
|
-
\&\f(CW\*(C`
|
1788
|
-
and then repeat, regardless of any time jumps.
|
2109
|
+
\&\f(CW\*(C`offset + N * interval\*(C'\fR time (for some integer N, which can also be
|
2110
|
+
negative) and then repeat, regardless of any time jumps. The \f(CW\*(C`offset\*(C'\fR
|
2111
|
+
argument is merely an offset into the \f(CW\*(C`interval\*(C'\fR periods.
|
1789
2112
|
.Sp
|
1790
2113
|
This can be used to create timers that do not drift with respect to the
|
1791
|
-
system clock, for example, here is
|
1792
|
-
hour, on the hour:
|
2114
|
+
system clock, for example, here is an \f(CW\*(C`ev_periodic\*(C'\fR that triggers each
|
2115
|
+
hour, on the hour (with respect to \s-1UTC\s0):
|
1793
2116
|
.Sp
|
1794
2117
|
.Vb 1
|
1795
2118
|
\& ev_periodic_set (&periodic, 0., 3600., 0);
|
@@ -1802,9 +2125,9 @@ by 3600.
|
|
1802
2125
|
.Sp
|
1803
2126
|
Another way to think about it (for the mathematically inclined) is that
|
1804
2127
|
\&\f(CW\*(C`ev_periodic\*(C'\fR will try to run the callback in this mode at the next possible
|
1805
|
-
time where \f(CW\*(C`time =
|
2128
|
+
time where \f(CW\*(C`time = offset (mod interval)\*(C'\fR, regardless of any time jumps.
|
1806
2129
|
.Sp
|
1807
|
-
For numerical stability it is preferable that the \f(CW\*(C`
|
2130
|
+
For numerical stability it is preferable that the \f(CW\*(C`offset\*(C'\fR value is near
|
1808
2131
|
\&\f(CW\*(C`ev_now ()\*(C'\fR (the current time), but there is no range requirement for
|
1809
2132
|
this value, and in fact is often specified as zero.
|
1810
2133
|
.Sp
|
@@ -1813,15 +2136,16 @@ speed for example), so if \f(CW\*(C`interval\*(C'\fR is very small then timing s
|
|
1813
2136
|
will of course deteriorate. Libev itself tries to be exact to be about one
|
1814
2137
|
millisecond (if the \s-1OS\s0 supports it and the machine is fast enough).
|
1815
2138
|
.IP "\(bu" 4
|
1816
|
-
manual reschedule mode (
|
2139
|
+
manual reschedule mode (offset ignored, interval ignored, reschedule_cb = callback)
|
1817
2140
|
.Sp
|
1818
|
-
In this mode the values for \f(CW\*(C`interval\*(C'\fR and \f(CW\*(C`
|
2141
|
+
In this mode the values for \f(CW\*(C`interval\*(C'\fR and \f(CW\*(C`offset\*(C'\fR are both being
|
1819
2142
|
ignored. Instead, each time the periodic watcher gets scheduled, the
|
1820
2143
|
reschedule callback will be called with the watcher as first, and the
|
1821
2144
|
current time as second argument.
|
1822
2145
|
.Sp
|
1823
|
-
\&\s-1NOTE:\s0 \fIThis callback \s-1MUST\s0 \s-1NOT\s0 stop or destroy any periodic watcher,
|
1824
|
-
|
2146
|
+
\&\s-1NOTE:\s0 \fIThis callback \s-1MUST\s0 \s-1NOT\s0 stop or destroy any periodic watcher, ever,
|
2147
|
+
or make \s-1ANY\s0 other event loop modifications whatsoever, unless explicitly
|
2148
|
+
allowed by documentation here\fR.
|
1825
2149
|
.Sp
|
1826
2150
|
If you need to stop it, return \f(CW\*(C`now + 1e30\*(C'\fR (or so, fudge fudge) and stop
|
1827
2151
|
it afterwards (e.g. by starting an \f(CW\*(C`ev_prepare\*(C'\fR watcher, which is the
|
@@ -1862,12 +2186,15 @@ a different time than the last time it was called (e.g. in a crond like
|
|
1862
2186
|
program when the crontabs have changed).
|
1863
2187
|
.IP "ev_tstamp ev_periodic_at (ev_periodic *)" 4
|
1864
2188
|
.IX Item "ev_tstamp ev_periodic_at (ev_periodic *)"
|
1865
|
-
When active, returns the absolute time that the watcher is supposed
|
1866
|
-
trigger next.
|
2189
|
+
When active, returns the absolute time that the watcher is supposed
|
2190
|
+
to trigger next. This is not the same as the \f(CW\*(C`offset\*(C'\fR argument to
|
2191
|
+
\&\f(CW\*(C`ev_periodic_set\*(C'\fR, but indeed works even in interval and manual
|
2192
|
+
rescheduling modes.
|
1867
2193
|
.IP "ev_tstamp offset [read\-write]" 4
|
1868
2194
|
.IX Item "ev_tstamp offset [read-write]"
|
1869
2195
|
When repeating, this contains the offset value, otherwise this is the
|
1870
|
-
absolute point in time (the \f(CW\*(C`
|
2196
|
+
absolute point in time (the \f(CW\*(C`offset\*(C'\fR value passed to \f(CW\*(C`ev_periodic_set\*(C'\fR,
|
2197
|
+
although libev might modify this value for better numerical stability).
|
1871
2198
|
.Sp
|
1872
2199
|
Can be modified any time, but changes only take effect when the periodic
|
1873
2200
|
timer fires or \f(CW\*(C`ev_periodic_again\*(C'\fR is being called.
|
@@ -1923,30 +2250,64 @@ Example: Call a callback every hour, starting now:
|
|
1923
2250
|
\& fmod (ev_now (loop), 3600.), 3600., 0);
|
1924
2251
|
\& ev_periodic_start (loop, &hourly_tick);
|
1925
2252
|
.Ve
|
1926
|
-
.ie n .
|
1927
|
-
.el .
|
2253
|
+
.ie n .SS """ev_signal"" \- signal me when a signal gets signalled!"
|
2254
|
+
.el .SS "\f(CWev_signal\fP \- signal me when a signal gets signalled!"
|
1928
2255
|
.IX Subsection "ev_signal - signal me when a signal gets signalled!"
|
1929
2256
|
Signal watchers will trigger an event when the process receives a specific
|
1930
2257
|
signal one or more times. Even though signals are very asynchronous, libev
|
1931
2258
|
will try it's best to deliver signals synchronously, i.e. as part of the
|
1932
2259
|
normal event processing, like any other event.
|
1933
2260
|
.PP
|
1934
|
-
If you want signals asynchronously, just use
|
1935
|
-
do without libev and forget about sharing
|
1936
|
-
|
2261
|
+
If you want signals to be delivered truly asynchronously, just use
|
2262
|
+
\&\f(CW\*(C`sigaction\*(C'\fR as you would do without libev and forget about sharing
|
2263
|
+
the signal. You can even use \f(CW\*(C`ev_async\*(C'\fR from a signal handler to
|
2264
|
+
synchronously wake up an event loop.
|
1937
2265
|
.PP
|
1938
|
-
You can configure as many watchers as you like
|
1939
|
-
|
2266
|
+
You can configure as many watchers as you like for the same signal, but
|
2267
|
+
only within the same loop, i.e. you can watch for \f(CW\*(C`SIGINT\*(C'\fR in your
|
2268
|
+
default loop and for \f(CW\*(C`SIGIO\*(C'\fR in another loop, but you cannot watch for
|
2269
|
+
\&\f(CW\*(C`SIGINT\*(C'\fR in both the default loop and another loop at the same time. At
|
2270
|
+
the moment, \f(CW\*(C`SIGCHLD\*(C'\fR is permanently tied to the default loop.
|
2271
|
+
.PP
|
2272
|
+
When the first watcher gets started will libev actually register something
|
1940
2273
|
with the kernel (thus it coexists with your own signal handlers as long as
|
1941
|
-
you don't register any with libev for the same signal).
|
1942
|
-
the last signal watcher for a signal is stopped, libev will reset the
|
1943
|
-
signal handler to \s-1SIG_DFL\s0 (regardless of what it was set to before).
|
2274
|
+
you don't register any with libev for the same signal).
|
1944
2275
|
.PP
|
1945
2276
|
If possible and supported, libev will install its handlers with
|
1946
|
-
\&\f(CW\*(C`SA_RESTART\*(C'\fR behaviour enabled, so system calls should
|
1947
|
-
interrupted. If you have a problem with system calls getting
|
1948
|
-
signals you can block all signals in an \f(CW\*(C`ev_check\*(C'\fR watcher
|
1949
|
-
them in an \f(CW\*(C`ev_prepare\*(C'\fR watcher.
|
2277
|
+
\&\f(CW\*(C`SA_RESTART\*(C'\fR (or equivalent) behaviour enabled, so system calls should
|
2278
|
+
not be unduly interrupted. If you have a problem with system calls getting
|
2279
|
+
interrupted by signals you can block all signals in an \f(CW\*(C`ev_check\*(C'\fR watcher
|
2280
|
+
and unblock them in an \f(CW\*(C`ev_prepare\*(C'\fR watcher.
|
2281
|
+
.PP
|
2282
|
+
\fIThe special problem of inheritance over fork/execve/pthread_create\fR
|
2283
|
+
.IX Subsection "The special problem of inheritance over fork/execve/pthread_create"
|
2284
|
+
.PP
|
2285
|
+
Both the signal mask (\f(CW\*(C`sigprocmask\*(C'\fR) and the signal disposition
|
2286
|
+
(\f(CW\*(C`sigaction\*(C'\fR) are unspecified after starting a signal watcher (and after
|
2287
|
+
stopping it again), that is, libev might or might not block the signal,
|
2288
|
+
and might or might not set or restore the installed signal handler.
|
2289
|
+
.PP
|
2290
|
+
While this does not matter for the signal disposition (libev never
|
2291
|
+
sets signals to \f(CW\*(C`SIG_IGN\*(C'\fR, so handlers will be reset to \f(CW\*(C`SIG_DFL\*(C'\fR on
|
2292
|
+
\&\f(CW\*(C`execve\*(C'\fR), this matters for the signal mask: many programs do not expect
|
2293
|
+
certain signals to be blocked.
|
2294
|
+
.PP
|
2295
|
+
This means that before calling \f(CW\*(C`exec\*(C'\fR (from the child) you should reset
|
2296
|
+
the signal mask to whatever \*(L"default\*(R" you expect (all clear is a good
|
2297
|
+
choice usually).
|
2298
|
+
.PP
|
2299
|
+
The simplest way to ensure that the signal mask is reset in the child is
|
2300
|
+
to install a fork handler with \f(CW\*(C`pthread_atfork\*(C'\fR that resets it. That will
|
2301
|
+
catch fork calls done by libraries (such as the libc) as well.
|
2302
|
+
.PP
|
2303
|
+
In current versions of libev, the signal will not be blocked indefinitely
|
2304
|
+
unless you use the \f(CW\*(C`signalfd\*(C'\fR \s-1API\s0 (\f(CW\*(C`EV_SIGNALFD\*(C'\fR). While this reduces
|
2305
|
+
the window of opportunity for problems, it will not go away, as libev
|
2306
|
+
\&\fIhas\fR to modify the signal mask, at least temporarily.
|
2307
|
+
.PP
|
2308
|
+
So I can't stress this enough: \fIIf you do not reset your signal mask when
|
2309
|
+
you expect it to be empty, you have a race condition in your code\fR. This
|
2310
|
+
is not a libev-specific thing, this is true for most event libraries.
|
1950
2311
|
.PP
|
1951
2312
|
\fIWatcher-Specific Functions and Data Members\fR
|
1952
2313
|
.IX Subsection "Watcher-Specific Functions and Data Members"
|
@@ -1978,8 +2339,8 @@ Example: Try to exit cleanly on \s-1SIGINT\s0.
|
|
1978
2339
|
\& ev_signal_init (&signal_watcher, sigint_cb, SIGINT);
|
1979
2340
|
\& ev_signal_start (loop, &signal_watcher);
|
1980
2341
|
.Ve
|
1981
|
-
.ie n .
|
1982
|
-
.el .
|
2342
|
+
.ie n .SS """ev_child"" \- watch out for process status changes"
|
2343
|
+
.el .SS "\f(CWev_child\fP \- watch out for process status changes"
|
1983
2344
|
.IX Subsection "ev_child - watch out for process status changes"
|
1984
2345
|
Child watchers trigger when your process receives a \s-1SIGCHLD\s0 in response to
|
1985
2346
|
some child status changes (most typically when a child of yours dies or
|
@@ -1987,18 +2348,22 @@ exits). It is permissible to install a child watcher \fIafter\fR the child
|
|
1987
2348
|
has been forked (which implies it might have already exited), as long
|
1988
2349
|
as the event loop isn't entered (or is continued from a watcher), i.e.,
|
1989
2350
|
forking and then immediately registering a watcher for the child is fine,
|
1990
|
-
but forking and registering a watcher a few event loop iterations later
|
1991
|
-
not.
|
2351
|
+
but forking and registering a watcher a few event loop iterations later or
|
2352
|
+
in the next callback invocation is not.
|
1992
2353
|
.PP
|
1993
2354
|
Only the default event loop is capable of handling signals, and therefore
|
1994
2355
|
you can only register child watchers in the default event loop.
|
1995
2356
|
.PP
|
2357
|
+
Due to some design glitches inside libev, child watchers will always be
|
2358
|
+
handled at maximum priority (their priority is set to \f(CW\*(C`EV_MAXPRI\*(C'\fR by
|
2359
|
+
libev)
|
2360
|
+
.PP
|
1996
2361
|
\fIProcess Interaction\fR
|
1997
2362
|
.IX Subsection "Process Interaction"
|
1998
2363
|
.PP
|
1999
2364
|
Libev grabs \f(CW\*(C`SIGCHLD\*(C'\fR as soon as the default event loop is
|
2000
|
-
initialised. This is necessary to guarantee proper behaviour even if
|
2001
|
-
|
2365
|
+
initialised. This is necessary to guarantee proper behaviour even if the
|
2366
|
+
first child watcher is started after the child exits. The occurrence
|
2002
2367
|
of \f(CW\*(C`SIGCHLD\*(C'\fR is recorded asynchronously, but child reaping is done
|
2003
2368
|
synchronously as part of the event loop processing. Libev always reaps all
|
2004
2369
|
children, even ones not watched.
|
@@ -2020,7 +2385,8 @@ that, so other libev users can use \f(CW\*(C`ev_child\*(C'\fR watchers freely.
|
|
2020
2385
|
Currently, the child watcher never gets stopped, even when the
|
2021
2386
|
child terminates, so normally one needs to stop the watcher in the
|
2022
2387
|
callback. Future versions of libev might stop the watcher automatically
|
2023
|
-
when a child exit is detected
|
2388
|
+
when a child exit is detected (calling \f(CW\*(C`ev_child_stop\*(C'\fR twice is not a
|
2389
|
+
problem).
|
2024
2390
|
.PP
|
2025
2391
|
\fIWatcher-Specific Functions and Data Members\fR
|
2026
2392
|
.IX Subsection "Watcher-Specific Functions and Data Members"
|
@@ -2080,8 +2446,8 @@ its completion.
|
|
2080
2446
|
\& ev_child_start (EV_DEFAULT_ &cw);
|
2081
2447
|
\& }
|
2082
2448
|
.Ve
|
2083
|
-
.ie n .
|
2084
|
-
.el .
|
2449
|
+
.ie n .SS """ev_stat"" \- did the file attributes just change?"
|
2450
|
+
.el .SS "\f(CWev_stat\fP \- did the file attributes just change?"
|
2085
2451
|
.IX Subsection "ev_stat - did the file attributes just change?"
|
2086
2452
|
This watches a file system path for attribute changes. That is, it calls
|
2087
2453
|
\&\f(CW\*(C`stat\*(C'\fR on that path in regular intervals (or when the \s-1OS\s0 says it changed)
|
@@ -2305,8 +2671,8 @@ one might do the work both on \f(CW\*(C`ev_stat\*(C'\fR callback invocation \fIa
|
|
2305
2671
|
\& ev_stat_start (loop, &passwd);
|
2306
2672
|
\& ev_timer_init (&timer, timer_cb, 0., 1.02);
|
2307
2673
|
.Ve
|
2308
|
-
.ie n .
|
2309
|
-
.el .
|
2674
|
+
.ie n .SS """ev_idle"" \- when you've got nothing better to do..."
|
2675
|
+
.el .SS "\f(CWev_idle\fP \- when you've got nothing better to do..."
|
2310
2676
|
.IX Subsection "ev_idle - when you've got nothing better to do..."
|
2311
2677
|
Idle watchers trigger events when no other events of the same or higher
|
2312
2678
|
priority are pending (prepare, check and other idle watchers do not count
|
@@ -2329,8 +2695,8 @@ event loop has handled all outstanding events.
|
|
2329
2695
|
.PP
|
2330
2696
|
\fIWatcher-Specific Functions and Data Members\fR
|
2331
2697
|
.IX Subsection "Watcher-Specific Functions and Data Members"
|
2332
|
-
.IP "ev_idle_init (
|
2333
|
-
.IX Item "ev_idle_init (
|
2698
|
+
.IP "ev_idle_init (ev_idle *, callback)" 4
|
2699
|
+
.IX Item "ev_idle_init (ev_idle *, callback)"
|
2334
2700
|
Initialises and configures the idle watcher \- it has no parameters of any
|
2335
2701
|
kind. There is a \f(CW\*(C`ev_idle_set\*(C'\fR macro, but using it is utterly pointless,
|
2336
2702
|
believe me.
|
@@ -2352,10 +2718,10 @@ callback, free it. Also, use no error checking, as usual.
|
|
2352
2718
|
\&
|
2353
2719
|
\& ev_idle *idle_watcher = malloc (sizeof (ev_idle));
|
2354
2720
|
\& ev_idle_init (idle_watcher, idle_cb);
|
2355
|
-
\& ev_idle_start (loop,
|
2721
|
+
\& ev_idle_start (loop, idle_watcher);
|
2356
2722
|
.Ve
|
2357
|
-
.ie n .
|
2358
|
-
.el .
|
2723
|
+
.ie n .SS """ev_prepare"" and ""ev_check"" \- customise your event loop!"
|
2724
|
+
.el .SS "\f(CWev_prepare\fP and \f(CWev_check\fP \- customise your event loop!"
|
2359
2725
|
.IX Subsection "ev_prepare and ev_check - customise your event loop!"
|
2360
2726
|
Prepare and check watchers are usually (but not always) used in pairs:
|
2361
2727
|
prepare watchers get invoked before the process blocks and check watchers
|
@@ -2455,7 +2821,7 @@ the callbacks for the IO/timeout watchers might not have been called yet.
|
|
2455
2821
|
\& adns_beforepoll (ads, fds, &nfd, &timeout, timeval_from (ev_time ()));
|
2456
2822
|
\&
|
2457
2823
|
\& /* the callback is illegal, but won\*(Aqt be called as we stop during check */
|
2458
|
-
\& ev_timer_init (&tw, 0, timeout * 1e\-3);
|
2824
|
+
\& ev_timer_init (&tw, 0, timeout * 1e\-3, 0.);
|
2459
2825
|
\& ev_timer_start (loop, &tw);
|
2460
2826
|
\&
|
2461
2827
|
\& // create one ev_io per pollfd
|
@@ -2556,8 +2922,8 @@ libglib event loop.
|
|
2556
2922
|
\& return got_events;
|
2557
2923
|
\& }
|
2558
2924
|
.Ve
|
2559
|
-
.ie n .
|
2560
|
-
.el .
|
2925
|
+
.ie n .SS """ev_embed"" \- when one backend isn't enough..."
|
2926
|
+
.el .SS "\f(CWev_embed\fP \- when one backend isn't enough..."
|
2561
2927
|
.IX Subsection "ev_embed - when one backend isn't enough..."
|
2562
2928
|
This is a rather advanced watcher type that lets you embed one event loop
|
2563
2929
|
into another (currently only \f(CW\*(C`ev_io\*(C'\fR events are supported in the embedded
|
@@ -2689,8 +3055,8 @@ kqueue implementation). Store the kqueue/socket\-only event loop in
|
|
2689
3055
|
\&
|
2690
3056
|
\& // now use loop_socket for all sockets, and loop for everything else
|
2691
3057
|
.Ve
|
2692
|
-
.ie n .
|
2693
|
-
.el .
|
3058
|
+
.ie n .SS """ev_fork"" \- the audacity to resume the event loop after a fork"
|
3059
|
+
.el .SS "\f(CWev_fork\fP \- the audacity to resume the event loop after a fork"
|
2694
3060
|
.IX Subsection "ev_fork - the audacity to resume the event loop after a fork"
|
2695
3061
|
Fork watchers are called when a \f(CW\*(C`fork ()\*(C'\fR was detected (usually because
|
2696
3062
|
whoever is a good citizen cared to tell libev about it by calling
|
@@ -2700,6 +3066,40 @@ and only in the child after the fork. If whoever good citizen calling
|
|
2700
3066
|
\&\f(CW\*(C`ev_default_fork\*(C'\fR cheats and calls it in the wrong process, the fork
|
2701
3067
|
handlers will be invoked, too, of course.
|
2702
3068
|
.PP
|
3069
|
+
\fIThe special problem of life after fork \- how is it possible?\fR
|
3070
|
+
.IX Subsection "The special problem of life after fork - how is it possible?"
|
3071
|
+
.PP
|
3072
|
+
Most uses of \f(CW\*(C`fork()\*(C'\fR consist of forking, then some simple calls to ste
|
3073
|
+
up/change the process environment, followed by a call to \f(CW\*(C`exec()\*(C'\fR. This
|
3074
|
+
sequence should be handled by libev without any problems.
|
3075
|
+
.PP
|
3076
|
+
This changes when the application actually wants to do event handling
|
3077
|
+
in the child, or both parent in child, in effect \*(L"continuing\*(R" after the
|
3078
|
+
fork.
|
3079
|
+
.PP
|
3080
|
+
The default mode of operation (for libev, with application help to detect
|
3081
|
+
forks) is to duplicate all the state in the child, as would be expected
|
3082
|
+
when \fIeither\fR the parent \fIor\fR the child process continues.
|
3083
|
+
.PP
|
3084
|
+
When both processes want to continue using libev, then this is usually the
|
3085
|
+
wrong result. In that case, usually one process (typically the parent) is
|
3086
|
+
supposed to continue with all watchers in place as before, while the other
|
3087
|
+
process typically wants to start fresh, i.e. without any active watchers.
|
3088
|
+
.PP
|
3089
|
+
The cleanest and most efficient way to achieve that with libev is to
|
3090
|
+
simply create a new event loop, which of course will be \*(L"empty\*(R", and
|
3091
|
+
use that for new watchers. This has the advantage of not touching more
|
3092
|
+
memory than necessary, and thus avoiding the copy-on-write, and the
|
3093
|
+
disadvantage of having to use multiple event loops (which do not support
|
3094
|
+
signal watchers).
|
3095
|
+
.PP
|
3096
|
+
When this is not possible, or you want to use the default loop for
|
3097
|
+
other reasons, then in the process that wants to start \*(L"fresh\*(R", call
|
3098
|
+
\&\f(CW\*(C`ev_default_destroy ()\*(C'\fR followed by \f(CW\*(C`ev_default_loop (...)\*(C'\fR. Destroying
|
3099
|
+
the default loop will \*(L"orphan\*(R" (not stop) all registered watchers, so you
|
3100
|
+
have to be careful not to execute code that modifies those watchers. Note
|
3101
|
+
also that in that case, you have to re-register any signal watchers.
|
3102
|
+
.PP
|
2703
3103
|
\fIWatcher-Specific Functions and Data Members\fR
|
2704
3104
|
.IX Subsection "Watcher-Specific Functions and Data Members"
|
2705
3105
|
.IP "ev_fork_init (ev_signal *, callback)" 4
|
@@ -2707,8 +3107,8 @@ handlers will be invoked, too, of course.
|
|
2707
3107
|
Initialises and configures the fork watcher \- it has no parameters of any
|
2708
3108
|
kind. There is a \f(CW\*(C`ev_fork_set\*(C'\fR macro, but using it is utterly pointless,
|
2709
3109
|
believe me.
|
2710
|
-
.ie n .
|
2711
|
-
.el .
|
3110
|
+
.ie n .SS """ev_async"" \- how to wake up another event loop"
|
3111
|
+
.el .SS "\f(CWev_async\fP \- how to wake up another event loop"
|
2712
3112
|
.IX Subsection "ev_async - how to wake up another event loop"
|
2713
3113
|
In general, you cannot use an \f(CW\*(C`ev_loop\*(C'\fR from multiple threads or other
|
2714
3114
|
asynchronous sources such as signal handlers (as opposed to multiple event
|
@@ -2734,7 +3134,8 @@ just the default loop.
|
|
2734
3134
|
\&\f(CW\*(C`ev_async\*(C'\fR does not support queueing of data in any way. The reason
|
2735
3135
|
is that the author does not know of a simple (or any) algorithm for a
|
2736
3136
|
multiple-writer-single-reader queue that works in all cases and doesn't
|
2737
|
-
need elaborate support such as pthreads
|
3137
|
+
need elaborate support such as pthreads or unportable memory access
|
3138
|
+
semantics.
|
2738
3139
|
.PP
|
2739
3140
|
That means that if you want to queue data, you have to provide your own
|
2740
3141
|
queue. But at least I can tell you how to implement locking around your
|
@@ -2827,9 +3228,14 @@ an \f(CW\*(C`EV_ASYNC\*(C'\fR event on the watcher into the event loop. Unlike
|
|
2827
3228
|
similar contexts (see the discussion of \f(CW\*(C`EV_ATOMIC_T\*(C'\fR in the embedding
|
2828
3229
|
section below on what exactly this means).
|
2829
3230
|
.Sp
|
2830
|
-
|
2831
|
-
|
2832
|
-
|
3231
|
+
Note that, as with other watchers in libev, multiple events might get
|
3232
|
+
compressed into a single callback invocation (another way to look at this
|
3233
|
+
is that \f(CW\*(C`ev_async\*(C'\fR watchers are level-triggered, set on \f(CW\*(C`ev_async_send\*(C'\fR,
|
3234
|
+
reset when the event loop detects that).
|
3235
|
+
.Sp
|
3236
|
+
This call incurs the overhead of a system call only once per event loop
|
3237
|
+
iteration, so while the overhead might be noticeable, it doesn't apply to
|
3238
|
+
repeated calls to \f(CW\*(C`ev_async_send\*(C'\fR for the same event loop.
|
2833
3239
|
.IP "bool = ev_async_pending (ev_async *)" 4
|
2834
3240
|
.IX Item "bool = ev_async_pending (ev_async *)"
|
2835
3241
|
Returns a non-zero value when \f(CW\*(C`ev_async_send\*(C'\fR has been called on the
|
@@ -2841,8 +3247,10 @@ the loop iterates next and checks for the watcher to have become active,
|
|
2841
3247
|
it will reset the flag again. \f(CW\*(C`ev_async_pending\*(C'\fR can be used to very
|
2842
3248
|
quickly check whether invoking the loop might be a good idea.
|
2843
3249
|
.Sp
|
2844
|
-
Not that this does \fInot\fR check whether the watcher itself is pending,
|
2845
|
-
whether it has been requested to make this watcher pending
|
3250
|
+
Not that this does \fInot\fR check whether the watcher itself is pending,
|
3251
|
+
only whether it has been requested to make this watcher pending: there
|
3252
|
+
is a time window between the event loop checking and resetting the async
|
3253
|
+
notification, and the callback being invoked.
|
2846
3254
|
.SH "OTHER FUNCTIONS"
|
2847
3255
|
.IX Header "OTHER FUNCTIONS"
|
2848
3256
|
There are some other functions of possible interest. Described. Here. Now.
|
@@ -2882,17 +3290,12 @@ Example: wait up to ten seconds for data to appear on \s-1STDIN_FILENO\s0.
|
|
2882
3290
|
\&
|
2883
3291
|
\& ev_once (STDIN_FILENO, EV_READ, 10., stdin_ready, 0);
|
2884
3292
|
.Ve
|
2885
|
-
.IP "
|
2886
|
-
.IX Item "
|
2887
|
-
Feeds the given event set into the event loop, as if the specified event
|
2888
|
-
had happened for the specified watcher (which must be a pointer to an
|
2889
|
-
initialised but not necessarily started event watcher).
|
2890
|
-
.IP "ev_feed_fd_event (struct ev_loop *, int fd, int revents)" 4
|
2891
|
-
.IX Item "ev_feed_fd_event (struct ev_loop *, int fd, int revents)"
|
3293
|
+
.IP "ev_feed_fd_event (loop, int fd, int revents)" 4
|
3294
|
+
.IX Item "ev_feed_fd_event (loop, int fd, int revents)"
|
2892
3295
|
Feed an event on the given fd, as if a file descriptor backend detected
|
2893
3296
|
the given events it.
|
2894
|
-
.IP "ev_feed_signal_event (
|
2895
|
-
.IX Item "ev_feed_signal_event (
|
3297
|
+
.IP "ev_feed_signal_event (loop, int signum)" 4
|
3298
|
+
.IX Item "ev_feed_signal_event (loop, int signum)"
|
2896
3299
|
Feed an event as if the given signal occurred (\f(CW\*(C`loop\*(C'\fR must be the default
|
2897
3300
|
loop!).
|
2898
3301
|
.SH "LIBEVENT EMULATION"
|
@@ -2949,16 +3352,16 @@ types of functors please contact the author (preferably after implementing
|
|
2949
3352
|
it).
|
2950
3353
|
.PP
|
2951
3354
|
Here is a list of things available in the \f(CW\*(C`ev\*(C'\fR namespace:
|
2952
|
-
.ie n .IP """ev::READ""
|
3355
|
+
.ie n .IP """ev::READ"", ""ev::WRITE"" etc." 4
|
2953
3356
|
.el .IP "\f(CWev::READ\fR, \f(CWev::WRITE\fR etc." 4
|
2954
3357
|
.IX Item "ev::READ, ev::WRITE etc."
|
2955
3358
|
These are just enum values with the same values as the \f(CW\*(C`EV_READ\*(C'\fR etc.
|
2956
3359
|
macros from \fIev.h\fR.
|
2957
|
-
.ie n .IP """ev::tstamp""
|
3360
|
+
.ie n .IP """ev::tstamp"", ""ev::now""" 4
|
2958
3361
|
.el .IP "\f(CWev::tstamp\fR, \f(CWev::now\fR" 4
|
2959
3362
|
.IX Item "ev::tstamp, ev::now"
|
2960
3363
|
Aliases to the same types/functions as with the \f(CW\*(C`ev_\*(C'\fR prefix.
|
2961
|
-
.ie n .IP """ev::io""
|
3364
|
+
.ie n .IP """ev::io"", ""ev::timer"", ""ev::periodic"", ""ev::idle"", ""ev::sig"" etc." 4
|
2962
3365
|
.el .IP "\f(CWev::io\fR, \f(CWev::timer\fR, \f(CWev::periodic\fR, \f(CWev::idle\fR, \f(CWev::sig\fR etc." 4
|
2963
3366
|
.IX Item "ev::io, ev::timer, ev::periodic, ev::idle, ev::sig etc."
|
2964
3367
|
For each \f(CW\*(C`ev_TYPE\*(C'\fR watcher in \fIev.h\fR there is a corresponding class of
|
@@ -2971,8 +3374,8 @@ All of those classes have these methods:
|
|
2971
3374
|
.IP "ev::TYPE::TYPE ()" 4
|
2972
3375
|
.IX Item "ev::TYPE::TYPE ()"
|
2973
3376
|
.PD 0
|
2974
|
-
.IP "ev::TYPE::TYPE (
|
2975
|
-
.IX Item "ev::TYPE::TYPE (
|
3377
|
+
.IP "ev::TYPE::TYPE (loop)" 4
|
3378
|
+
.IX Item "ev::TYPE::TYPE (loop)"
|
2976
3379
|
.IP "ev::TYPE::~TYPE" 4
|
2977
3380
|
.IX Item "ev::TYPE::~TYPE"
|
2978
3381
|
.PD
|
@@ -3061,8 +3464,8 @@ Example: Use a plain function as callback.
|
|
3061
3464
|
\& static void io_cb (ev::io &w, int revents) { }
|
3062
3465
|
\& iow.set <io_cb> ();
|
3063
3466
|
.Ve
|
3064
|
-
.IP "w\->set (
|
3065
|
-
.IX Item "w->set (
|
3467
|
+
.IP "w\->set (loop)" 4
|
3468
|
+
.IX Item "w->set (loop)"
|
3066
3469
|
Associates a different \f(CW\*(C`struct ev_loop\*(C'\fR with this watcher. You can only
|
3067
3470
|
do this when the watcher is inactive (and not pending either).
|
3068
3471
|
.IP "w\->set ([arguments])" 4
|
@@ -3078,7 +3481,7 @@ constructor already stores the event loop.
|
|
3078
3481
|
.IP "w\->stop ()" 4
|
3079
3482
|
.IX Item "w->stop ()"
|
3080
3483
|
Stops the watcher if it is active. Again, no \f(CW\*(C`loop\*(C'\fR argument.
|
3081
|
-
.ie n .IP "w\->again () (""ev::timer""
|
3484
|
+
.ie n .IP "w\->again () (""ev::timer"", ""ev::periodic"" only)" 4
|
3082
3485
|
.el .IP "w\->again () (\f(CWev::timer\fR, \f(CWev::periodic\fR only)" 4
|
3083
3486
|
.IX Item "w->again () (ev::timer, ev::periodic only)"
|
3084
3487
|
For \f(CW\*(C`ev::timer\*(C'\fR and \f(CW\*(C`ev::periodic\*(C'\fR, this invokes the corresponding
|
@@ -3133,11 +3536,7 @@ It can be found and installed via \s-1CPAN\s0, its homepage is at
|
|
3133
3536
|
.IP "Python" 4
|
3134
3537
|
.IX Item "Python"
|
3135
3538
|
Python bindings can be found at <http://code.google.com/p/pyev/>. It
|
3136
|
-
seems to be quite complete and well-documented.
|
3137
|
-
patch they require for libev is outright dangerous as it breaks the \s-1ABI\s0
|
3138
|
-
for everybody else, and therefore, should never be applied in an installed
|
3139
|
-
libev (if python requires an incompatible \s-1ABI\s0 then it needs to embed
|
3140
|
-
libev).
|
3539
|
+
seems to be quite complete and well-documented.
|
3141
3540
|
.IP "Ruby" 4
|
3142
3541
|
.IX Item "Ruby"
|
3143
3542
|
Tony Arcieri has written a ruby extension that offers access to a subset
|
@@ -3147,6 +3546,10 @@ more on top of it. It can be found via gem servers. Its homepage is at
|
|
3147
3546
|
.Sp
|
3148
3547
|
Roger Pack reports that using the link order \f(CW\*(C`\-lws2_32 \-lmsvcrt\-ruby\-190\*(C'\fR
|
3149
3548
|
makes rev work even on mingw.
|
3549
|
+
.IP "Haskell" 4
|
3550
|
+
.IX Item "Haskell"
|
3551
|
+
A haskell binding to libev is available at
|
3552
|
+
<http://hackage.haskell.org/cgi\-bin/hackage\-scripts/package/hlibev>.
|
3150
3553
|
.IP "D" 4
|
3151
3554
|
.IX Item "D"
|
3152
3555
|
Leandro Lucarella has written a D language binding (\fIev.d\fR) for libev, to
|
@@ -3155,6 +3558,11 @@ be found at <http://proj.llucax.com.ar/wiki/evd>.
|
|
3155
3558
|
.IX Item "Ocaml"
|
3156
3559
|
Erkki Seppala has written Ocaml bindings for libev, to be found at
|
3157
3560
|
<http://modeemi.cs.tut.fi/~flux/software/ocaml\-ev/>.
|
3561
|
+
.IP "Lua" 4
|
3562
|
+
.IX Item "Lua"
|
3563
|
+
Brian Maher has written a partial interface to libev
|
3564
|
+
for lua (only \f(CW\*(C`ev_io\*(C'\fR and \f(CW\*(C`ev_timer\*(C'\fR), to be found at
|
3565
|
+
<http://github.com/brimworks/lua\-ev>.
|
3158
3566
|
.SH "MACRO MAGIC"
|
3159
3567
|
.IX Header "MACRO MAGIC"
|
3160
3568
|
Libev can be compiled with a variety of options, the most fundamental
|
@@ -3163,7 +3571,7 @@ functions and callbacks have an initial \f(CW\*(C`struct ev_loop *\*(C'\fR argum
|
|
3163
3571
|
.PP
|
3164
3572
|
To make it easier to write programs that cope with either variant, the
|
3165
3573
|
following macros are defined:
|
3166
|
-
.ie n .IP """EV_A""
|
3574
|
+
.ie n .IP """EV_A"", ""EV_A_""" 4
|
3167
3575
|
.el .IP "\f(CWEV_A\fR, \f(CWEV_A_\fR" 4
|
3168
3576
|
.IX Item "EV_A, EV_A_"
|
3169
3577
|
This provides the loop \fIargument\fR for functions, if one is required (\*(L"ev
|
@@ -3178,7 +3586,7 @@ loop argument\*(R"). The \f(CW\*(C`EV_A\*(C'\fR form is used when this is the so
|
|
3178
3586
|
.Sp
|
3179
3587
|
It assumes the variable \f(CW\*(C`loop\*(C'\fR of type \f(CW\*(C`struct ev_loop *\*(C'\fR is in scope,
|
3180
3588
|
which is often provided by the following macro.
|
3181
|
-
.ie n .IP """EV_P""
|
3589
|
+
.ie n .IP """EV_P"", ""EV_P_""" 4
|
3182
3590
|
.el .IP "\f(CWEV_P\fR, \f(CWEV_P_\fR" 4
|
3183
3591
|
.IX Item "EV_P, EV_P_"
|
3184
3592
|
This provides the loop \fIparameter\fR for functions, if one is required (\*(L"ev
|
@@ -3195,12 +3603,12 @@ loop parameter\*(R"). The \f(CW\*(C`EV_P\*(C'\fR form is used when this is the s
|
|
3195
3603
|
.Sp
|
3196
3604
|
It declares a parameter \f(CW\*(C`loop\*(C'\fR of type \f(CW\*(C`struct ev_loop *\*(C'\fR, quite
|
3197
3605
|
suitable for use with \f(CW\*(C`EV_A\*(C'\fR.
|
3198
|
-
.ie n .IP """EV_DEFAULT""
|
3606
|
+
.ie n .IP """EV_DEFAULT"", ""EV_DEFAULT_""" 4
|
3199
3607
|
.el .IP "\f(CWEV_DEFAULT\fR, \f(CWEV_DEFAULT_\fR" 4
|
3200
3608
|
.IX Item "EV_DEFAULT, EV_DEFAULT_"
|
3201
3609
|
Similar to the other two macros, this gives you the value of the default
|
3202
3610
|
loop, if multiple loops are supported (\*(L"ev loop default\*(R").
|
3203
|
-
.ie n .IP """EV_DEFAULT_UC""
|
3611
|
+
.ie n .IP """EV_DEFAULT_UC"", ""EV_DEFAULT_UC_""" 4
|
3204
3612
|
.el .IP "\f(CWEV_DEFAULT_UC\fR, \f(CWEV_DEFAULT_UC_\fR" 4
|
3205
3613
|
.IX Item "EV_DEFAULT_UC, EV_DEFAULT_UC_"
|
3206
3614
|
Usage identical to \f(CW\*(C`EV_DEFAULT\*(C'\fR and \f(CW\*(C`EV_DEFAULT_\*(C'\fR, but requires that the
|
@@ -3238,7 +3646,7 @@ The goal is to enable you to just copy the necessary files into your
|
|
3238
3646
|
source directory without having to change even a single line in them, so
|
3239
3647
|
you can easily upgrade by simply copying (or having a checked-out copy of
|
3240
3648
|
libev somewhere in your source tree).
|
3241
|
-
.
|
3649
|
+
.SS "\s-1FILESETS\s0"
|
3242
3650
|
.IX Subsection "FILESETS"
|
3243
3651
|
Depending on what features you need you need to include one or more sets of files
|
3244
3652
|
in your application.
|
@@ -3327,7 +3735,7 @@ For this of course you need the m4 file:
|
|
3327
3735
|
.Vb 1
|
3328
3736
|
\& libev.m4
|
3329
3737
|
.Ve
|
3330
|
-
.
|
3738
|
+
.SS "\s-1PREPROCESSOR\s0 \s-1SYMBOLS/MACROS\s0"
|
3331
3739
|
.IX Subsection "PREPROCESSOR SYMBOLS/MACROS"
|
3332
3740
|
Libev can be configured via a variety of preprocessor symbols you have to
|
3333
3741
|
define before including any of its files. The default in the absence of
|
@@ -3340,7 +3748,7 @@ implementations for some libevent functions (such as logging, which is not
|
|
3340
3748
|
supported). It will also not define any of the structs usually found in
|
3341
3749
|
\&\fIevent.h\fR that are not directly supported by the libev core alone.
|
3342
3750
|
.Sp
|
3343
|
-
In
|
3751
|
+
In standalone mode, libev will still try to automatically deduce the
|
3344
3752
|
configuration, but has to be more conservative.
|
3345
3753
|
.IP "\s-1EV_USE_MONOTONIC\s0" 4
|
3346
3754
|
.IX Item "EV_USE_MONOTONIC"
|
@@ -3406,13 +3814,25 @@ be used is the winsock select). This means that it will call
|
|
3406
3814
|
\&\f(CW\*(C`_get_osfhandle\*(C'\fR on the fd to convert it to an \s-1OS\s0 handle. Otherwise,
|
3407
3815
|
it is assumed that all these functions actually work on fds, even
|
3408
3816
|
on win32. Should not be defined on non\-win32 platforms.
|
3409
|
-
.IP "\s-1EV_FD_TO_WIN32_HANDLE\s0" 4
|
3410
|
-
.IX Item "EV_FD_TO_WIN32_HANDLE"
|
3817
|
+
.IP "\s-1EV_FD_TO_WIN32_HANDLE\s0(fd)" 4
|
3818
|
+
.IX Item "EV_FD_TO_WIN32_HANDLE(fd)"
|
3411
3819
|
If \f(CW\*(C`EV_SELECT_IS_WINSOCKET\*(C'\fR is enabled, then libev needs a way to map
|
3412
3820
|
file descriptors to socket handles. When not defining this symbol (the
|
3413
3821
|
default), then libev will call \f(CW\*(C`_get_osfhandle\*(C'\fR, which is usually
|
3414
3822
|
correct. In some cases, programs use their own file descriptor management,
|
3415
3823
|
in which case they can provide this function to map fds to socket handles.
|
3824
|
+
.IP "\s-1EV_WIN32_HANDLE_TO_FD\s0(handle)" 4
|
3825
|
+
.IX Item "EV_WIN32_HANDLE_TO_FD(handle)"
|
3826
|
+
If \f(CW\*(C`EV_SELECT_IS_WINSOCKET\*(C'\fR then libev maps handles to file descriptors
|
3827
|
+
using the standard \f(CW\*(C`_open_osfhandle\*(C'\fR function. For programs implementing
|
3828
|
+
their own fd to handle mapping, overwriting this function makes it easier
|
3829
|
+
to do so. This can be done by defining this macro to an appropriate value.
|
3830
|
+
.IP "\s-1EV_WIN32_CLOSE_FD\s0(fd)" 4
|
3831
|
+
.IX Item "EV_WIN32_CLOSE_FD(fd)"
|
3832
|
+
If programs implement their own fd to handle mapping on win32, then this
|
3833
|
+
macro can be used to override the \f(CW\*(C`close\*(C'\fR function, useful to unregister
|
3834
|
+
file descriptors again. Note that the replacement function has to close
|
3835
|
+
the underlying \s-1OS\s0 handle.
|
3416
3836
|
.IP "\s-1EV_USE_POLL\s0" 4
|
3417
3837
|
.IX Item "EV_USE_POLL"
|
3418
3838
|
If defined to be \f(CW1\fR, libev will compile in support for the \f(CW\*(C`poll\*(C'\fR(2)
|
@@ -3536,9 +3956,27 @@ defined to be \f(CW0\fR, then they are not.
|
|
3536
3956
|
.IP "\s-1EV_MINIMAL\s0" 4
|
3537
3957
|
.IX Item "EV_MINIMAL"
|
3538
3958
|
If you need to shave off some kilobytes of code at the expense of some
|
3539
|
-
speed, define this symbol to \f(CW1\fR. Currently this
|
3540
|
-
inlining decisions, saves roughly 30% code size
|
3541
|
-
much smaller 2\-heap for timer management over
|
3959
|
+
speed (but with the full \s-1API\s0), define this symbol to \f(CW1\fR. Currently this
|
3960
|
+
is used to override some inlining decisions, saves roughly 30% code size
|
3961
|
+
on amd64. It also selects a much smaller 2\-heap for timer management over
|
3962
|
+
the default 4\-heap.
|
3963
|
+
.Sp
|
3964
|
+
You can save even more by disabling watcher types you do not need
|
3965
|
+
and setting \f(CW\*(C`EV_MAXPRI\*(C'\fR == \f(CW\*(C`EV_MINPRI\*(C'\fR. Also, disabling \f(CW\*(C`assert\*(C'\fR
|
3966
|
+
(\f(CW\*(C`\-DNDEBUG\*(C'\fR) will usually reduce code size a lot.
|
3967
|
+
.Sp
|
3968
|
+
Defining \f(CW\*(C`EV_MINIMAL\*(C'\fR to \f(CW2\fR will additionally reduce the core \s-1API\s0 to
|
3969
|
+
provide a bare-bones event library. See \f(CW\*(C`ev.h\*(C'\fR for details on what parts
|
3970
|
+
of the \s-1API\s0 are still available, and do not complain if this subset changes
|
3971
|
+
over time.
|
3972
|
+
.IP "\s-1EV_NSIG\s0" 4
|
3973
|
+
.IX Item "EV_NSIG"
|
3974
|
+
The highest supported signal number, +1 (or, the number of
|
3975
|
+
signals): Normally, libev tries to deduce the maximum number of signals
|
3976
|
+
automatically, but sometimes this fails, in which case it can be
|
3977
|
+
specified. Also, using a lower number than detected (\f(CW32\fR should be
|
3978
|
+
good for about any system in existance) can save some memory, as libev
|
3979
|
+
statically allocates some 12\-24 bytes per signal number.
|
3542
3980
|
.IP "\s-1EV_PID_HASHSIZE\s0" 4
|
3543
3981
|
.IX Item "EV_PID_HASHSIZE"
|
3544
3982
|
\&\f(CW\*(C`ev_child\*(C'\fR watchers use a small hash table to distribute workload by
|
@@ -3612,7 +4050,7 @@ definition and a statement, respectively. See the \fIev.h\fR header file for
|
|
3612
4050
|
their default definitions. One possible use for overriding these is to
|
3613
4051
|
avoid the \f(CW\*(C`struct ev_loop *\*(C'\fR as first argument in all cases, or to use
|
3614
4052
|
method calls instead of plain function calls in \*(C+.
|
3615
|
-
.
|
4053
|
+
.SS "\s-1EXPORTED\s0 \s-1API\s0 \s-1SYMBOLS\s0"
|
3616
4054
|
.IX Subsection "EXPORTED API SYMBOLS"
|
3617
4055
|
If you need to re-export the \s-1API\s0 (e.g. via a \s-1DLL\s0) and you need a list of
|
3618
4056
|
exported symbols, you can use the provided \fISymbol.*\fR files which list
|
@@ -3642,7 +4080,7 @@ This would create a file \fIwrap.h\fR which essentially looks like this:
|
|
3642
4080
|
\& #define ev_check_stop myprefix_ev_check_stop
|
3643
4081
|
\& ...
|
3644
4082
|
.Ve
|
3645
|
-
.
|
4083
|
+
.SS "\s-1EXAMPLES\s0"
|
3646
4084
|
.IX Subsection "EXAMPLES"
|
3647
4085
|
For a real-world example of a program the includes libev
|
3648
4086
|
verbatim, you can have a look at the \s-1EV\s0 perl module
|
@@ -3677,7 +4115,7 @@ And a \fIev_cpp.C\fR implementation file that contains libev proper and is compi
|
|
3677
4115
|
.Ve
|
3678
4116
|
.SH "INTERACTION WITH OTHER PROGRAMS OR LIBRARIES"
|
3679
4117
|
.IX Header "INTERACTION WITH OTHER PROGRAMS OR LIBRARIES"
|
3680
|
-
.
|
4118
|
+
.SS "\s-1THREADS\s0 \s-1AND\s0 \s-1COROUTINES\s0"
|
3681
4119
|
.IX Subsection "THREADS AND COROUTINES"
|
3682
4120
|
\fI\s-1THREADS\s0\fR
|
3683
4121
|
.IX Subsection "THREADS"
|
@@ -3733,20 +4171,173 @@ work in the default loop by registering the signal watcher with the
|
|
3733
4171
|
default loop and triggering an \f(CW\*(C`ev_async\*(C'\fR watcher from the default loop
|
3734
4172
|
watcher callback into the event loop interested in the signal.
|
3735
4173
|
.PP
|
4174
|
+
\s-1THREAD\s0 \s-1LOCKING\s0 \s-1EXAMPLE\s0
|
4175
|
+
.IX Subsection "THREAD LOCKING EXAMPLE"
|
4176
|
+
.PP
|
4177
|
+
Here is a fictitious example of how to run an event loop in a different
|
4178
|
+
thread than where callbacks are being invoked and watchers are
|
4179
|
+
created/added/removed.
|
4180
|
+
.PP
|
4181
|
+
For a real-world example, see the \f(CW\*(C`EV::Loop::Async\*(C'\fR perl module,
|
4182
|
+
which uses exactly this technique (which is suited for many high-level
|
4183
|
+
languages).
|
4184
|
+
.PP
|
4185
|
+
The example uses a pthread mutex to protect the loop data, a condition
|
4186
|
+
variable to wait for callback invocations, an async watcher to notify the
|
4187
|
+
event loop thread and an unspecified mechanism to wake up the main thread.
|
4188
|
+
.PP
|
4189
|
+
First, you need to associate some data with the event loop:
|
4190
|
+
.PP
|
4191
|
+
.Vb 6
|
4192
|
+
\& typedef struct {
|
4193
|
+
\& mutex_t lock; /* global loop lock */
|
4194
|
+
\& ev_async async_w;
|
4195
|
+
\& thread_t tid;
|
4196
|
+
\& cond_t invoke_cv;
|
4197
|
+
\& } userdata;
|
4198
|
+
\&
|
4199
|
+
\& void prepare_loop (EV_P)
|
4200
|
+
\& {
|
4201
|
+
\& // for simplicity, we use a static userdata struct.
|
4202
|
+
\& static userdata u;
|
4203
|
+
\&
|
4204
|
+
\& ev_async_init (&u\->async_w, async_cb);
|
4205
|
+
\& ev_async_start (EV_A_ &u\->async_w);
|
4206
|
+
\&
|
4207
|
+
\& pthread_mutex_init (&u\->lock, 0);
|
4208
|
+
\& pthread_cond_init (&u\->invoke_cv, 0);
|
4209
|
+
\&
|
4210
|
+
\& // now associate this with the loop
|
4211
|
+
\& ev_set_userdata (EV_A_ u);
|
4212
|
+
\& ev_set_invoke_pending_cb (EV_A_ l_invoke);
|
4213
|
+
\& ev_set_loop_release_cb (EV_A_ l_release, l_acquire);
|
4214
|
+
\&
|
4215
|
+
\& // then create the thread running ev_loop
|
4216
|
+
\& pthread_create (&u\->tid, 0, l_run, EV_A);
|
4217
|
+
\& }
|
4218
|
+
.Ve
|
4219
|
+
.PP
|
4220
|
+
The callback for the \f(CW\*(C`ev_async\*(C'\fR watcher does nothing: the watcher is used
|
4221
|
+
solely to wake up the event loop so it takes notice of any new watchers
|
4222
|
+
that might have been added:
|
4223
|
+
.PP
|
4224
|
+
.Vb 5
|
4225
|
+
\& static void
|
4226
|
+
\& async_cb (EV_P_ ev_async *w, int revents)
|
4227
|
+
\& {
|
4228
|
+
\& // just used for the side effects
|
4229
|
+
\& }
|
4230
|
+
.Ve
|
4231
|
+
.PP
|
4232
|
+
The \f(CW\*(C`l_release\*(C'\fR and \f(CW\*(C`l_acquire\*(C'\fR callbacks simply unlock/lock the mutex
|
4233
|
+
protecting the loop data, respectively.
|
4234
|
+
.PP
|
4235
|
+
.Vb 6
|
4236
|
+
\& static void
|
4237
|
+
\& l_release (EV_P)
|
4238
|
+
\& {
|
4239
|
+
\& userdata *u = ev_userdata (EV_A);
|
4240
|
+
\& pthread_mutex_unlock (&u\->lock);
|
4241
|
+
\& }
|
4242
|
+
\&
|
4243
|
+
\& static void
|
4244
|
+
\& l_acquire (EV_P)
|
4245
|
+
\& {
|
4246
|
+
\& userdata *u = ev_userdata (EV_A);
|
4247
|
+
\& pthread_mutex_lock (&u\->lock);
|
4248
|
+
\& }
|
4249
|
+
.Ve
|
4250
|
+
.PP
|
4251
|
+
The event loop thread first acquires the mutex, and then jumps straight
|
4252
|
+
into \f(CW\*(C`ev_loop\*(C'\fR:
|
4253
|
+
.PP
|
4254
|
+
.Vb 4
|
4255
|
+
\& void *
|
4256
|
+
\& l_run (void *thr_arg)
|
4257
|
+
\& {
|
4258
|
+
\& struct ev_loop *loop = (struct ev_loop *)thr_arg;
|
4259
|
+
\&
|
4260
|
+
\& l_acquire (EV_A);
|
4261
|
+
\& pthread_setcanceltype (PTHREAD_CANCEL_ASYNCHRONOUS, 0);
|
4262
|
+
\& ev_loop (EV_A_ 0);
|
4263
|
+
\& l_release (EV_A);
|
4264
|
+
\&
|
4265
|
+
\& return 0;
|
4266
|
+
\& }
|
4267
|
+
.Ve
|
4268
|
+
.PP
|
4269
|
+
Instead of invoking all pending watchers, the \f(CW\*(C`l_invoke\*(C'\fR callback will
|
4270
|
+
signal the main thread via some unspecified mechanism (signals? pipe
|
4271
|
+
writes? \f(CW\*(C`Async::Interrupt\*(C'\fR?) and then waits until all pending watchers
|
4272
|
+
have been called (in a while loop because a) spurious wakeups are possible
|
4273
|
+
and b) skipping inter-thread-communication when there are no pending
|
4274
|
+
watchers is very beneficial):
|
4275
|
+
.PP
|
4276
|
+
.Vb 4
|
4277
|
+
\& static void
|
4278
|
+
\& l_invoke (EV_P)
|
4279
|
+
\& {
|
4280
|
+
\& userdata *u = ev_userdata (EV_A);
|
4281
|
+
\&
|
4282
|
+
\& while (ev_pending_count (EV_A))
|
4283
|
+
\& {
|
4284
|
+
\& wake_up_other_thread_in_some_magic_or_not_so_magic_way ();
|
4285
|
+
\& pthread_cond_wait (&u\->invoke_cv, &u\->lock);
|
4286
|
+
\& }
|
4287
|
+
\& }
|
4288
|
+
.Ve
|
4289
|
+
.PP
|
4290
|
+
Now, whenever the main thread gets told to invoke pending watchers, it
|
4291
|
+
will grab the lock, call \f(CW\*(C`ev_invoke_pending\*(C'\fR and then signal the loop
|
4292
|
+
thread to continue:
|
4293
|
+
.PP
|
4294
|
+
.Vb 4
|
4295
|
+
\& static void
|
4296
|
+
\& real_invoke_pending (EV_P)
|
4297
|
+
\& {
|
4298
|
+
\& userdata *u = ev_userdata (EV_A);
|
4299
|
+
\&
|
4300
|
+
\& pthread_mutex_lock (&u\->lock);
|
4301
|
+
\& ev_invoke_pending (EV_A);
|
4302
|
+
\& pthread_cond_signal (&u\->invoke_cv);
|
4303
|
+
\& pthread_mutex_unlock (&u\->lock);
|
4304
|
+
\& }
|
4305
|
+
.Ve
|
4306
|
+
.PP
|
4307
|
+
Whenever you want to start/stop a watcher or do other modifications to an
|
4308
|
+
event loop, you will now have to lock:
|
4309
|
+
.PP
|
4310
|
+
.Vb 2
|
4311
|
+
\& ev_timer timeout_watcher;
|
4312
|
+
\& userdata *u = ev_userdata (EV_A);
|
4313
|
+
\&
|
4314
|
+
\& ev_timer_init (&timeout_watcher, timeout_cb, 5.5, 0.);
|
4315
|
+
\&
|
4316
|
+
\& pthread_mutex_lock (&u\->lock);
|
4317
|
+
\& ev_timer_start (EV_A_ &timeout_watcher);
|
4318
|
+
\& ev_async_send (EV_A_ &u\->async_w);
|
4319
|
+
\& pthread_mutex_unlock (&u\->lock);
|
4320
|
+
.Ve
|
4321
|
+
.PP
|
4322
|
+
Note that sending the \f(CW\*(C`ev_async\*(C'\fR watcher is required because otherwise
|
4323
|
+
an event loop currently blocking in the kernel will have no knowledge
|
4324
|
+
about the newly added timer. By waking up the loop it will pick up any new
|
4325
|
+
watchers in the next event loop iteration.
|
4326
|
+
.PP
|
3736
4327
|
\fI\s-1COROUTINES\s0\fR
|
3737
4328
|
.IX Subsection "COROUTINES"
|
3738
4329
|
.PP
|
3739
4330
|
Libev is very accommodating to coroutines (\*(L"cooperative threads\*(R"):
|
3740
4331
|
libev fully supports nesting calls to its functions from different
|
3741
4332
|
coroutines (e.g. you can call \f(CW\*(C`ev_loop\*(C'\fR on the same loop from two
|
3742
|
-
different coroutines, and switch freely between both coroutines running
|
3743
|
-
loop, as long as you don't confuse yourself). The only exception is
|
3744
|
-
you must not do this from \f(CW\*(C`ev_periodic\*(C'\fR reschedule callbacks.
|
4333
|
+
different coroutines, and switch freely between both coroutines running
|
4334
|
+
the loop, as long as you don't confuse yourself). The only exception is
|
4335
|
+
that you must not do this from \f(CW\*(C`ev_periodic\*(C'\fR reschedule callbacks.
|
3745
4336
|
.PP
|
3746
4337
|
Care has been taken to ensure that libev does not keep local state inside
|
3747
4338
|
\&\f(CW\*(C`ev_loop\*(C'\fR, and other calls do not usually allow for coroutine switches as
|
3748
4339
|
they do not call any callbacks.
|
3749
|
-
.
|
4340
|
+
.SS "\s-1COMPILER\s0 \s-1WARNINGS\s0"
|
3750
4341
|
.IX Subsection "COMPILER WARNINGS"
|
3751
4342
|
Depending on your compiler and compiler settings, you might get no or a
|
3752
4343
|
lot of warnings when compiling libev code. Some people are apparently
|
@@ -3773,7 +4364,7 @@ While libev is written to generate as few warnings as possible,
|
|
3773
4364
|
with any compiler warnings enabled unless you are prepared to cope with
|
3774
4365
|
them (e.g. by ignoring them). Remember that warnings are just that:
|
3775
4366
|
warnings, not errors, or proof of bugs.
|
3776
|
-
.
|
4367
|
+
.SS "\s-1VALGRIND\s0"
|
3777
4368
|
.IX Subsection "VALGRIND"
|
3778
4369
|
Valgrind has a special section here because it is a popular tool that is
|
3779
4370
|
highly useful. Unfortunately, valgrind reports are very hard to interpret.
|
@@ -3808,7 +4399,7 @@ If you need, for some reason, empty reports from valgrind for your project
|
|
3808
4399
|
I suggest using suppression lists.
|
3809
4400
|
.SH "PORTABILITY NOTES"
|
3810
4401
|
.IX Header "PORTABILITY NOTES"
|
3811
|
-
.
|
4402
|
+
.SS "\s-1WIN32\s0 \s-1PLATFORM\s0 \s-1LIMITATIONS\s0 \s-1AND\s0 \s-1WORKAROUNDS\s0"
|
3812
4403
|
.IX Subsection "WIN32 PLATFORM LIMITATIONS AND WORKAROUNDS"
|
3813
4404
|
Win32 doesn't support any of the standards (e.g. \s-1POSIX\s0) that libev
|
3814
4405
|
requires, and its I/O model is fundamentally incompatible with the \s-1POSIX\s0
|
@@ -3825,6 +4416,9 @@ way (note also that glib is the slowest event library known to man).
|
|
3825
4416
|
There is no supported compilation method available on windows except
|
3826
4417
|
embedding it into other applications.
|
3827
4418
|
.PP
|
4419
|
+
Sensible signal handling is officially unsupported by Microsoft \- libev
|
4420
|
+
tries its best, but under most conditions, signals will simply not work.
|
4421
|
+
.PP
|
3828
4422
|
Not a libev limitation but worth mentioning: windows apparently doesn't
|
3829
4423
|
accept large writes: instead of resulting in a partial write, windows will
|
3830
4424
|
either accept everything or return \f(CW\*(C`ENOBUFS\*(C'\fR if the buffer is too large,
|
@@ -3838,7 +4432,7 @@ is not recommended (and not reasonable). If your program needs to use
|
|
3838
4432
|
more than a hundred or so sockets, then likely it needs to use a totally
|
3839
4433
|
different implementation for windows, as libev offers the \s-1POSIX\s0 readiness
|
3840
4434
|
notification model, which cannot be implemented efficiently on windows
|
3841
|
-
(Microsoft monopoly games).
|
4435
|
+
(due to Microsoft monopoly games).
|
3842
4436
|
.PP
|
3843
4437
|
A typical way to use libev under windows is to embed it (see the embedding
|
3844
4438
|
section for details) and use the following \fIevwrap.h\fR header file instead
|
@@ -3886,29 +4480,27 @@ Early versions of winsocket's select only supported waiting for a maximum
|
|
3886
4480
|
of \f(CW64\fR handles (probably owning to the fact that all windows kernels
|
3887
4481
|
can only wait for \f(CW64\fR things at the same time internally; Microsoft
|
3888
4482
|
recommends spawning a chain of threads and wait for 63 handles and the
|
3889
|
-
previous thread in each.
|
4483
|
+
previous thread in each. Sounds great!).
|
3890
4484
|
.Sp
|
3891
4485
|
Newer versions support more handles, but you need to define \f(CW\*(C`FD_SETSIZE\*(C'\fR
|
3892
4486
|
to some high number (e.g. \f(CW2048\fR) before compiling the winsocket select
|
3893
|
-
call (which might be in libev or elsewhere, for example, perl
|
3894
|
-
select emulation on windows).
|
4487
|
+
call (which might be in libev or elsewhere, for example, perl and many
|
4488
|
+
other interpreters do their own select emulation on windows).
|
3895
4489
|
.Sp
|
3896
4490
|
Another limit is the number of file descriptors in the Microsoft runtime
|
3897
|
-
libraries, which by default is \f(CW64\fR (there must be a hidden \fI64\fR
|
3898
|
-
or something like this inside Microsoft). You can increase this
|
3899
|
-
|
3900
|
-
arbitrary limit), but is broken in many versions of the Microsoft
|
3901
|
-
libraries.
|
3902
|
-
.
|
3903
|
-
|
3904
|
-
|
3905
|
-
|
3906
|
-
calling select (O(nA\*^X)) will likely make this unworkable.
|
3907
|
-
.Sh "\s-1PORTABILITY\s0 \s-1REQUIREMENTS\s0"
|
4491
|
+
libraries, which by default is \f(CW64\fR (there must be a hidden \fI64\fR
|
4492
|
+
fetish or something like this inside Microsoft). You can increase this
|
4493
|
+
by calling \f(CW\*(C`_setmaxstdio\*(C'\fR, which can increase this limit to \f(CW2048\fR
|
4494
|
+
(another arbitrary limit), but is broken in many versions of the Microsoft
|
4495
|
+
runtime libraries. This might get you to about \f(CW512\fR or \f(CW2048\fR sockets
|
4496
|
+
(depending on windows version and/or the phase of the moon). To get more,
|
4497
|
+
you need to wrap all I/O functions and provide your own fd management, but
|
4498
|
+
the cost of calling select (O(nA\*^X)) will likely make this unworkable.
|
4499
|
+
.SS "\s-1PORTABILITY\s0 \s-1REQUIREMENTS\s0"
|
3908
4500
|
.IX Subsection "PORTABILITY REQUIREMENTS"
|
3909
4501
|
In addition to a working ISO-C implementation and of course the
|
3910
4502
|
backend-specific APIs, libev relies on a few additional extensions:
|
3911
|
-
.ie n .IP """void (*)(ev_watcher_type *, int revents)""
|
4503
|
+
.ie n .IP """void (*)(ev_watcher_type *, int revents)"" must have compatible calling conventions regardless of ""ev_watcher_type *""." 4
|
3912
4504
|
.el .IP "\f(CWvoid (*)(ev_watcher_type *, int revents)\fR must have compatible calling conventions regardless of \f(CWev_watcher_type *\fR." 4
|
3913
4505
|
.IX Item "void (*)(ev_watcher_type *, int revents) must have compatible calling conventions regardless of ev_watcher_type *."
|
3914
4506
|
Libev assumes not only that all watcher pointers have the same internal
|
@@ -3950,7 +4542,9 @@ watchers.
|
|
3950
4542
|
The type \f(CW\*(C`double\*(C'\fR is used to represent timestamps. It is required to
|
3951
4543
|
have at least 51 bits of mantissa (and 9 bits of exponent), which is good
|
3952
4544
|
enough for at least into the year 4000. This requirement is fulfilled by
|
3953
|
-
implementations implementing \s-1IEEE\s0 754
|
4545
|
+
implementations implementing \s-1IEEE\s0 754, which is basically all existing
|
4546
|
+
ones. With \s-1IEEE\s0 754 doubles, you get microsecond accuracy until at least
|
4547
|
+
2200.
|
3954
4548
|
.PP
|
3955
4549
|
If you know of other additional requirements drop me a note.
|
3956
4550
|
.SH "ALGORITHMIC COMPLEXITIES"
|
@@ -4016,6 +4610,65 @@ watchers becomes O(1) with respect to priority handling.
|
|
4016
4610
|
Sending involves a system call \fIiff\fR there were no other \f(CW\*(C`ev_async_send\*(C'\fR
|
4017
4611
|
calls in the current loop iteration. Checking for async and signal events
|
4018
4612
|
involves iterating over all running async watchers or all signal numbers.
|
4613
|
+
.SH "GLOSSARY"
|
4614
|
+
.IX Header "GLOSSARY"
|
4615
|
+
.IP "active" 4
|
4616
|
+
.IX Item "active"
|
4617
|
+
A watcher is active as long as it has been started (has been attached to
|
4618
|
+
an event loop) but not yet stopped (disassociated from the event loop).
|
4619
|
+
.IP "application" 4
|
4620
|
+
.IX Item "application"
|
4621
|
+
In this document, an application is whatever is using libev.
|
4622
|
+
.IP "callback" 4
|
4623
|
+
.IX Item "callback"
|
4624
|
+
The address of a function that is called when some event has been
|
4625
|
+
detected. Callbacks are being passed the event loop, the watcher that
|
4626
|
+
received the event, and the actual event bitset.
|
4627
|
+
.IP "callback invocation" 4
|
4628
|
+
.IX Item "callback invocation"
|
4629
|
+
The act of calling the callback associated with a watcher.
|
4630
|
+
.IP "event" 4
|
4631
|
+
.IX Item "event"
|
4632
|
+
A change of state of some external event, such as data now being available
|
4633
|
+
for reading on a file descriptor, time having passed or simply not having
|
4634
|
+
any other events happening anymore.
|
4635
|
+
.Sp
|
4636
|
+
In libev, events are represented as single bits (such as \f(CW\*(C`EV_READ\*(C'\fR or
|
4637
|
+
\&\f(CW\*(C`EV_TIMEOUT\*(C'\fR).
|
4638
|
+
.IP "event library" 4
|
4639
|
+
.IX Item "event library"
|
4640
|
+
A software package implementing an event model and loop.
|
4641
|
+
.IP "event loop" 4
|
4642
|
+
.IX Item "event loop"
|
4643
|
+
An entity that handles and processes external events and converts them
|
4644
|
+
into callback invocations.
|
4645
|
+
.IP "event model" 4
|
4646
|
+
.IX Item "event model"
|
4647
|
+
The model used to describe how an event loop handles and processes
|
4648
|
+
watchers and events.
|
4649
|
+
.IP "pending" 4
|
4650
|
+
.IX Item "pending"
|
4651
|
+
A watcher is pending as soon as the corresponding event has been detected,
|
4652
|
+
and stops being pending as soon as the watcher will be invoked or its
|
4653
|
+
pending status is explicitly cleared by the application.
|
4654
|
+
.Sp
|
4655
|
+
A watcher can be pending, but not active. Stopping a watcher also clears
|
4656
|
+
its pending status.
|
4657
|
+
.IP "real time" 4
|
4658
|
+
.IX Item "real time"
|
4659
|
+
The physical time that is observed. It is apparently strictly monotonic :)
|
4660
|
+
.IP "wall-clock time" 4
|
4661
|
+
.IX Item "wall-clock time"
|
4662
|
+
The time and date as shown on clocks. Unlike real time, it can actually
|
4663
|
+
be wrong and jump forwards and backwards, e.g. when the you adjust your
|
4664
|
+
clock.
|
4665
|
+
.IP "watcher" 4
|
4666
|
+
.IX Item "watcher"
|
4667
|
+
A data structure that describes interest in certain events. Watchers need
|
4668
|
+
to be started (attached to an event loop) before they can receive events.
|
4669
|
+
.IP "watcher invocation" 4
|
4670
|
+
.IX Item "watcher invocation"
|
4671
|
+
The act of calling the callback associated with a watcher.
|
4019
4672
|
.SH "AUTHOR"
|
4020
4673
|
.IX Header "AUTHOR"
|
4021
4674
|
Marc Lehmann <libev@schmorp.de>, with repeated corrections by Mikael Magnusson.
|