calagator 0.0.1.pre1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/LICENSE.txt +23 -0
- data/README.md +75 -0
- data/Rakefile +12 -0
- data/app/assets/images/confused-alligator-sm.png +0 -0
- data/app/assets/images/disk.png +0 -0
- data/app/assets/images/edit.png +0 -0
- data/app/assets/images/external_sites/epdx.png +0 -0
- data/app/assets/images/external_sites/external.gif +0 -0
- data/app/assets/images/external_sites/facebook.png +0 -0
- data/app/assets/images/external_sites/foursquare.png +0 -0
- data/app/assets/images/external_sites/gowalla.png +0 -0
- data/app/assets/images/external_sites/lanyrd.png +0 -0
- data/app/assets/images/external_sites/meetup.png +0 -0
- data/app/assets/images/external_sites/plancast.png +0 -0
- data/app/assets/images/external_sites/shizzow.png +0 -0
- data/app/assets/images/external_sites/upcoming.png +0 -0
- data/app/assets/images/external_sites/yelp.png +0 -0
- data/app/assets/images/feed.png +0 -0
- data/app/assets/images/heart.png +0 -0
- data/app/assets/images/icon_ical.gif +0 -0
- data/app/assets/images/information.png +0 -0
- data/app/assets/images/nav_marker.gif +0 -0
- data/app/assets/images/nav_marker.png +0 -0
- data/app/assets/images/plus.png +0 -0
- data/app/assets/images/redx.png +0 -0
- data/app/assets/images/site-icon.png +0 -0
- data/app/assets/images/spinner.gif +0 -0
- data/app/assets/images/star.png +0 -0
- data/app/assets/images/subnav_marker.gif +0 -0
- data/app/assets/images/subnav_marker.png +0 -0
- data/app/assets/images/tag_blue.png +0 -0
- data/app/assets/images/tag_icons/angular.png +0 -0
- data/app/assets/images/tag_icons/beer.png +0 -0
- data/app/assets/images/tag_icons/bitcoin.png +0 -0
- data/app/assets/images/tag_icons/free.png +0 -0
- data/app/assets/images/tag_icons/golang.png +0 -0
- data/app/assets/images/tag_icons/html.png +0 -0
- data/app/assets/images/tag_icons/javascript.png +0 -0
- data/app/assets/images/tag_icons/linux.png +0 -0
- data/app/assets/images/tag_icons/php.png +0 -0
- data/app/assets/images/tag_icons/pizza.png +0 -0
- data/app/assets/images/tag_icons/python.png +0 -0
- data/app/assets/images/tag_icons/rails.png +0 -0
- data/app/assets/images/tag_icons/ruby.png +0 -0
- data/app/assets/images/tag_icons/sass.png +0 -0
- data/app/assets/images/tag_icons/swift.png +0 -0
- data/app/assets/images/transmit_blue.png +0 -0
- data/app/assets/images/weekday_background.gif +0 -0
- data/app/assets/javascripts/calagator.js +18 -0
- data/app/assets/javascripts/calagator/forms.js +60 -0
- data/app/assets/stylesheets/calagator.scss +8 -0
- data/app/assets/stylesheets/calagator/common.scss +14 -0
- data/app/assets/stylesheets/calagator/datepicker.scss +177 -0
- data/app/assets/stylesheets/calagator/errors.css +110 -0
- data/app/assets/stylesheets/calagator/forms.scss +4 -0
- data/app/assets/stylesheets/calagator/reset.css +40 -0
- data/app/assets/stylesheets/calagator/theme.css +0 -0
- data/app/controllers/calagator/admin_controller.rb +27 -0
- data/app/controllers/calagator/application_controller.rb +82 -0
- data/app/controllers/calagator/events_controller.rb +171 -0
- data/app/controllers/calagator/site_controller.rb +35 -0
- data/app/controllers/calagator/sources_controller.rb +94 -0
- data/app/controllers/calagator/venues_controller.rb +133 -0
- data/app/controllers/calagator/versions_controller.rb +20 -0
- data/app/helpers/calagator/application_helper.rb +128 -0
- data/app/helpers/calagator/events_helper.rb +184 -0
- data/app/helpers/calagator/google_event_export_helper.rb +67 -0
- data/app/helpers/calagator/mapping_helper.rb +103 -0
- data/app/helpers/calagator/sources_helper.rb +10 -0
- data/app/helpers/calagator/tags_helper.rb +42 -0
- data/app/helpers/calagator/time_range_helper.rb +166 -0
- data/app/models/calagator/event.rb +246 -0
- data/app/models/calagator/event/cloner.rb +39 -0
- data/app/models/calagator/event/ical_renderer.rb +155 -0
- data/app/models/calagator/event/overview.rb +45 -0
- data/app/models/calagator/event/saver.rb +58 -0
- data/app/models/calagator/event/search.rb +72 -0
- data/app/models/calagator/event/search_engine.rb +28 -0
- data/app/models/calagator/event/search_engine/apache_sunspot.rb +106 -0
- data/app/models/calagator/event/search_engine/sql.rb +107 -0
- data/app/models/calagator/source.rb +115 -0
- data/app/models/calagator/source/importer.rb +46 -0
- data/app/models/calagator/source/parser.rb +128 -0
- data/app/models/calagator/source/parser/facebook.rb +67 -0
- data/app/models/calagator/source/parser/hcal.rb +108 -0
- data/app/models/calagator/source/parser/http_authentication_required_error.rb +6 -0
- data/app/models/calagator/source/parser/ical.rb +186 -0
- data/app/models/calagator/source/parser/meetup.rb +72 -0
- data/app/models/calagator/source/parser/not_found.rb +9 -0
- data/app/models/calagator/source/parser/plancast.rb +59 -0
- data/app/models/calagator/venue.rb +161 -0
- data/app/models/calagator/venue/geocoder.rb +51 -0
- data/app/models/calagator/venue/search.rb +63 -0
- data/app/models/calagator/venue/search_engine.rb +24 -0
- data/app/models/calagator/venue/search_engine/apache_sunspot.rb +85 -0
- data/app/models/calagator/venue/search_engine/sql.rb +68 -0
- data/app/models/event/search_engine/base.rb +0 -0
- data/app/observers/calagator/cache_observer.rb +37 -0
- data/app/views/calagator/admin/events.html.erb +28 -0
- data/app/views/calagator/admin/index.html.erb +8 -0
- data/app/views/calagator/events/_feed_item.html.erb +62 -0
- data/app/views/calagator/events/_form.html.erb +63 -0
- data/app/views/calagator/events/_gcal_reminder.html.erb +1 -0
- data/app/views/calagator/events/_hcal.html.erb +41 -0
- data/app/views/calagator/events/_item.html.erb +120 -0
- data/app/views/calagator/events/_list.html.erb +30 -0
- data/app/views/calagator/events/_list_item.html.erb +37 -0
- data/app/views/calagator/events/_search_section.html.erb +15 -0
- data/app/views/calagator/events/_subnav.html.erb +13 -0
- data/app/views/calagator/events/_table.html.erb +74 -0
- data/app/views/calagator/events/duplicates.html.erb +58 -0
- data/app/views/calagator/events/edit.html.erb +3 -0
- data/app/views/calagator/events/index.atom.builder +32 -0
- data/app/views/calagator/events/index.html.erb +51 -0
- data/app/views/calagator/events/index.kml.erb +20 -0
- data/app/views/calagator/events/new.html.erb +7 -0
- data/app/views/calagator/events/search.html.erb +25 -0
- data/app/views/calagator/events/show.html.erb +81 -0
- data/app/views/calagator/site/_appropriateness_message.html.erb +15 -0
- data/app/views/calagator/site/_description.html.erb +3 -0
- data/app/views/calagator/site/about.html.erb +7 -0
- data/app/views/calagator/site/defunct.html.erb +15 -0
- data/app/views/calagator/site/export.html.erb +4 -0
- data/app/views/calagator/site/index.html.erb +40 -0
- data/app/views/calagator/site/opensearch.xml.builder +8 -0
- data/app/views/calagator/sources/_subnav.html.erb +0 -0
- data/app/views/calagator/sources/edit.html.erb +12 -0
- data/app/views/calagator/sources/import.html.erb +10 -0
- data/app/views/calagator/sources/index.html.erb +22 -0
- data/app/views/calagator/sources/new.html.erb +32 -0
- data/app/views/calagator/sources/show.html.erb +16 -0
- data/app/views/calagator/venues/_form.html.erb +57 -0
- data/app/views/calagator/venues/_subnav.html.erb +10 -0
- data/app/views/calagator/venues/duplicates.html.erb +65 -0
- data/app/views/calagator/venues/edit.html.erb +3 -0
- data/app/views/calagator/venues/index.html.erb +93 -0
- data/app/views/calagator/venues/index.kml.erb +15 -0
- data/app/views/calagator/venues/map.html.erb +4 -0
- data/app/views/calagator/venues/new.html.erb +5 -0
- data/app/views/calagator/venues/show.html.erb +113 -0
- data/app/views/calagator/versions/_chooser.html.erb +28 -0
- data/app/views/calagator/versions/_edit_with_chooser.html.erb +16 -0
- data/app/views/layouts/calagator/application.html.erb +110 -0
- data/config/deploy/local.rb +37 -0
- data/config/deploy/lucca.rb +33 -0
- data/config/initializers/dates.rb +7 -0
- data/config/initializers/formtastic.rb +82 -0
- data/config/initializers/geokit.rb +74 -0
- data/config/initializers/ics_renderer.rb +6 -0
- data/config/initializers/load_tag_model_extensions.rb +3 -0
- data/config/initializers/mime_types.rb +9 -0
- data/config/initializers/observers.rb +1 -0
- data/config/initializers/search_engine.rb +4 -0
- data/config/initializers/set_default_url_host.rb +5 -0
- data/config/initializers/time_get_zone.rb +8 -0
- data/config/locales/en.yml +5 -0
- data/config/routes.rb +55 -0
- data/config/secrets.yml.blag +75 -0
- data/config/sunspot.yml +23 -0
- data/db/development.sqlite3 +0 -0
- data/db/development.sqlite3.bak +0 -0
- data/db/development.sqlite3.old +0 -0
- data/db/development~20111112@110950.sqlite3 +0 -0
- data/db/migrate/001_create_events.rb +17 -0
- data/db/migrate/002_create_venues.rb +17 -0
- data/db/migrate/003_create_sources.rb +16 -0
- data/db/migrate/004_add_detailed_fields_to_venue.rb +19 -0
- data/db/migrate/005_add_end_time_to_events.rb +9 -0
- data/db/migrate/006_add_source_id_to_events.rb +9 -0
- data/db/migrate/008_add_source_id_to_venues.rb +10 -0
- data/db/migrate/009_add_duplicate_of_column_to_venues.rb +9 -0
- data/db/migrate/010_add_duplicate_of_column_to_events.rb +9 -0
- data/db/migrate/011_change_lat_long_type.rb +12 -0
- data/db/migrate/012_add_source_reimport.rb +9 -0
- data/db/migrate/013_change_end_time_to_duration.rb +11 -0
- data/db/migrate/014_remove_format_type_from_source.rb +9 -0
- data/db/migrate/015_create_updates.rb +15 -0
- data/db/migrate/016_remove_next_update_from_source.rb +9 -0
- data/db/migrate/20080705163959_change_duration_to_end_time.rb +11 -0
- data/db/migrate/20080705164959_create_tags_and_taggings.rb +28 -0
- data/db/migrate/20081011181519_create_versioned_events.rb +25 -0
- data/db/migrate/20081011193124_create_versioned_venues.rb +32 -0
- data/db/migrate/20081115190515_add_rrule_to_events.rb +15 -0
- data/db/migrate/20090912082129_create_versions.rb +18 -0
- data/db/migrate/20110219205156_add_closed_flag_to_venues.rb +9 -0
- data/db/migrate/20110220001008_add_wifi_flag_to_venues.rb +9 -0
- data/db/migrate/20110220011427_add_access_notes_to_venues.rb +9 -0
- data/db/migrate/20110220031117_add_events_count_to_venues.rb +8 -0
- data/db/migrate/20110604174521_add_venue_details_to_events.rb +9 -0
- data/db/migrate/20110717231316_acts_as_taggable_on_migration.rb +50 -0
- data/db/migrate/20120709092821_cleanup.rb +14 -0
- data/db/migrate/20120831234448_specify_venues_latitude_and_longitude_precision.rb +11 -0
- data/db/migrate/20150206085809_remove_updates.rb +13 -0
- data/db/migrate/20150207231355_add_locked_status_to_events.rb +5 -0
- data/db/production.sqlite3 +0 -0
- data/db/schema.rb +102 -0
- data/db/seeds.rb +16 -0
- data/db/test.sqlite3 +0 -0
- data/db/test2.sqlite3 +0 -0
- data/lib/calagator.rb +30 -0
- data/lib/calagator/blacklist_validator.rb +69 -0
- data/lib/calagator/decode_html_entities_hack.rb +33 -0
- data/lib/calagator/duplicate_checking.rb +133 -0
- data/lib/calagator/duplicate_checking/controller_actions.rb +38 -0
- data/lib/calagator/duplicate_checking/duplicate_finder.rb +83 -0
- data/lib/calagator/duplicate_checking/duplicate_squasher.rb +74 -0
- data/lib/calagator/engine.rb +30 -0
- data/lib/calagator/strip_whitespace.rb +19 -0
- data/lib/calagator/tag_model_extensions.rb +104 -0
- data/lib/calagator/url_prefixer.rb +9 -0
- data/lib/calagator/version.rb +3 -0
- data/lib/generators/calagator/install_generator.rb +39 -0
- data/lib/generators/calagator/templates/config/calagator.rb +26 -0
- data/lib/generators/calagator/templates/config/secrets.yml.sample +83 -0
- data/lib/secrets_reader.rb +76 -0
- data/lib/tasks/spec_db.rake +53 -0
- data/lib/tasks/sunspot_reindex_calagator.rake +6 -0
- data/lib/tasks/sunspot_solr_restart_enhancements.rake +19 -0
- data/lib/tasks/update_counter_caches.rake +13 -0
- data/lib/templates/erb/scaffold/_form.html.erb +11 -0
- data/lib/theme_reader.rb +17 -0
- data/lib/wait_for_solr.rb +25 -0
- data/spec/controllers/calagator/application_controller_spec.rb +47 -0
- data/spec/controllers/calagator/events_controller_spec.rb +794 -0
- data/spec/controllers/calagator/site_controller_spec.rb +59 -0
- data/spec/controllers/calagator/sources_controller_spec.rb +439 -0
- data/spec/controllers/calagator/venues_controller_spec.rb +319 -0
- data/spec/controllers/calagator/versions_controller_spec.rb +82 -0
- data/spec/controllers/squash_many_duplicates_examples.rb +49 -0
- data/spec/dummy/Gemfile +39 -0
- data/spec/dummy/Gemfile.lock +195 -0
- data/spec/dummy/README.rdoc +261 -0
- data/spec/dummy/Rakefile +7 -0
- data/spec/dummy/app/assets/images/rails.png +0 -0
- data/spec/dummy/app/assets/javascripts/application.js +16 -0
- data/spec/dummy/app/assets/stylesheets/application.css +14 -0
- data/spec/dummy/app/controllers/application_controller.rb +3 -0
- data/spec/dummy/app/helpers/application_helper.rb +2 -0
- data/spec/dummy/app/views/layouts/application.html.erb +14 -0
- data/spec/dummy/config.ru +4 -0
- data/spec/dummy/config/application.rb +62 -0
- data/spec/dummy/config/boot.rb +6 -0
- data/spec/dummy/config/database.yml +25 -0
- data/spec/dummy/config/environment.rb +5 -0
- data/spec/dummy/config/environments/development.rb +37 -0
- data/spec/dummy/config/environments/production.rb +67 -0
- data/spec/dummy/config/environments/test.rb +37 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy/config/initializers/calagator.rb +26 -0
- data/spec/dummy/config/initializers/inflections.rb +15 -0
- data/spec/dummy/config/initializers/mime_types.rb +5 -0
- data/spec/dummy/config/initializers/secret_token.rb +7 -0
- data/spec/dummy/config/initializers/session_store.rb +8 -0
- data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/spec/dummy/config/locales/en.yml +5 -0
- data/spec/dummy/config/routes.rb +59 -0
- data/spec/dummy/config/secrets.yml +83 -0
- data/spec/dummy/db/development.sqlite3 +0 -0
- data/spec/dummy/db/migrate/20150309023304_create_events.calagator.rb +18 -0
- data/spec/dummy/db/migrate/20150309023305_create_venues.calagator.rb +18 -0
- data/spec/dummy/db/migrate/20150309023306_create_sources.calagator.rb +17 -0
- data/spec/dummy/db/migrate/20150309023307_add_detailed_fields_to_venue.calagator.rb +20 -0
- data/spec/dummy/db/migrate/20150309023308_add_end_time_to_events.calagator.rb +10 -0
- data/spec/dummy/db/migrate/20150309023309_add_source_id_to_events.calagator.rb +10 -0
- data/spec/dummy/db/migrate/20150309023310_add_source_id_to_venues.calagator.rb +11 -0
- data/spec/dummy/db/migrate/20150309023311_add_duplicate_of_column_to_venues.calagator.rb +10 -0
- data/spec/dummy/db/migrate/20150309023312_add_duplicate_of_column_to_events.calagator.rb +10 -0
- data/spec/dummy/db/migrate/20150309023313_change_lat_long_type.calagator.rb +13 -0
- data/spec/dummy/db/migrate/20150309023314_add_source_reimport.calagator.rb +10 -0
- data/spec/dummy/db/migrate/20150309023315_change_end_time_to_duration.calagator.rb +12 -0
- data/spec/dummy/db/migrate/20150309023316_remove_format_type_from_source.calagator.rb +10 -0
- data/spec/dummy/db/migrate/20150309023317_create_updates.calagator.rb +16 -0
- data/spec/dummy/db/migrate/20150309023318_remove_next_update_from_source.calagator.rb +10 -0
- data/spec/dummy/db/migrate/20150309023319_change_duration_to_end_time.calagator.rb +12 -0
- data/spec/dummy/db/migrate/20150309023320_create_tags_and_taggings.calagator.rb +29 -0
- data/spec/dummy/db/migrate/20150309023321_create_versioned_events.calagator.rb +26 -0
- data/spec/dummy/db/migrate/20150309023322_create_versioned_venues.calagator.rb +33 -0
- data/spec/dummy/db/migrate/20150309023323_add_rrule_to_events.calagator.rb +16 -0
- data/spec/dummy/db/migrate/20150309023324_create_versions.calagator.rb +19 -0
- data/spec/dummy/db/migrate/20150309023325_add_closed_flag_to_venues.calagator.rb +10 -0
- data/spec/dummy/db/migrate/20150309023326_add_wifi_flag_to_venues.calagator.rb +10 -0
- data/spec/dummy/db/migrate/20150309023327_add_access_notes_to_venues.calagator.rb +10 -0
- data/spec/dummy/db/migrate/20150309023328_add_events_count_to_venues.calagator.rb +9 -0
- data/spec/dummy/db/migrate/20150309023329_add_venue_details_to_events.calagator.rb +10 -0
- data/spec/dummy/db/migrate/20150309023330_acts_as_taggable_on_migration.calagator.rb +51 -0
- data/spec/dummy/db/migrate/20150309023331_cleanup.calagator.rb +15 -0
- data/spec/dummy/db/migrate/20150309023332_specify_venues_latitude_and_longitude_precision.calagator.rb +12 -0
- data/spec/dummy/db/migrate/20150309023333_remove_updates.calagator.rb +14 -0
- data/spec/dummy/db/migrate/20150309023334_add_locked_status_to_events.calagator.rb +6 -0
- data/spec/dummy/db/schema.rb +95 -0
- data/spec/dummy/db/seeds.rb +7 -0
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/doc/README_FOR_APP +2 -0
- data/spec/dummy/log/development.log +273 -0
- data/spec/dummy/public/404.html +26 -0
- data/spec/dummy/public/422.html +26 -0
- data/spec/dummy/public/500.html +25 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/dummy/public/robots.txt +5 -0
- data/spec/dummy/script/rails +6 -0
- data/spec/dummy/test/performance/browsing_test.rb +12 -0
- data/spec/dummy/test/test_helper.rb +13 -0
- data/spec/factories.rb +93 -0
- data/spec/features/add_event_spec.rb +99 -0
- data/spec/features/add_venue_spec.rb +34 -0
- data/spec/features/admin_auth_spec.rb +22 -0
- data/spec/features/admin_lock_event_spec.rb +41 -0
- data/spec/features/import_events_from_feed_spec.rb +43 -0
- data/spec/features/managing_event_spec.rb +111 -0
- data/spec/features/managing_venue_spec.rb +71 -0
- data/spec/features/search_event_spec.rb +27 -0
- data/spec/helpers/calagator/application_helper_spec.rb +82 -0
- data/spec/helpers/calagator/events_helper_spec.rb +172 -0
- data/spec/helpers/calagator/google_event_export_helper_spec.rb +70 -0
- data/spec/helpers/calagator/sources_helper_spec.rb +12 -0
- data/spec/helpers/calagator/tags_helper_spec.rb +85 -0
- data/spec/helpers/calagator/time_range_helper_spec.rb +59 -0
- data/spec/lib/calagator/blacklist_validator_spec.rb +65 -0
- data/spec/lib/calagator/decode_html_entities_hack_spec.rb +54 -0
- data/spec/lib/calagator/settings_spec.rb +20 -0
- data/spec/lib/calagator/url_prefixer_spec.rb +33 -0
- data/spec/lib/secrets_reader_spec.rb +65 -0
- data/spec/models/calagator/event/cloner_spec.rb +43 -0
- data/spec/models/calagator/event/overview_spec.rb +79 -0
- data/spec/models/calagator/event/search_spec.rb +103 -0
- data/spec/models/calagator/event_search_spec.rb +149 -0
- data/spec/models/calagator/event_spec.rb +859 -0
- data/spec/models/calagator/source/parser_facebook_spec.rb +73 -0
- data/spec/models/calagator/source/parser_hcal_spec.rb +69 -0
- data/spec/models/calagator/source/parser_ical_non_standard_spec.rb +91 -0
- data/spec/models/calagator/source/parser_ical_spec.rb +322 -0
- data/spec/models/calagator/source/parser_meetup_spec.rb +69 -0
- data/spec/models/calagator/source/parser_plancast_spec.rb +53 -0
- data/spec/models/calagator/source/parser_spec.rb +238 -0
- data/spec/models/calagator/source_spec.rb +135 -0
- data/spec/models/calagator/venue/search_spec.rb +92 -0
- data/spec/models/calagator/venue_search_spec.rb +124 -0
- data/spec/models/calagator/venue_spec.rb +346 -0
- data/spec/models/tag_spec.rb +35 -0
- data/spec/rails_helper.rb +39 -0
- data/spec/spec_helper.rb +140 -0
- data/spec/support/disable_geocoding.rb +1 -0
- data/spec/support/http_samples.rb +5 -0
- data/spec/support/samples/facebook.json +23 -0
- data/spec/support/samples/hcal_basic.xml +6 -0
- data/spec/support/samples/hcal_dup_event_dup_venue.xml +13 -0
- data/spec/support/samples/hcal_event_duplicates_fixture.xml +13 -0
- data/spec/support/samples/hcal_event_wo_lat_and_long.xml +14 -0
- data/spec/support/samples/hcal_multiple.xml +16 -0
- data/spec/support/samples/hcal_same_event_twice_with_different_venues.xml +12 -0
- data/spec/support/samples/hcal_single.xml +8 -0
- data/spec/support/samples/hcal_two_identical_events.xml +14 -0
- data/spec/support/samples/hcal_upcoming_v1.html +412 -0
- data/spec/support/samples/hcal_upcoming_v2.html +749 -0
- data/spec/support/samples/hcal_upcoming_v3.html +685 -0
- data/spec/support/samples/hcal_upcoming_v4.html +761 -0
- data/spec/support/samples/ical_apple.ics +22 -0
- data/spec/support/samples/ical_apple_v3.ics +37 -0
- data/spec/support/samples/ical_basic.ics +15 -0
- data/spec/support/samples/ical_basic_with_duration.ics +16 -0
- data/spec/support/samples/ical_event_with_squashed_venue.ics +12 -0
- data/spec/support/samples/ical_eventful_many.ics +504 -0
- data/spec/support/samples/ical_gmt.ics +12 -0
- data/spec/support/samples/ical_google.ics +786 -0
- data/spec/support/samples/ical_multiple_calendars.ics +111 -0
- data/spec/support/samples/ical_upcoming.ics +36 -0
- data/spec/support/samples/ical_upcoming_many.ics +682 -0
- data/spec/support/samples/ical_upcoming_v2.ics +43 -0
- data/spec/support/samples/ical_z.ics +10 -0
- data/spec/support/samples/meetup.ics +16 -0
- data/spec/support/samples/meetup.json +31 -0
- data/spec/support/samples/plancast.ics +59 -0
- data/spec/support/samples/plancast.json +51 -0
- data/spec/support/samples/plancast_with_missing_venue.json +39 -0
- data/spec/support/samples/upcoming_v1.xml +8 -0
- data/spec/support/samples/upcoming_v2_with_invalid_utc_dates.xml +8 -0
- data/spec/support/time_convenience_methods.rb +8 -0
- data/spec/support/time_zones.rb +12 -0
- data/spec/support/url_helpers.rb +5 -0
- data/spec/support/wait_for_ajax.rb +15 -0
- data/spec/support/webmock.rb +8 -0
- data/spec/travis_spec.rb +7 -0
- metadata +1194 -0
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
#===[ Secrets ]=========================================================
|
|
2
|
+
#
|
|
3
|
+
# This file is meant for storing secret information that is never
|
|
4
|
+
# published or committed to a revision control system.
|
|
5
|
+
#
|
|
6
|
+
# Do not modify this "config/secrets.yml.sample" file directly -- you
|
|
7
|
+
# should copy it to "config/secrets.yml" and customize it there.
|
|
8
|
+
#
|
|
9
|
+
#---[ Values ]----------------------------------------------------------
|
|
10
|
+
|
|
11
|
+
# Email address of administrator that will get exception notifications
|
|
12
|
+
# and requests for assistance from users:
|
|
13
|
+
administrator_email: 'your@email.addr'
|
|
14
|
+
|
|
15
|
+
# Admin username and password to use when accessing /admin pages
|
|
16
|
+
admin_username: 'admin'
|
|
17
|
+
admin_password: 'kitties!'
|
|
18
|
+
|
|
19
|
+
# Secret code for verifying cookie session data integrity. If you change it,
|
|
20
|
+
# all old sessions will become invalid! Make sure the secret is at least 30
|
|
21
|
+
# characters and all random, no regular words or you'll be exposed to
|
|
22
|
+
# dictionary attacks.
|
|
23
|
+
session_secret: '1290832312281326461234712c347134618233441234513341132032545424856956711678856985f0575586671765c678659e7855bd58c6978856178b56e8f6'
|
|
24
|
+
|
|
25
|
+
# Name to use for storing application's session cookies, this is often a
|
|
26
|
+
# shortened form of your organization and application name, e.g.,
|
|
27
|
+
# "igniteportlandproposals", "igniteproposals", "openproposals", etc:
|
|
28
|
+
session_name: 'calagator'
|
|
29
|
+
|
|
30
|
+
# API key for Meetup.com, get your own from: http://www.meetup.com/meetup_api/key/
|
|
31
|
+
# meetup_api_key: registerNow
|
|
32
|
+
|
|
33
|
+
# Search engine to use for searching events, uncomment the line to specify that
|
|
34
|
+
# search engine. Defaults to 'sql'. For further information, see `INSTALL.md`.
|
|
35
|
+
### search_engine: sql
|
|
36
|
+
### search_engine: sunspot
|
|
37
|
+
|
|
38
|
+
# Configure a mapping provider
|
|
39
|
+
# Stamen's terrain tiles will be used by default.
|
|
40
|
+
mapping:
|
|
41
|
+
# Map marker color
|
|
42
|
+
# Values: red, darkred, orange, green, darkgreen, blue, purple, darkpuple, cadetblue
|
|
43
|
+
marker_color: green
|
|
44
|
+
|
|
45
|
+
# A Google Maps API key is required to use Google's geocoding service
|
|
46
|
+
# as well as to display maps using their API.
|
|
47
|
+
#
|
|
48
|
+
# Get one at: https://developers.google.com/maps/documentation/javascript/tutorial#api_key
|
|
49
|
+
google_maps_api_key: <your google maps v3 API key>
|
|
50
|
+
|
|
51
|
+
# The tile provider to use when rendering maps with Leaflet.
|
|
52
|
+
# One of: leaflet, stamen, mapbox, google
|
|
53
|
+
# provider: stamen
|
|
54
|
+
#
|
|
55
|
+
# The tiles to use for the map, see the docs for individual Leaflet plugins.
|
|
56
|
+
# For stamen, this can be one of: terrain, toner, watercolor
|
|
57
|
+
# tiles: terrain
|
|
58
|
+
#
|
|
59
|
+
#== Examples ==
|
|
60
|
+
# Stamen
|
|
61
|
+
# (available tiles: terrain, toner, watercolor)
|
|
62
|
+
# provider: stamen
|
|
63
|
+
# tiles: watercolor
|
|
64
|
+
#
|
|
65
|
+
# MapBox Streets (use a map from your own account)
|
|
66
|
+
# provider: mapbox
|
|
67
|
+
# tiles: examples.map-9ijuk24y
|
|
68
|
+
#
|
|
69
|
+
# Google Maps
|
|
70
|
+
# provider: google
|
|
71
|
+
# tiles: ROADMAP
|
|
72
|
+
# google_maps_api_key: <your google maps v3 API key>
|
|
73
|
+
#
|
|
74
|
+
# OpenStreetMap
|
|
75
|
+
# provider: leaflet
|
|
76
|
+
# tiles: http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png
|
|
77
|
+
#
|
|
78
|
+
# Esri
|
|
79
|
+
# (available tiles: Gray, Streets, Oceans, Topographic)
|
|
80
|
+
# provider: esri
|
|
81
|
+
# tiles: Gray
|
|
82
|
+
|
|
83
|
+
#===[ fin ]=============================================================
|
|
Binary file
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# This migration comes from calagator (originally 1)
|
|
2
|
+
class CreateEvents < ActiveRecord::Migration
|
|
3
|
+
def self.up
|
|
4
|
+
create_table :events do |t|
|
|
5
|
+
t.string :title
|
|
6
|
+
t.text :description
|
|
7
|
+
t.timestamp :start_time
|
|
8
|
+
t.integer :venue_id
|
|
9
|
+
t.string :url
|
|
10
|
+
|
|
11
|
+
t.timestamps
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def self.down
|
|
16
|
+
drop_table :events
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# This migration comes from calagator (originally 2)
|
|
2
|
+
class CreateVenues < ActiveRecord::Migration
|
|
3
|
+
def self.up
|
|
4
|
+
create_table :venues do |t|
|
|
5
|
+
t.string :title
|
|
6
|
+
t.text :description
|
|
7
|
+
t.string :address
|
|
8
|
+
t.string :url
|
|
9
|
+
|
|
10
|
+
t.timestamps
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def self.down
|
|
16
|
+
drop_table :venues
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# This migration comes from calagator (originally 3)
|
|
2
|
+
class CreateSources < ActiveRecord::Migration
|
|
3
|
+
def self.up
|
|
4
|
+
create_table :sources do |t|
|
|
5
|
+
t.string :title
|
|
6
|
+
t.string :url
|
|
7
|
+
t.string :format_type
|
|
8
|
+
t.timestamp :imported_at
|
|
9
|
+
|
|
10
|
+
t.timestamps
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def self.down
|
|
15
|
+
drop_table :sources
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# This migration comes from calagator (originally 4)
|
|
2
|
+
class AddDetailedFieldsToVenue < ActiveRecord::Migration
|
|
3
|
+
def self.up
|
|
4
|
+
add_column :venues, :street_address, :string
|
|
5
|
+
add_column :venues, :locality, :string
|
|
6
|
+
add_column :venues, :region, :string
|
|
7
|
+
add_column :venues, :postal_code, :string
|
|
8
|
+
add_column :venues, :country, :string
|
|
9
|
+
|
|
10
|
+
add_column :venues, :latitude, :float
|
|
11
|
+
add_column :venues, :longitude, :float
|
|
12
|
+
|
|
13
|
+
add_column :venues, :email, :string
|
|
14
|
+
add_column :venues, :telephone, :string
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def self.down
|
|
18
|
+
remove_columns :venues, :street_address, :locality, :region, :postal_code, :country, :latitude, :longitude, :email, :telephone
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# This migration comes from calagator (originally 11)
|
|
2
|
+
class ChangeLatLongType < ActiveRecord::Migration
|
|
3
|
+
def self.up
|
|
4
|
+
# :decimal is more precise than :float, and we need that for lat/long.
|
|
5
|
+
change_column :venues, :latitude, :decimal, :precision => 15, :scale => 10
|
|
6
|
+
change_column :venues, :longitude, :decimal, :precision => 15, :scale => 10
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def self.down
|
|
10
|
+
change_column :venues, :latitude, :float
|
|
11
|
+
change_column :venues, :longitude, :float
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# This migration comes from calagator (originally 13)
|
|
2
|
+
class ChangeEndTimeToDuration < ActiveRecord::Migration
|
|
3
|
+
def self.up
|
|
4
|
+
add_column :events, :duration, :integer
|
|
5
|
+
remove_column :events, :end_time
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
def self.down
|
|
9
|
+
add_column :events, :end_time, :datetime
|
|
10
|
+
remove_column :events, :duration
|
|
11
|
+
end
|
|
12
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# This migration comes from calagator (originally 15)
|
|
2
|
+
class CreateUpdates < ActiveRecord::Migration
|
|
3
|
+
def self.up
|
|
4
|
+
create_table :updates do |t|
|
|
5
|
+
t.integer "source_id"
|
|
6
|
+
t.text "status"
|
|
7
|
+
t.timestamps
|
|
8
|
+
end
|
|
9
|
+
add_column :sources, :next_update, :datetime
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def self.down
|
|
13
|
+
remove_column :sources, :next_update
|
|
14
|
+
drop_table :updates
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# This migration comes from calagator (originally 20080705163959)
|
|
2
|
+
class ChangeDurationToEndTime < ActiveRecord::Migration
|
|
3
|
+
def self.up
|
|
4
|
+
add_column :events, :end_time, :datetime
|
|
5
|
+
remove_column :events, :duration
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
def self.down
|
|
9
|
+
add_column :events, :duration, :integer
|
|
10
|
+
remove_column :events, :end_time
|
|
11
|
+
end
|
|
12
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# This migration comes from calagator (originally 20080705164959)
|
|
2
|
+
|
|
3
|
+
# A migration to add tables for Tag and Tagging. This file is automatically generated and added to your app if you run the tagging generator included with has_many_polymorphs.
|
|
4
|
+
|
|
5
|
+
class CreateTagsAndTaggings < ActiveRecord::Migration
|
|
6
|
+
|
|
7
|
+
# Add the new tables.
|
|
8
|
+
def self.up
|
|
9
|
+
create_table :tags do |t|
|
|
10
|
+
t.column :name, :string, :null => false
|
|
11
|
+
end
|
|
12
|
+
add_index :tags, :name, :unique => true
|
|
13
|
+
|
|
14
|
+
create_table :taggings do |t|
|
|
15
|
+
t.column :tag_id, :integer, :null => false
|
|
16
|
+
t.column :taggable_id, :integer, :null => false
|
|
17
|
+
t.column :taggable_type, :string, :null => false
|
|
18
|
+
# t.column :position, :integer # Uncomment this if you need to use <tt>acts_as_list</tt>.
|
|
19
|
+
end
|
|
20
|
+
add_index :taggings, [:tag_id, :taggable_id, :taggable_type], :unique => true
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
# Remove the tables.
|
|
24
|
+
def self.down
|
|
25
|
+
drop_table :tags
|
|
26
|
+
drop_table :taggings
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# This migration comes from calagator (originally 20081011181519)
|
|
2
|
+
class CreateVersionedEvents < ActiveRecord::Migration
|
|
3
|
+
# NOTE: This migration's contents have been commented-out because they relied
|
|
4
|
+
# on the old +acts_as_versioned+ plugin that has since replaced with the
|
|
5
|
+
# +papertrail+ plugin.
|
|
6
|
+
|
|
7
|
+
def self.up
|
|
8
|
+
### Event.create_versioned_table do |t|
|
|
9
|
+
### t.string "title"
|
|
10
|
+
### t.text "description"
|
|
11
|
+
### t.datetime "start_time"
|
|
12
|
+
### t.string "url"
|
|
13
|
+
### t.datetime "created_at"
|
|
14
|
+
### t.datetime "updated_at"
|
|
15
|
+
### t.integer "venue_id"
|
|
16
|
+
### t.integer "source_id"
|
|
17
|
+
### t.integer "duplicate_of_id"
|
|
18
|
+
### t.datetime "end_time"
|
|
19
|
+
### t.integer "version"
|
|
20
|
+
### end
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def self.down
|
|
24
|
+
### Event.drop_versioned_table
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# This migration comes from calagator (originally 20081011193124)
|
|
2
|
+
class CreateVersionedVenues < ActiveRecord::Migration
|
|
3
|
+
# NOTE: This migration's contents have been commented-out because they relied
|
|
4
|
+
# on the old +acts_as_versioned+ plugin that we've since replaced with the
|
|
5
|
+
# +papertrail+ plugin.
|
|
6
|
+
#
|
|
7
|
+
def self.up
|
|
8
|
+
### Venue.create_versioned_table do |t|
|
|
9
|
+
### t.string "title"
|
|
10
|
+
### t.text "description"
|
|
11
|
+
### t.string "address"
|
|
12
|
+
### t.string "url"
|
|
13
|
+
### t.datetime "created_at"
|
|
14
|
+
### t.datetime "updated_at"
|
|
15
|
+
### t.string "street_address"
|
|
16
|
+
### t.string "locality"
|
|
17
|
+
### t.string "region"
|
|
18
|
+
### t.string "postal_code"
|
|
19
|
+
### t.string "country"
|
|
20
|
+
### t.decimal "latitude"
|
|
21
|
+
### t.decimal "longitude"
|
|
22
|
+
### t.string "email"
|
|
23
|
+
### t.string "telephone"
|
|
24
|
+
### t.integer "source_id"
|
|
25
|
+
### t.integer "duplicate_of_id"
|
|
26
|
+
### t.integer "version"
|
|
27
|
+
### end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def self.down
|
|
31
|
+
### Venue.drop_versioned_table
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# This migration comes from calagator (originally 20081115190515)
|
|
2
|
+
class AddRruleToEvents < ActiveRecord::Migration
|
|
3
|
+
# NOTE: Some of this migration's contents have been commented-out because
|
|
4
|
+
# they used tables created for the old +acts_as_versioned+ plugin that has
|
|
5
|
+
# since replaced with the +papertrail+ plugin.
|
|
6
|
+
|
|
7
|
+
def self.up
|
|
8
|
+
add_column :events, :rrule, :string
|
|
9
|
+
### add_column :event_versions, :rrule, :string
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def self.down
|
|
13
|
+
remove_column :events, :rrule
|
|
14
|
+
### remove_column :event_versions, :rrule
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# This migration comes from calagator (originally 20090912082129)
|
|
2
|
+
class CreateVersions < ActiveRecord::Migration
|
|
3
|
+
def self.up
|
|
4
|
+
create_table :versions do |t|
|
|
5
|
+
t.string :item_type, :null => false
|
|
6
|
+
t.integer :item_id, :null => false
|
|
7
|
+
t.string :event, :null => false
|
|
8
|
+
t.string :whodunnit
|
|
9
|
+
t.text :object
|
|
10
|
+
t.datetime :created_at
|
|
11
|
+
end
|
|
12
|
+
add_index :versions, [:item_type, :item_id]
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def self.down
|
|
16
|
+
remove_index :versions, [:item_type, :item_id]
|
|
17
|
+
drop_table :versions
|
|
18
|
+
end
|
|
19
|
+
end
|