muck-raker 0.1.13 → 0.1.14
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +27 -8
- data/VERSION +1 -1
- data/app/controllers/recommender/entries_controller.rb +13 -12
- data/app/controllers/recommender/feeds_controller.rb +64 -0
- data/app/controllers/recommender/recommendations_controller.rb +1 -1
- data/app/helpers/muck_raker_feeds_helper.rb +3 -0
- data/app/helpers/muck_raker_helper.rb +27 -4
- data/app/models/entry.rb +5 -4
- data/app/models/feed.rb +1 -0
- data/app/models/tag_cloud.rb +3 -3
- data/app/views/entries/_result_status.html.erb +8 -1
- data/app/views/entries/_tag_cloud.html.erb +2 -2
- data/app/views/entries/browse_by_tags.html.erb +1 -1
- data/app/views/entries/details.html.erb +4 -4
- data/app/views/entries/search.html.erb +1 -1
- data/app/views/recommendations/index.xml.builder +5 -3
- data/config/muck_raker_routes.rb +1 -0
- data/db/migrate/20090716035935_change_tag_cloud_grain_sizes.rb +9 -0
- data/db/migrate/20090717173900_add_contributor_to_feeds.rb +9 -0
- data/db/migrate/20090717175825_normalize_entries_subjects.rb +17 -0
- data/lib/muck_raker/tasks.rb +21 -3
- data/locales/en.yml +11 -4
- data/muck-raker.gemspec +320 -10
- data/raker/lib/aggregatord.jar +0 -0
- data/raker/lib/recommenderd.jar +0 -0
- data/test/rails_root/.gitignore +8 -0
- data/test/rails_root/.rake_tasks +103 -0
- data/test/rails_root/Capfile +3 -0
- data/test/rails_root/Rakefile +15 -0
- data/test/rails_root/app/controllers/application_controller.rb +21 -0
- data/test/rails_root/app/controllers/default_controller.rb +7 -0
- data/test/rails_root/app/helpers/application_helper.rb +3 -0
- data/test/rails_root/app/models/.keep +0 -0
- data/test/rails_root/app/models/user.rb +6 -0
- data/test/rails_root/app/models/user_session.rb +2 -0
- data/test/rails_root/app/views/default/index.html.erb +0 -0
- data/test/rails_root/app/views/layouts/default.html.erb +26 -0
- data/test/rails_root/config/amazon_s3.yml +14 -0
- data/test/rails_root/config/boot.rb +109 -0
- data/test/rails_root/config/database.yml +14 -0
- data/test/rails_root/config/environment.rb +29 -0
- data/test/rails_root/config/environments/development.rb +19 -0
- data/test/rails_root/config/environments/production.rb +1 -0
- data/test/rails_root/config/environments/test.rb +34 -0
- data/test/rails_root/config/global_config.yml +77 -0
- data/test/rails_root/config/initializers/inflections.rb +10 -0
- data/test/rails_root/config/initializers/mime_types.rb +5 -0
- data/test/rails_root/config/initializers/requires.rb +13 -0
- data/test/rails_root/config/initializers/session_store.rb +8 -0
- data/test/rails_root/config/routes.rb +3 -0
- data/test/rails_root/config/solr/README.txt +0 -0
- data/test/rails_root/config/solr/cores/de/conf/protwords.txt +21 -0
- data/test/rails_root/config/solr/cores/de/conf/schema.xml +81 -0
- data/test/rails_root/config/solr/cores/de/conf/solrconfig.xml +304 -0
- data/test/rails_root/config/solr/cores/de/conf/stopwords.txt +341 -0
- data/test/rails_root/config/solr/cores/de/conf/synonyms.txt +31 -0
- data/test/rails_root/config/solr/cores/en/conf/protwords.txt +21 -0
- data/test/rails_root/config/solr/cores/en/conf/schema.xml +83 -0
- data/test/rails_root/config/solr/cores/en/conf/solrconfig.xml +304 -0
- data/test/rails_root/config/solr/cores/en/conf/stopwords.txt +341 -0
- data/test/rails_root/config/solr/cores/en/conf/synonyms.txt +31 -0
- data/test/rails_root/config/solr/cores/es/conf/protwords.txt +21 -0
- data/test/rails_root/config/solr/cores/es/conf/schema.xml +81 -0
- data/test/rails_root/config/solr/cores/es/conf/solrconfig.xml +304 -0
- data/test/rails_root/config/solr/cores/es/conf/stopwords.txt +206 -0
- data/test/rails_root/config/solr/cores/es/conf/synonyms.txt +31 -0
- data/test/rails_root/config/solr/cores/fr/conf/protwords.txt +21 -0
- data/test/rails_root/config/solr/cores/fr/conf/schema.xml +82 -0
- data/test/rails_root/config/solr/cores/fr/conf/solrconfig.xml +304 -0
- data/test/rails_root/config/solr/cores/fr/conf/stopwords.txt +57 -0
- data/test/rails_root/config/solr/cores/fr/conf/synonyms.txt +31 -0
- data/test/rails_root/config/solr/cores/ja/conf/protwords.txt +21 -0
- data/test/rails_root/config/solr/cores/ja/conf/schema.xml +69 -0
- data/test/rails_root/config/solr/cores/ja/conf/solrconfig.xml +304 -0
- data/test/rails_root/config/solr/cores/ja/conf/stopwords.txt +341 -0
- data/test/rails_root/config/solr/cores/ja/conf/synonyms.txt +31 -0
- data/test/rails_root/config/solr/cores/nl/conf/protwords.txt +21 -0
- data/test/rails_root/config/solr/cores/nl/conf/schema.xml +78 -0
- data/test/rails_root/config/solr/cores/nl/conf/solrconfig.xml +304 -0
- data/test/rails_root/config/solr/cores/nl/conf/stopwords.txt +45691 -0
- data/test/rails_root/config/solr/cores/nl/conf/synonyms.txt +31 -0
- data/test/rails_root/config/solr/cores/ru/conf/protwords.txt +21 -0
- data/test/rails_root/config/solr/cores/ru/conf/schema.xml +78 -0
- data/test/rails_root/config/solr/cores/ru/conf/solrconfig.xml +304 -0
- data/test/rails_root/config/solr/cores/ru/conf/stopwords.txt +341 -0
- data/test/rails_root/config/solr/cores/ru/conf/synonyms.txt +31 -0
- data/test/rails_root/config/solr/cores/zh/conf/protwords.txt +21 -0
- data/test/rails_root/config/solr/cores/zh/conf/schema.xml +72 -0
- data/test/rails_root/config/solr/cores/zh/conf/solrconfig.xml +304 -0
- data/test/rails_root/config/solr/cores/zh/conf/stopwords.txt +341 -0
- data/test/rails_root/config/solr/cores/zh/conf/synonyms.txt +31 -0
- data/test/rails_root/config/solr/solr.xml +50 -0
- data/test/rails_root/db/.keep +0 -0
- data/test/rails_root/db/migrate/20090320174818_create_muck_permissions_and_roles.rb +16 -0
- data/test/rails_root/db/migrate/20090602041838_create_users.rb +39 -0
- data/test/rails_root/db/migrate/20090704220055_create_slugs.rb +18 -0
- data/test/rails_root/db/migrate/20090704220120_acts_as_taggable_on_migration.rb +29 -0
- data/test/rails_root/db/migrate/20090717173900_add_contributor_to_feeds.rb +9 -0
- data/test/rails_root/db/schema.rb +166 -0
- data/test/rails_root/features/step_definitions/webrat_steps.rb +99 -0
- data/test/rails_root/features/support/env.rb +14 -0
- data/test/rails_root/migrate/20090602191243_create_muck_raker.rb +307 -0
- data/test/rails_root/migrate/20090619211125_create_tag_clouds.rb +19 -0
- data/test/rails_root/migrate/20090623181458_add_grain_size_to_entries.rb +16 -0
- data/test/rails_root/migrate/20090703175825_denormalize_entries_subjects.rb +16 -0
- data/test/rails_root/public/.htaccess +40 -0
- data/test/rails_root/public/404.html +30 -0
- data/test/rails_root/public/422.html +30 -0
- data/test/rails_root/public/500.html +30 -0
- data/test/rails_root/public/dispatch.rb +10 -0
- data/test/rails_root/public/favicon.ico +0 -0
- data/test/rails_root/public/images/arrow_left.gif +0 -0
- data/test/rails_root/public/images/arrow_right.gif +0 -0
- data/test/rails_root/public/images/blue/preview.gif +0 -0
- data/test/rails_root/public/images/icons/accept.png +0 -0
- data/test/rails_root/public/images/icons/add.png +0 -0
- data/test/rails_root/public/images/icons/delete.png +0 -0
- data/test/rails_root/public/images/icons/vote.png +0 -0
- data/test/rails_root/public/images/loading.gif +0 -0
- data/test/rails_root/public/images/profile_default.jpg +0 -0
- data/test/rails_root/public/images/rails.png +0 -0
- data/test/rails_root/public/images/red/preview.gif +0 -0
- data/test/rails_root/public/images/spinner.gif +0 -0
- data/test/rails_root/public/images/sprites.png +0 -0
- data/test/rails_root/public/javascripts/application.js +2 -0
- data/test/rails_root/public/javascripts/builder.js +136 -0
- data/test/rails_root/public/javascripts/controls.js +963 -0
- data/test/rails_root/public/javascripts/dragdrop.js +972 -0
- data/test/rails_root/public/javascripts/effects.js +1120 -0
- data/test/rails_root/public/javascripts/fancyzoom.min.js +1 -0
- data/test/rails_root/public/javascripts/jquery/jquery-ui.js +273 -0
- data/test/rails_root/public/javascripts/jquery/jquery.form.js +637 -0
- data/test/rails_root/public/javascripts/jquery/jquery.jgrowl.js +2 -0
- data/test/rails_root/public/javascripts/jquery/jquery.js +19 -0
- data/test/rails_root/public/javascripts/jquery/jquery.tips.js +69 -0
- data/test/rails_root/public/javascripts/muck.js +76 -0
- data/test/rails_root/public/javascripts/muck_activities.js +108 -0
- data/test/rails_root/public/javascripts/prototype.js +4225 -0
- data/test/rails_root/public/javascripts/scriptaculous.js +58 -0
- data/test/rails_root/public/javascripts/slider.js +277 -0
- data/test/rails_root/public/javascripts/sound.js +60 -0
- data/test/rails_root/public/robots.txt +1 -0
- data/test/rails_root/public/stylesheets/.keep +0 -0
- data/test/rails_root/public/stylesheets/admin.css +12 -0
- data/test/rails_root/public/stylesheets/blueprint/ie.css +26 -0
- data/test/rails_root/public/stylesheets/blueprint/liquid_screen.css +203 -0
- data/test/rails_root/public/stylesheets/blueprint/plugins/buttons/icons/cross.png +0 -0
- data/test/rails_root/public/stylesheets/blueprint/plugins/buttons/icons/key.png +0 -0
- data/test/rails_root/public/stylesheets/blueprint/plugins/buttons/icons/tick.png +0 -0
- data/test/rails_root/public/stylesheets/blueprint/plugins/buttons/readme.txt +32 -0
- data/test/rails_root/public/stylesheets/blueprint/plugins/buttons/screen.css +97 -0
- data/test/rails_root/public/stylesheets/blueprint/plugins/fancy-type/readme.txt +14 -0
- data/test/rails_root/public/stylesheets/blueprint/plugins/fancy-type/screen.css +71 -0
- data/test/rails_root/public/stylesheets/blueprint/plugins/link-icons/icons/doc.png +0 -0
- data/test/rails_root/public/stylesheets/blueprint/plugins/link-icons/icons/email.png +0 -0
- data/test/rails_root/public/stylesheets/blueprint/plugins/link-icons/icons/external.png +0 -0
- data/test/rails_root/public/stylesheets/blueprint/plugins/link-icons/icons/feed.png +0 -0
- data/test/rails_root/public/stylesheets/blueprint/plugins/link-icons/icons/im.png +0 -0
- data/test/rails_root/public/stylesheets/blueprint/plugins/link-icons/icons/pdf.png +0 -0
- data/test/rails_root/public/stylesheets/blueprint/plugins/link-icons/icons/visited.png +0 -0
- data/test/rails_root/public/stylesheets/blueprint/plugins/link-icons/icons/xls.png +0 -0
- data/test/rails_root/public/stylesheets/blueprint/plugins/link-icons/readme.txt +18 -0
- data/test/rails_root/public/stylesheets/blueprint/plugins/link-icons/screen.css +40 -0
- data/test/rails_root/public/stylesheets/blueprint/plugins/liquid/liquid.css +134 -0
- data/test/rails_root/public/stylesheets/blueprint/plugins/liquid/src/liquid.css +197 -0
- data/test/rails_root/public/stylesheets/blueprint/plugins/rtl/readme.txt +10 -0
- data/test/rails_root/public/stylesheets/blueprint/plugins/rtl/screen.css +109 -0
- data/test/rails_root/public/stylesheets/blueprint/print.css +30 -0
- data/test/rails_root/public/stylesheets/blueprint/screen.css +251 -0
- data/test/rails_root/public/stylesheets/blueprint/sprite.css +1 -0
- data/test/rails_root/public/stylesheets/blueprint/src/forms.css +49 -0
- data/test/rails_root/public/stylesheets/blueprint/src/grid.css +213 -0
- data/test/rails_root/public/stylesheets/blueprint/src/grid.png +0 -0
- data/test/rails_root/public/stylesheets/blueprint/src/ie.css +59 -0
- data/test/rails_root/public/stylesheets/blueprint/src/print.css +85 -0
- data/test/rails_root/public/stylesheets/blueprint/src/reset.css +38 -0
- data/test/rails_root/public/stylesheets/blueprint/src/typography.css +105 -0
- data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-bg_diagonals-small_0_aaaaaa_40x40.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-bg_diagonals-thick_15_444444_40x40.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-bg_glass_100_f0f0f0_1x400.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-bg_glass_50_99c2ff_1x400.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-bg_glass_55_fbf5d0_1x400.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-bg_glass_80_e6e6e6_1x400.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-bg_highlight-hard_100_f9f9f9_1x100.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-bg_highlight-soft_100_e7eef3_1x100.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-icons_222222_256x240.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-icons_2694e8_256x240.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-icons_2e83ff_256x240.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-icons_72a7cf_256x240.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-icons_888888_256x240.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-icons_ffffff_256x240.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/cupertino/jquery-ui-1.7.1.custom.css +404 -0
- data/test/rails_root/public/stylesheets/jquery/redmond/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/redmond/images/ui-bg_flat_55_fbec88_40x100.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/redmond/images/ui-bg_glass_75_d0e5f5_1x400.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/redmond/images/ui-bg_glass_85_dfeffc_1x400.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/redmond/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/redmond/images/ui-bg_inset-hard_100_f5f8f9_1x100.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/redmond/images/ui-bg_inset-hard_100_fcfdfd_1x100.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/redmond/images/ui-icons_217bc0_256x240.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/redmond/images/ui-icons_2e83ff_256x240.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/redmond/images/ui-icons_469bdd_256x240.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/redmond/images/ui-icons_6da8d5_256x240.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/redmond/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/redmond/images/ui-icons_d8e7f3_256x240.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/redmond/images/ui-icons_f9bd01_256x240.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/redmond/jquery-ui-1.7.1.custom.css +404 -0
- data/test/rails_root/public/stylesheets/jquery/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/smoothness/images/ui-icons_222222_256x240.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/smoothness/images/ui-icons_454545_256x240.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/smoothness/images/ui-icons_888888_256x240.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/smoothness/jquery-ui-1.7.1.custom.css +404 -0
- data/test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-bg_flat_10_000000_40x100.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-icons_222222_256x240.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-icons_228ef1_256x240.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-icons_ef8c08_256x240.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-icons_ffd27a_256x240.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-icons_ffffff_256x240.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/ui-lightness/jquery-ui-1.7.1.custom.css +404 -0
- data/test/rails_root/public/stylesheets/reset.css +0 -0
- data/test/rails_root/public/stylesheets/styles.css +79 -0
- data/test/rails_root/public/stylesheets/themes/blue/styles.css +1 -0
- data/test/rails_root/public/stylesheets/themes/red/styles.css +1 -0
- data/test/rails_root/script/about +3 -0
- data/test/rails_root/script/breakpointer +3 -0
- data/test/rails_root/script/console +3 -0
- data/test/rails_root/script/create_project.rb +52 -0
- data/test/rails_root/script/cucumber +7 -0
- data/test/rails_root/script/dbconsole +3 -0
- data/test/rails_root/script/destroy +3 -0
- data/test/rails_root/script/generate +3 -0
- data/test/rails_root/script/performance/benchmarker +3 -0
- data/test/rails_root/script/performance/profiler +3 -0
- data/test/rails_root/script/performance/request +3 -0
- data/test/rails_root/script/plugin +3 -0
- data/test/rails_root/script/process/inspector +3 -0
- data/test/rails_root/script/process/reaper +3 -0
- data/test/rails_root/script/process/spawner +3 -0
- data/test/rails_root/script/runner +3 -0
- data/test/rails_root/script/server +3 -0
- data/test/rails_root/test/factories.rb +96 -0
- data/test/rails_root/test/functional/.keep +0 -0
- data/test/rails_root/test/functional/feeds_controller_test.rb +14 -0
- data/test/rails_root/test/integration/.keep +0 -0
- data/test/rails_root/test/mocks/development/.keep +0 -0
- data/test/rails_root/test/mocks/test/.keep +0 -0
- data/test/rails_root/test/shoulda_macros/controller.rb +45 -0
- data/test/rails_root/test/shoulda_macros/forms.rb +32 -0
- data/test/rails_root/test/shoulda_macros/models.rb +50 -0
- data/test/rails_root/test/shoulda_macros/pagination.rb +53 -0
- data/test/rails_root/test/shoulda_macros/plugins.rb +34 -0
- data/test/rails_root/test/test_helper.rb +46 -0
- data/test/rails_root/test/unit/.keep +0 -0
- data/test/rails_root/test/unit/entry_test.rb +13 -0
- data/test/rails_root/test/unit/feed_test.rb +16 -0
- data/test/rails_root/test/unit/tag_cloud_test.rb +35 -0
- data/test/rails_root/vendor/plugins/ssl_requirement/README +43 -0
- data/test/rails_root/vendor/plugins/ssl_requirement/lib/ssl_requirement.rb +62 -0
- data/test/rails_root/vendor/plugins/ssl_requirement/test/ssl_requirement_test.rb +132 -0
- data/test/rails_root/vendor/plugins/validation_reflection/CHANGELOG +24 -0
- data/test/rails_root/vendor/plugins/validation_reflection/LICENSE +20 -0
- data/test/rails_root/vendor/plugins/validation_reflection/README +64 -0
- data/test/rails_root/vendor/plugins/validation_reflection/Rakefile +22 -0
- data/test/rails_root/vendor/plugins/validation_reflection/about.yml +7 -0
- data/test/rails_root/vendor/plugins/validation_reflection/init.rb +8 -0
- data/test/rails_root/vendor/plugins/validation_reflection/lib/boiler_plate/validation_reflection.rb +129 -0
- data/test/rails_root/vendor/plugins/validation_reflection/test/test_helper.rb +36 -0
- data/test/rails_root/vendor/plugins/validation_reflection/test/validation_reflection_test.rb +126 -0
- metadata +315 -7
- data/app/models/user.rb +0 -36
- data/test/recommender_test.rb +0 -8
- data/test/test_helper.rb +0 -20
data/Rakefile
CHANGED
@@ -5,20 +5,39 @@ require 'rake/rdoctask'
|
|
5
5
|
desc 'Default: run unit tests.'
|
6
6
|
task :default => :test
|
7
7
|
|
8
|
-
desc '
|
9
|
-
task :
|
10
|
-
file = File.join(File.dirname(__FILE__), 'locales', 'en.yml')
|
11
|
-
system("babelphish -o -y #{file}")
|
12
|
-
end
|
8
|
+
desc 'Default: run unit tests.'
|
9
|
+
task :default => :test
|
13
10
|
|
14
|
-
desc 'Test
|
11
|
+
desc 'Test muck-raker.'
|
15
12
|
Rake::TestTask.new(:test) do |t|
|
16
13
|
t.libs << 'lib'
|
17
|
-
t.libs << 'test'
|
18
|
-
t.pattern = 'test/**/*_test.rb'
|
14
|
+
t.libs << 'test/rails_root/test'
|
15
|
+
t.pattern = 'test/rails_root/test/**/*_test.rb'
|
19
16
|
t.verbose = true
|
20
17
|
end
|
21
18
|
|
19
|
+
begin
|
20
|
+
require 'rcov/rcovtask'
|
21
|
+
Rcov::RcovTask.new do |t|
|
22
|
+
#t.libs << 'lib'
|
23
|
+
t.libs << 'test/rails_root/lib'
|
24
|
+
t.pattern = 'test/rails_root/test/**/*_test.rb'
|
25
|
+
t.verbose = true
|
26
|
+
t.output_dir = 'coverage'
|
27
|
+
t.rcov_opts << '--exclude "gems/*"'
|
28
|
+
end
|
29
|
+
rescue LoadError
|
30
|
+
task :rcov do
|
31
|
+
abort "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
desc 'Translate this gem'
|
36
|
+
task :translate do
|
37
|
+
file = File.join(File.dirname(__FILE__), 'locales', 'en.yml')
|
38
|
+
system("babelphish -o -y #{file}")
|
39
|
+
end
|
40
|
+
|
22
41
|
desc 'Generate documentation for the recommender plugin.'
|
23
42
|
Rake::RDocTask.new(:rdoc) do |rdoc|
|
24
43
|
rdoc.rdoc_dir = 'rdoc'
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.14
|
@@ -5,28 +5,29 @@ class Recommender::EntriesController < ApplicationController
|
|
5
5
|
end
|
6
6
|
|
7
7
|
def index
|
8
|
-
@
|
9
|
-
@
|
8
|
+
@grain_size = params[:grain_size] || 'all'
|
9
|
+
@tag_cloud = TagCloud.language_tags(Language.locale_id, @grain_size) unless fragment_exist?({:controller => 'entries', :action => 'index', :language => Language.locale_id})
|
10
10
|
respond_to do |format|
|
11
11
|
format.html { render :template => 'entries/index' }
|
12
12
|
end
|
13
13
|
end
|
14
14
|
|
15
15
|
def browse_by_tags
|
16
|
-
@refresh_results = true
|
17
16
|
@tag_filter = params[:tags]
|
18
|
-
@
|
19
|
-
@tag_filter
|
20
|
-
|
21
|
-
|
17
|
+
@grain_size = params[:grain_size] || 'all'
|
18
|
+
if !fragment_exist?({:controller => 'entries', :action => 'index', :language => Language.locale_id, :filter => @tag_filter, :grain_size => @grain_size})
|
19
|
+
@search = @tag_filter.split('/').join(' AND ') if !@tag_filter.empty?
|
20
|
+
@tag_cloud = TagCloud.language_tags(Language.locale_id, @grain_size, @tag_filter)
|
21
|
+
_search(:and)
|
22
|
+
end
|
22
23
|
respond_to do |format|
|
23
24
|
format.html { render :template => 'entries/browse_by_tags' }
|
24
25
|
end
|
25
26
|
end
|
26
27
|
|
27
28
|
def search
|
28
|
-
@refresh_results = true
|
29
29
|
@search = params[:q]
|
30
|
+
@grain_size = params[:grain_size] || 'all'
|
30
31
|
_search
|
31
32
|
respond_to do |format|
|
32
33
|
format.html { render :template => 'entries/search' }
|
@@ -76,11 +77,11 @@ class Recommender::EntriesController < ApplicationController
|
|
76
77
|
@offset = @page*@per_page
|
77
78
|
if !@search.nil?
|
78
79
|
@term_list = URI.escape(@search)
|
79
|
-
results = Entry.search(@search, I18n.locale.to_s, @per_page, @offset, operator)
|
80
|
+
results = Entry.search(@search, @grain_size, I18n.locale.to_s, @per_page, @offset, operator)
|
80
81
|
@hit_count = results.total
|
81
82
|
@results = results.results
|
82
83
|
@paginated_results = @results.paginate(:page => @page+1, :per_page => @per_page, :total_entries => @hit_count)
|
83
|
-
log_query(current_user.id, @tag_filter.nil? ? 'search' : 'browse',
|
84
|
+
log_query(current_user.nil? ? request.remote_addr : current_user.id, Language.locale_id, @tag_filter.nil? ? 'search' : 'browse', @search, @grain_size, @hit_count)
|
84
85
|
end
|
85
86
|
end
|
86
87
|
|
@@ -88,7 +89,7 @@ class Recommender::EntriesController < ApplicationController
|
|
88
89
|
@@query_logger ||= Logger.new("#{RAILS_ROOT}/log/queries_#{Date.today}.log")
|
89
90
|
end
|
90
91
|
|
91
|
-
def log_query(user_id,
|
92
|
-
query_logger.info "#{Time.new.to_i},#{user_id},#{
|
92
|
+
def log_query(user_id, locale, search_type, query, grain_size, hits)
|
93
|
+
query_logger.info "#{Time.new.to_i},#{user_id},#{locale},#{search_type},\"#{query.gsub(/"/, '\\\\"')}\",#{grain_size},#{hits}"
|
93
94
|
end
|
94
95
|
end
|
@@ -0,0 +1,64 @@
|
|
1
|
+
class Recommender::FeedsController < ApplicationController
|
2
|
+
|
3
|
+
def create
|
4
|
+
@feed = Feed.new(params[:feed])
|
5
|
+
@feed.harvested_from_display_uri = @feed.display_uri
|
6
|
+
@feed.entries_count = 0
|
7
|
+
@feed.last_requested_at = Time.now - 2592000
|
8
|
+
@feed.last_harvested_at = Time.now - 2592000
|
9
|
+
|
10
|
+
respond_to do |format|
|
11
|
+
if @feed.save
|
12
|
+
flash[:notice] = 'Feed was successfully created.'
|
13
|
+
|
14
|
+
# email the admin to let them know a feed has been added
|
15
|
+
# notification_feed_added(@feed)
|
16
|
+
|
17
|
+
# redirect to a page letting them know the feed has been created
|
18
|
+
#format.html { redirect_to entries_path(@feed) + "?new_feed=true" }
|
19
|
+
format.html { redirect_to "/feeds/" }
|
20
|
+
format.xml { head :created, :location => feed_url(@feed) }
|
21
|
+
else
|
22
|
+
format.html { render :action => "new" }
|
23
|
+
format.xml { render :xml => @feed.errors.to_xml }
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
# PUT /feeds/1
|
29
|
+
# PUT /feeds/1.xml
|
30
|
+
def update
|
31
|
+
@feed = Feed.find(params[:id])
|
32
|
+
|
33
|
+
# force a harvest now
|
34
|
+
# harvest_now
|
35
|
+
|
36
|
+
respond_to do |format|
|
37
|
+
if @feed.update_attributes(params[:feed])
|
38
|
+
# notification_feed_updated(@feed)
|
39
|
+
flash[:notice] = 'Feed was successfully updated.'
|
40
|
+
format.html {
|
41
|
+
redirect_to "/feeds/"
|
42
|
+
return
|
43
|
+
}
|
44
|
+
format.xml { head :ok }
|
45
|
+
else
|
46
|
+
format.html { render :action => "edit" }
|
47
|
+
format.xml { render :xml => @feed.errors.to_xml }
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
# DELETE /feeds/1
|
53
|
+
# DELETE /feeds/1.xml
|
54
|
+
def destroy
|
55
|
+
@feed = Feed.find(params[:id])
|
56
|
+
@feed.destroy
|
57
|
+
|
58
|
+
respond_to do |format|
|
59
|
+
format.html { redirect_to feeds_url }
|
60
|
+
format.xml { head :ok }
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
end
|
@@ -16,7 +16,7 @@ class Recommender::RecommendationsController < ApplicationController
|
|
16
16
|
|
17
17
|
Entry.track_time_on_page(session, @uri)
|
18
18
|
@document = Entry.recommender_entry(@uri)
|
19
|
-
I18n.locale = @document.language[0..1] if !@document.nil?
|
19
|
+
# I18n.locale = @document.language[0..1] if !@document.nil?
|
20
20
|
|
21
21
|
@limit = params[:limit] ? params[:limit].to_i : 5
|
22
22
|
@limit = 25 if @limit > 25
|
@@ -9,25 +9,47 @@ module MuckRakerHelper
|
|
9
9
|
atags.each_slice(2){|tag,index| yield tag, classes[((index.to_i - min)*scale).to_i]}
|
10
10
|
end
|
11
11
|
|
12
|
-
def tag_link(tag,
|
13
|
-
link_to h(tag), "/resources/tags/#{
|
12
|
+
def tag_link(tag, css_class, grain_size)
|
13
|
+
link_to h(tag), "/resources/tags/#{tag}?grain_size=#{grain_size}", :class => css_class
|
14
|
+
end
|
15
|
+
|
16
|
+
def filtered_tag_link(tag, filter, css_class, grain_size)
|
17
|
+
link_to h(tag), "/resources/tags/#{filter}/#{tag}?grain_size=#{grain_size}", :class => css_class
|
14
18
|
end
|
15
19
|
|
16
20
|
def results_status
|
17
21
|
if @tag_filter.nil?
|
18
|
-
|
22
|
+
if (@grain_size == 'course')
|
23
|
+
t('muck.raker.course_search_results',
|
24
|
+
:first => @offset+1,
|
25
|
+
:last => (@offset + @per_page) < @hit_count ? (@offset + @per_page) : @hit_count,
|
26
|
+
:total => @hit_count,
|
27
|
+
:filter => @tag_filter,
|
28
|
+
:terms => URI.unescape(@term_list))
|
29
|
+
else
|
30
|
+
t('muck.raker.resource_search_results',
|
19
31
|
:first => @offset+1,
|
20
32
|
:last => (@offset + @per_page) < @hit_count ? (@offset + @per_page) : @hit_count,
|
21
33
|
:total => @hit_count,
|
22
34
|
:filter => @tag_filter,
|
23
35
|
:terms => URI.unescape(@term_list))
|
36
|
+
end
|
24
37
|
else
|
25
|
-
|
38
|
+
if (@grain_size == 'course')
|
39
|
+
t('muck.raker.course_tag_results',
|
26
40
|
:first => @offset+1,
|
27
41
|
:last => (@offset + @per_page) < @hit_count ? (@offset + @per_page) : @hit_count,
|
28
42
|
:total => @hit_count,
|
29
43
|
:filter => @tag_filter,
|
30
44
|
:terms => @tag_filter.split('/').join('</b>, <b>'))
|
45
|
+
else
|
46
|
+
t('muck.raker.resource_tag_results',
|
47
|
+
:first => @offset+1,
|
48
|
+
:last => (@offset + @per_page) < @hit_count ? (@offset + @per_page) : @hit_count,
|
49
|
+
:total => @hit_count,
|
50
|
+
:filter => @tag_filter,
|
51
|
+
:terms => @tag_filter.split('/').join('</b>, <b>'))
|
52
|
+
end
|
31
53
|
end
|
32
54
|
end
|
33
55
|
|
@@ -53,4 +75,5 @@ module MuckRakerHelper
|
|
53
75
|
def feed_query_uri(feed)
|
54
76
|
"/search/results?terms=feed_id:" + feed.id.to_s + "&locale=en"
|
55
77
|
end
|
78
|
+
|
56
79
|
end
|
data/app/models/entry.rb
CHANGED
@@ -5,14 +5,15 @@ class Entry < ActiveRecord::Base
|
|
5
5
|
|
6
6
|
@@default_time_on_page = 60.0
|
7
7
|
|
8
|
-
acts_as_solr({:if => false, :fields => [{:feed_id => :integer}]}, {:type_field => :type_s})
|
8
|
+
acts_as_solr({:if => false, :fields => [{:feed_id => :integer}, {:grain_size => :string}]}, {:type_field => :type_s})
|
9
9
|
|
10
10
|
def self.top_tags(tags = nil)
|
11
11
|
|
12
12
|
end
|
13
13
|
|
14
|
-
def self.search(search_terms, language = "en", limit = 10, offset = 0, operator = :or)
|
15
|
-
|
14
|
+
def self.search(search_terms, grain_size = nil, language = "en", limit = 10, offset = 0, operator = :or)
|
15
|
+
query = (!grain_size.nil? && grain_size != 'all') ? (search_terms + ") AND (grain_size:#{grain_size}") : search_terms
|
16
|
+
return find_by_solr(query, :limit => limit, :offset => offset, :scores => true, :select => "entries.id, entries.title, entries.permalink, entries.direct_link, entries.published_at, entries.description, entries.feed_id, feeds.short_title AS collection", :joins => "INNER JOIN feeds ON feeds.id = entries.feed_id", :core => language, :operator => operator)
|
16
17
|
end
|
17
18
|
|
18
19
|
def self.normalized_uri(uri)
|
@@ -26,7 +27,7 @@ class Entry < ActiveRecord::Base
|
|
26
27
|
end
|
27
28
|
|
28
29
|
def recommendations(limit = 20, order = "relevance", details = false, omit_feeds = nil)
|
29
|
-
sql = "SELECT recommendations.id
|
30
|
+
sql = "SELECT recommendations.id, dest_entry_id, permalink, entries.title, relevance_calculated_at, relevance, clicks, avg_time_at_dest AS avg_time_on_target, direct_link, feeds.short_title AS collection "
|
30
31
|
sql << ", entries.description, author, published_at " if details == true
|
31
32
|
sql << "FROM recommendations "
|
32
33
|
sql << "INNER JOIN entries ON recommendations.dest_entry_id = entries.id "
|
data/app/models/feed.rb
CHANGED
@@ -6,6 +6,7 @@ class Feed < ActiveRecord::Base
|
|
6
6
|
# format :xml
|
7
7
|
|
8
8
|
has_many :entries
|
9
|
+
belongs_to :contributor, :class_name => 'User', :foreign_key => 'contributor_id'
|
9
10
|
|
10
11
|
# named_scope :ready_to_harvest, lambda { |*args| { :conditions => [ "feeds.last_harvested_at < ?", args.first || 1.day.ago.end_of_day ] } }
|
11
12
|
|
data/app/models/tag_cloud.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
class TagCloud < ActiveRecord::Base
|
2
2
|
|
3
|
-
def self.language_tags language_id = 38, filter = ''
|
4
|
-
|
5
|
-
|
3
|
+
def self.language_tags language_id = 38, grain_size = 'all', filter = ''
|
4
|
+
cloud = TagCloud.find(:first, :conditions => ["language_id = ? AND grain_size = ? AND filter = ? ", language_id, grain_size, filter.sort.join('/')])
|
5
|
+
cloud.nil? ? '' : cloud.tag_list
|
6
6
|
end
|
7
7
|
|
8
8
|
end
|
@@ -2,7 +2,14 @@
|
|
2
2
|
<div class="column span-24 align-right">
|
3
3
|
<span>
|
4
4
|
<%= results_status %>
|
5
|
-
<%= (' ' + link_to('[' + t('muck.raker.start_over') + ']', {:action => 'index'}) + ' ') unless @tag_filter.nil? %>
|
5
|
+
<%= (' ' + link_to('[' + t('muck.raker.start_over') + ']', {:action => 'index', :grain_size => @grain_size}) + ' ') unless @tag_filter.nil? %>
|
6
|
+
|
7
|
+
<% if @grain_size == 'course' %>
|
8
|
+
<%= link_to('[' + t('muck.raker.show_tagged_resources') + ']', {:grain_size => 'all'}) %>
|
9
|
+
<% else %>
|
10
|
+
<%= link_to('[' + t('muck.raker.show_tagged_courses') + ']', {:grain_size => 'course'}) %>
|
11
|
+
<% end %>
|
12
|
+
|
6
13
|
</span>
|
7
14
|
</div>
|
8
15
|
</div>
|
@@ -1,11 +1,11 @@
|
|
1
1
|
<div id="tag-cloud">
|
2
2
|
<fieldset>
|
3
|
-
<legend><%= @tag_filter.nil? ? t('muck.raker.
|
3
|
+
<legend><%= @tag_filter.nil? ? (@grain_size == 'course' ? t('muck.raker.courses_tag_cloud_label') : t('muck.raker.resources_tag_cloud_label')) : t('muck.raker.narrow_further') %></legend>
|
4
4
|
<% if @tag_cloud.blank? -%>
|
5
5
|
<%= t('muck.raker.no_tags') %>
|
6
6
|
<% else -%>
|
7
7
|
<% tag_cloud @tag_cloud, %w(cloud1 cloud2 cloud3 cloud4 cloud5 cloud6) do |tag, css_class| %>
|
8
|
-
<%= tag_link(tag, @tag_filter, css_class) %>
|
8
|
+
<%= tag_link(tag, @tag_filter, css_class, @grain_size) %>
|
9
9
|
<% end %>
|
10
10
|
<% end -%>
|
11
11
|
</fieldset>
|
@@ -9,6 +9,6 @@
|
|
9
9
|
<%= render(:partial => 'entries/tag_cloud') %>
|
10
10
|
</div>
|
11
11
|
<% else %>
|
12
|
-
|
12
|
+
<p><%= @grain_size == 'all' ? t('muck.raker.no_tagged_resources', :tags => @search) : t('muck.raker.no_tagged_courses', :tags => @tag_filter.split('/').join(', ')) %></p>
|
13
13
|
<% end %>
|
14
14
|
</div>
|
@@ -3,13 +3,13 @@
|
|
3
3
|
<table border="1" cellpadding="3px">
|
4
4
|
<tr>
|
5
5
|
<th>Related Resources <span style="color:#888;font-weight:normal;">(<%= t('muck.raker.calculated') %> <%= @entry.relevance_calculated_at.strftime("%d %b %Y") %>)</span></th>
|
6
|
-
<th>Relevance</th>
|
7
|
-
<th>Clicks</th>
|
8
|
-
<th>Avg Time<br/>(seconds)</th>
|
6
|
+
<th class="centered">Relevance</th>
|
7
|
+
<th class="centered">Clicks</th>
|
8
|
+
<th class="centered">Avg Time<br/>(seconds)</th>
|
9
9
|
</tr>
|
10
10
|
<% @entry.ranked_recommendations(@limit, params[:order] || "relevance").each do |r| %>
|
11
11
|
<tr>
|
12
|
-
<td><%= link_to r["title"] + " (" + r["collection"] + ")", "/r?id=" + r["
|
12
|
+
<td><%= link_to r["title"] + " (" + r["collection"] + ")", "/r?id=" + r["id"].to_s %></td>
|
13
13
|
<td class="centered"><%= round(r["relevance"]) %></td>
|
14
14
|
<td class="centered"><%= r["clicks"] %></td>
|
15
15
|
<td class="centered"><%= r["avg_time_on_target"] %></td>
|
@@ -4,6 +4,6 @@
|
|
4
4
|
<%= render(:partial => 'entries/results') %>
|
5
5
|
<div class="results-nav"><%= will_paginate(@paginated_results, :next_label => '<b>' + t('muck.raker.next_label') + ' »</b>', :previous_label => '<b>« ' + t('muck.raker.previous_label') + '</b>') %></div>
|
6
6
|
<% else %>
|
7
|
-
<p><%= t('muck.raker.no_hits') %></p>
|
7
|
+
<p><%= t('muck.raker.no_hits', :search => @search, :resource_type => @grain_size == 'all' ? 'resources' : 'courses') %></p>
|
8
8
|
<% end %>
|
9
9
|
</div>
|
@@ -5,17 +5,19 @@ if @document.nil?
|
|
5
5
|
else
|
6
6
|
|
7
7
|
@recommendations = @document.ranked_recommendations(@limit, params[:order] || "mixed", @details)
|
8
|
-
xml.recommendations(:document_id => @document.nil? ? "" : @document.id, :uri => @uri, :title => t(:gm_title), :more_prompt => t(:gm_more_prompt), :direct_link_text => t(:direct_link), :locale => @document.language) do
|
8
|
+
#xml.recommendations(:document_id => @document.nil? ? "" : @document.id, :uri => @uri, :title => t(:gm_title), :more_prompt => t(:gm_more_prompt), :direct_link_text => t(:direct_link), :locale => @document.language) do
|
9
|
+
xml.recommendations(:document_id => @document.nil? ? "" : @document.id, :uri => @uri, :title => t("muck.raker.gm_title"), :more_prompt => t("muck.raker.gm_more_prompt"), :direct_link_text => t("muck.raker.direct_link")) do
|
9
10
|
@recommendations.each do |recommendation|
|
10
11
|
xml.recommendation do
|
11
12
|
xml.title recommendation["title"]
|
12
13
|
xml.collection recommendation["collection"]
|
13
|
-
xml.link "http://www.
|
14
|
+
xml.link "http://www.folksemantic.com/r?id=" + recommendation["recommendation_id"].to_s
|
14
15
|
# xml.link "http://localhost:3000/r?id=" + recommendation["id"].to_s
|
15
16
|
xml.has_direct_link "true" if (recommendation["direct_link"] != nil and @uri[0..20] == recommendation["uri"][0..20])
|
16
17
|
|
17
18
|
if @details == true
|
18
|
-
xml.direct_link "http://www.
|
19
|
+
xml.direct_link "http://www.folksemantic.com/r?id=" + recommendation["recommendation_id"].to_s + "&u=" + recommendation["direct_link"] if recommendation["direct_link"] != nil
|
20
|
+
# xml.direct_link "http://localhost:3000/r?id=" + recommendation["recommendation_id"].to_s + "&u=" + recommendation["direct_link"] if recommendation["direct_link"] != nil
|
19
21
|
xml.uri recommendation["uri"]
|
20
22
|
xml.direct_uri recommendation["direct_link"]
|
21
23
|
xml.description recommendation["description"]
|
data/config/muck_raker_routes.rb
CHANGED
@@ -16,6 +16,7 @@ ActionController::Routing::Routes.draw do |map|
|
|
16
16
|
map.connect 'r', :controller => 'recommender/entries', :action => 'track_clicks'
|
17
17
|
map.connect 'collections', :controller => 'entries', :action => 'collections'
|
18
18
|
|
19
|
+
map.resources :feeds, :controller => 'recommender/feeds'
|
19
20
|
map.resources :recommendations, :controller => 'recommender/recommendations'
|
20
21
|
|
21
22
|
# redirect (and hit tracking)
|
@@ -0,0 +1,9 @@
|
|
1
|
+
class ChangeTagCloudGrainSizes < ActiveRecord::Migration
|
2
|
+
def self.up
|
3
|
+
execute "update tag_clouds set grain_size = 'all' where grain_size = 'unknown'"
|
4
|
+
end
|
5
|
+
|
6
|
+
def self.down
|
7
|
+
execute "update tag_clouds set grain_size = 'unknown' where grain_size = 'all'"
|
8
|
+
end
|
9
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
class NormalizeEntriesSubjects < ActiveRecord::Migration
|
2
|
+
def self.up
|
3
|
+
execute "ALTER TABLE entries_subjects DROP PRIMARY KEY, ADD PRIMARY KEY USING BTREE(subject_id, entry_id);"
|
4
|
+
remove_column :entries_subjects, :language_id
|
5
|
+
remove_column :entries_subjects, :grain_size
|
6
|
+
execute "delete from entries_subjects where entry_id IN (select entries.id from entries inner join feeds ON feeds.id = entries.feed_id where feeds.uri = 'http://ndr.nsdl.org/oai?verb=ListRecords&metadataPrefix=nsdl_dc&set=439869');"
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.down
|
10
|
+
add_column :entries_subjects, :language_id, :integer
|
11
|
+
add_column :entries_subjects, :grain_size, :string
|
12
|
+
add_index "entries_subjects", ["language_id"]
|
13
|
+
add_index "entries_subjects", ["grain_size"]
|
14
|
+
execute "ALTER TABLE entries_subjects DROP PRIMARY KEY, ADD PRIMARY KEY USING BTREE(subject_id, language_id, grain_size, entry_id);"
|
15
|
+
execute "UPDATE entries_subjects AS es INNER JOIN entries AS e ON e.id = es.entry_id SET es.language_id = e.language_id, es.grain_size = e.grain_size"
|
16
|
+
end
|
17
|
+
end
|
data/lib/muck_raker/tasks.rb
CHANGED
@@ -184,7 +184,27 @@ module MuckRaker
|
|
184
184
|
end
|
185
185
|
end
|
186
186
|
|
187
|
-
desc "
|
187
|
+
desc "Rebuild entry recommendation caches"
|
188
|
+
task :rebuild_recommendation_cache => :environment do
|
189
|
+
require File.expand_path("#{File.dirname(__FILE__)}/../../config/muck_raker_environment")
|
190
|
+
separator = (RUBY_PLATFORM =~ /(win|w)32$/ ? ';' : ':')
|
191
|
+
puts "RAILS_ENV=" + ENV['RAILS_ENV']
|
192
|
+
Dir.chdir(File.join(File.dirname(__FILE__), '../../', 'raker', 'lib')) do
|
193
|
+
jars = Dir['*.jar'].join(separator)
|
194
|
+
options = "-Dsolr.solr.home=\"#{SOLR_CONFIG_PATH}\" -Dsolr.data.dir=\"#{SOLR_DATA_PATH}\" -DRAILS_ENV=#{ENV['RAILS_ENV']} -DRAILS_DB_CONFIG=\"#{RAILS_DB_CONFIG}\" -DLOG_FILE_PREFIX=\"#{LOG_FILE_PREFIX}\" "
|
195
|
+
options << "-DDEBUG=true " unless ENV['DEBUG'] == 'false'
|
196
|
+
options << "-DLOG_TO_CONSOLE=true " unless ENV['DEBUG'] == 'false'
|
197
|
+
options << "-DFEED_ARCHIVE_PATH=\"#{FEED_ARCHIVE_PATH}\" "
|
198
|
+
classpath = "-classpath #{jars}#{separator}. "
|
199
|
+
javaclass = "edu.usu.cosl.recommender.Recommender "
|
200
|
+
cmdlineoption = "rebuild_cache "
|
201
|
+
cmd = "java " + options + classpath + javaclass + cmdlineoption
|
202
|
+
puts ("Executing: " + cmd) if ENV['DEBUG']
|
203
|
+
exec cmd
|
204
|
+
end
|
205
|
+
end
|
206
|
+
|
207
|
+
desc "Redo everything (re-index, redo autogenerated subjects, rebuild tag clouds re-recommend)"
|
188
208
|
task :rebuild => :environment do
|
189
209
|
require File.expand_path("#{File.dirname(__FILE__)}/../../config/muck_raker_environment")
|
190
210
|
separator = (RUBY_PLATFORM =~ /(win|w)32$/ ? ';' : ':')
|
@@ -217,8 +237,6 @@ module MuckRaker
|
|
217
237
|
end
|
218
238
|
|
219
239
|
end
|
220
|
-
|
221
|
-
|
222
240
|
|
223
241
|
end
|
224
242
|
end
|
data/locales/en.yml
CHANGED
@@ -11,7 +11,9 @@ en:
|
|
11
11
|
collections_long: Indexed Collections
|
12
12
|
developers_long: Information for Developers
|
13
13
|
powered_by: powered by
|
14
|
-
no_hits:
|
14
|
+
no_hits: Your search - <b>{{search}}</b> - did not match any <b>{{resource_type}}</b>. Please try a different search or choose a different language.
|
15
|
+
no_tagged_courses: No <b>courses</b> were found tagged with <b>{{tags}}</b>. <a href='/resources'>Start over</a> or show <a href='/resources/tags/{{tags}}'>all resources tagged {{tags}}</a>.
|
16
|
+
no_tagged_resources: No <b>resources</b> were found tagged with <b>{{tags}}</b>. <a href='/resources'>Start over</a>.
|
15
17
|
previous: Previous
|
16
18
|
next: Next
|
17
19
|
results: Results
|
@@ -40,12 +42,17 @@ en:
|
|
40
42
|
search_link: Find Resources!
|
41
43
|
search_description: Find learning resources by <span class="highlight">searching</span> and <span class="highlight">browsing</span> over <span class="highlight">110,000</span> open educational resources.
|
42
44
|
welcome_user: "Welcome {{user}}"
|
43
|
-
|
45
|
+
resources_tag_cloud_label: browse resources using tags <a href="/resources?grain_size=course">[browse only courses]</a>
|
46
|
+
courses_tag_cloud_label: browse courses using tags <a href="/resources">[browse all resources]</a>
|
44
47
|
narrow_further: narrow results further
|
48
|
+
show_tagged_courses: show only courses
|
49
|
+
show_tagged_resources: show any kind of resource
|
45
50
|
tags: tags
|
46
51
|
start_over: start over
|
47
|
-
|
48
|
-
|
52
|
+
course_tag_results: Courses <b>{{first}} - {{last}}</b> of <b>{{total}}</b> tagged <b>{{terms}}</b>
|
53
|
+
resource_tag_results: Resources <b>{{first}} - {{last}}</b> of <b>{{total}}</b> tagged <b>{{terms}}</b>
|
54
|
+
course_search_results: Courses <b>{{first}} - {{last}}</b> of <b>{{total}}</b> for search <b>{{terms}}</b>
|
55
|
+
resource_search_results: Resources <b>{{first}} - {{last}}</b> of <b>{{total}}</b> for search <b>{{terms}}</b>
|
49
56
|
next_label: Next
|
50
57
|
previous_label: Previous
|
51
58
|
all_resources: All Resources
|