muck-services 0.1.47 → 3.0.0

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.
Files changed (446) hide show
  1. data/.gitignore +2 -1
  2. data/LICENSE +1 -1
  3. data/README.rdoc +32 -48
  4. data/Rakefile +14 -16
  5. data/VERSION +1 -1
  6. data/app/controllers/admin/muck/feeds_controller.rb +1 -1
  7. data/app/controllers/muck/aggregations_controller.rb +4 -6
  8. data/app/controllers/muck/feed_previews_controller.rb +2 -10
  9. data/app/controllers/muck/feeds_controller.rb +1 -1
  10. data/app/controllers/muck/identity_feeds_controller.rb +2 -6
  11. data/app/controllers/muck/topics_controller.rb +3 -3
  12. data/app/controllers/muck/visits_controller.rb +3 -3
  13. data/app/helpers/muck_services_feeds_helper.rb +3 -3
  14. data/app/helpers/muck_services_service_helper.rb +2 -2
  15. data/app/models/aggregation.rb +4 -18
  16. data/app/models/entry.rb +2 -2
  17. data/app/models/feed.rb +7 -9
  18. data/app/models/oai_endpoint.rb +6 -6
  19. data/app/models/personal_recommendation.rb +4 -5
  20. data/app/models/service.rb +6 -6
  21. data/app/models/service_category.rb +1 -1
  22. data/app/models/services_mailer.rb +10 -12
  23. data/app/views/activity_templates/{_entry_comment.html.erb → _entry_comment.erb} +0 -0
  24. data/app/views/activity_templates/{_entry_share.html.erb → _entry_share.erb} +0 -0
  25. data/app/views/admin/feeds/index.html.erb +8 -9
  26. data/app/views/admin/oai_endpoints/index.html.erb +4 -4
  27. data/app/views/aggregations/{_feeds.html.erb → _feeds.erb} +0 -0
  28. data/app/views/aggregations/edit.html.erb +3 -3
  29. data/app/views/aggregations/index.html.erb +1 -1
  30. data/app/views/aggregations/new.html.erb +1 -1
  31. data/app/views/aggregations/preview.html.erb +1 -1
  32. data/app/views/feed_previews/{new.html.erb → new.erb} +0 -0
  33. data/app/views/feed_previews/{select_feeds.html.erb → select_feeds.erb} +0 -0
  34. data/app/views/feeds/_feed.html.erb +1 -1
  35. data/app/views/feeds/_feed_row.html.erb +1 -1
  36. data/app/views/feeds/_form.html.erb +2 -2
  37. data/app/views/feeds/edit.html.erb +2 -2
  38. data/app/views/feeds/index.html.erb +7 -8
  39. data/app/views/feeds/new.html.erb +2 -2
  40. data/app/views/feeds/new_extended.html.erb +2 -2
  41. data/app/views/feeds/new_oai_rss.html.erb +2 -2
  42. data/app/views/identity_feeds/{_form.html.erb → _form.erb} +1 -1
  43. data/app/views/oai_endpoints/_form.html.erb +2 -2
  44. data/app/views/oai_endpoints/_oai_endpoint_row.html.erb +1 -1
  45. data/app/views/parts/_add_feed.html.erb +1 -1
  46. data/app/views/services_mailer/{notification_feed_added.text.html.erb → notification_feed_added.html.erb} +0 -0
  47. data/app/views/services_mailer/{notification_feed_added.text.plain.erb → notification_feed_added.text.erb} +0 -0
  48. data/app/views/services_mailer/{notification_oai_endpoint_added.text.html.erb → notification_oai_endpoint_added.html.erb} +0 -0
  49. data/app/views/services_mailer/{notification_oai_endpoint_added.text.plain.erb → notification_oai_endpoint_added.text.erb} +0 -0
  50. data/app/views/topics/_form.html.erb +1 -1
  51. data/app/views/topics/new.html.erb +1 -1
  52. data/app/views/visits/_toolbar.html.erb +3 -3
  53. data/{locales → config/locales}/ar.yml +34 -34
  54. data/{locales → config/locales}/bg.yml +34 -34
  55. data/{locales → config/locales}/ca.yml +34 -34
  56. data/{locales → config/locales}/cs.yml +34 -34
  57. data/{locales → config/locales}/da.yml +34 -34
  58. data/{locales → config/locales}/de.yml +34 -34
  59. data/{locales → config/locales}/el.yml +34 -34
  60. data/{locales → config/locales}/en.yml +34 -36
  61. data/{locales → config/locales}/es.yml +34 -34
  62. data/{locales → config/locales}/et.yml +34 -34
  63. data/{locales → config/locales}/fa.yml +34 -34
  64. data/{locales → config/locales}/fi.yml +34 -34
  65. data/{locales → config/locales}/fr.yml +34 -34
  66. data/{locales → config/locales}/gl.yml +34 -34
  67. data/{locales → config/locales}/hi.yml +34 -34
  68. data/{locales → config/locales}/hr.yml +34 -34
  69. data/{locales → config/locales}/hu.yml +34 -34
  70. data/{locales → config/locales}/id.yml +34 -34
  71. data/{locales → config/locales}/it.yml +34 -34
  72. data/{locales → config/locales}/iw.yml +34 -34
  73. data/{locales → config/locales}/ja.yml +34 -34
  74. data/{locales → config/locales}/ko.yml +34 -34
  75. data/{locales → config/locales}/lt.yml +34 -34
  76. data/{locales → config/locales}/lv.yml +34 -34
  77. data/{locales → config/locales}/mt.yml +34 -34
  78. data/{locales → config/locales}/nl.yml +34 -34
  79. data/{locales → config/locales}/no.yml +34 -34
  80. data/{locales → config/locales}/pl.yml +34 -34
  81. data/{locales → config/locales}/pt-PT.yml +34 -34
  82. data/{locales → config/locales}/ro.yml +34 -34
  83. data/{locales → config/locales}/ru.yml +34 -34
  84. data/{locales → config/locales}/sk.yml +34 -34
  85. data/{locales → config/locales}/sl.yml +34 -34
  86. data/{locales → config/locales}/sq.yml +34 -34
  87. data/{locales → config/locales}/sr.yml +34 -34
  88. data/{locales → config/locales}/sv.yml +34 -34
  89. data/{locales → config/locales}/th.yml +34 -34
  90. data/{locales → config/locales}/tl.yml +34 -34
  91. data/{locales → config/locales}/tr.yml +34 -34
  92. data/{locales → config/locales}/uk.yml +34 -34
  93. data/{locales → config/locales}/vi.yml +34 -34
  94. data/{locales → config/locales}/zh-CN.yml +34 -34
  95. data/{locales → config/locales}/zh-TW.yml +34 -34
  96. data/{locales → config/locales}/zh.yml +34 -34
  97. data/config/routes.rb +73 -0
  98. data/lib/muck-services.rb +24 -0
  99. data/lib/muck-services/config.rb +36 -0
  100. data/lib/muck-services/engine.rb +32 -0
  101. data/lib/{muck_services → muck-services}/exceptions.rb +0 -0
  102. data/lib/{muck_services → muck-services}/languages.rb +0 -0
  103. data/lib/muck-services/models/aggregation_owner.rb +17 -0
  104. data/lib/muck-services/models/feed_owner.rb +24 -0
  105. data/lib/muck-services/models/feed_parent.rb +18 -0
  106. data/lib/muck-services/models/recommendation.rb +14 -0
  107. data/lib/muck-services/models/recommendation_owner.rb +15 -0
  108. data/lib/muck-services/models/services_comment.rb +24 -0
  109. data/lib/muck-services/models/services_share.rb +18 -0
  110. data/lib/{muck_services → muck-services}/muck_custom_form_builder.rb +1 -3
  111. data/lib/{muck_services → muck-services}/services.rb +0 -0
  112. data/lib/tasks/muck_services.rake +101 -0
  113. data/muck-services.gemspec +364 -520
  114. data/test/{rails_root → rails_test}/app/controllers/application_controller.rb +1 -9
  115. data/test/{rails_root → rails_test}/app/controllers/default_controller.rb +0 -0
  116. data/test/{rails_root → rails_test}/app/helpers/application_helper.rb +0 -0
  117. data/test/{rails_root → rails_test}/app/models/activity.rb +1 -1
  118. data/test/{rails_root → rails_test}/app/models/comment.rb +3 -3
  119. data/test/rails_test/app/models/country.rb +13 -0
  120. data/test/rails_test/app/models/language.rb +15 -0
  121. data/test/{rails_root → rails_test}/app/models/share.rb +3 -3
  122. data/test/rails_test/app/models/state.rb +13 -0
  123. data/test/{rails_root → rails_test}/app/models/user.rb +8 -8
  124. data/test/{rails_root → rails_test}/app/models/user_session.rb +0 -0
  125. data/test/rails_test/config/application.rb +42 -0
  126. data/test/rails_test/config/boot.rb +13 -0
  127. data/test/rails_test/config/environment.rb +5 -0
  128. data/test/rails_test/config/environments/development.rb +26 -0
  129. data/test/rails_test/config/environments/production.rb +49 -0
  130. data/test/rails_test/config/environments/test.rb +35 -0
  131. data/test/rails_test/config/initializers/backtrace_silencers.rb +7 -0
  132. data/test/{rails_root → rails_test}/config/initializers/inflections.rb +2 -2
  133. data/test/rails_test/config/initializers/mce_options.rb +83 -0
  134. data/test/{rails_root → rails_test}/config/initializers/mime_types.rb +0 -0
  135. data/test/rails_test/config/initializers/muck.rb +66 -0
  136. data/test/rails_test/config/initializers/secret_token.rb +7 -0
  137. data/test/rails_test/config/initializers/session_store.rb +8 -0
  138. data/test/rails_test/config/routes.rb +12 -0
  139. data/test/{rails_root → rails_test}/db/migrate/20090320174818_create_muck_permissions_and_roles.rb +0 -0
  140. data/test/{rails_root → rails_test}/db/migrate/20090327231918_create_users.rb +0 -0
  141. data/test/{rails_root → rails_test}/db/migrate/20090402033319_add_muck_activities.rb +0 -0
  142. data/test/{rails_root → rails_test}/db/migrate/20090402234137_create_languages.rb +0 -0
  143. data/test/{rails_root → rails_test}/db/migrate/20090426041056_create_countries.rb +0 -0
  144. data/test/{rails_root → rails_test}/db/migrate/20090426041103_create_states.rb +0 -0
  145. data/test/rails_test/db/migrate/20090512013727_create_profiles.rb +21 -0
  146. data/test/rails_test/db/migrate/20090517040220_create_uploads.rb +38 -0
  147. data/test/{rails_root → rails_test}/db/migrate/20090602191243_create_muck_raker.rb +0 -0
  148. data/test/{rails_root → rails_test}/db/migrate/20090613173314_create_comments.rb +0 -0
  149. data/test/{rails_root → rails_test}/db/migrate/20090619211125_create_tag_clouds.rb +0 -0
  150. data/test/{rails_root → rails_test}/db/migrate/20090623181458_add_grain_size_to_entries.rb +0 -0
  151. data/test/{rails_root → rails_test}/db/migrate/20090623193525_add_grain_size_to_tag_clouds.rb +0 -0
  152. data/test/rails_test/db/migrate/20090703055724_add_contents.rb +49 -0
  153. data/test/{rails_root → rails_test}/db/migrate/20090703175825_denormalize_entries_subjects.rb +0 -0
  154. data/test/{rails_root → rails_test}/db/migrate/20090704220055_create_slugs.rb +0 -0
  155. data/test/{rails_root → rails_test}/db/migrate/20090716035935_change_tag_cloud_grain_sizes.rb +0 -0
  156. data/test/{rails_root → rails_test}/db/migrate/20090717173900_add_contributor_to_feeds.rb +0 -0
  157. data/test/{rails_root → rails_test}/db/migrate/20090717175825_normalize_entries_subjects.rb +0 -0
  158. data/test/{rails_root → rails_test}/db/migrate/20090721043213_change_services_title_to_name.rb +0 -0
  159. data/test/{rails_root → rails_test}/db/migrate/20090721054927_remove_services_not_null_from_feeds.rb +0 -0
  160. data/test/{rails_root → rails_test}/db/migrate/20090723050510_create_feed_parents.rb +0 -0
  161. data/test/{rails_root → rails_test}/db/migrate/20090728165716_add_etag_to_feeds.rb +0 -0
  162. data/test/{rails_root → rails_test}/db/migrate/20090730044139_add_comment_cache.rb +0 -0
  163. data/test/{rails_root → rails_test}/db/migrate/20090730045848_add_comment_cache_to_entries.rb +0 -0
  164. data/test/{rails_root → rails_test}/db/migrate/20090730154102_allow_null_user.rb +0 -0
  165. data/test/{rails_root → rails_test}/db/migrate/20090803185323_create_shares.rb +0 -0
  166. data/test/{rails_root → rails_test}/db/migrate/20090804184247_add_comment_count_to_shares.rb +0 -0
  167. data/test/{rails_root → rails_test}/db/migrate/20090804211240_add_entry_id_to_shares.rb +0 -0
  168. data/test/{rails_root → rails_test}/db/migrate/20090804231857_add_shares_uri_index.rb +0 -0
  169. data/test/rails_test/db/migrate/20090806230610_add_layout_to_contents.rb +9 -0
  170. data/test/rails_test/db/migrate/20090808175401_add_contents_comment_counter_cache.rb +9 -0
  171. data/test/{rails_root → rails_test}/db/migrate/20090818204527_add_activity_indexes.rb +0 -0
  172. data/test/{rails_root → rails_test}/db/migrate/20090819030523_add_attachable_to_activities.rb +0 -0
  173. data/test/{rails_root → rails_test}/db/migrate/20090826220530_change_services_sequence_to_sort.rb +0 -0
  174. data/test/{rails_root → rails_test}/db/migrate/20090826225652_create_identity_feeds.rb +0 -0
  175. data/test/{rails_root → rails_test}/db/migrate/20090827005105_add_identity_fields_to_services.rb +0 -0
  176. data/test/{rails_root → rails_test}/db/migrate/20090827015308_create_service_categories.rb +0 -0
  177. data/test/{rails_root → rails_test}/db/migrate/20090827221502_add_prompt_and_template_to_services.rb +0 -0
  178. data/test/{rails_root → rails_test}/db/migrate/20090915041650_aggregations_to_polymorphic.rb +0 -0
  179. data/test/{rails_root → rails_test}/db/migrate/20090922174200_update_oai_endpoints.rb +0 -0
  180. data/test/{rails_root → rails_test}/db/migrate/20090922231552_add_dates_to_oai_endpoints.rb +0 -0
  181. data/test/{rails_root → rails_test}/db/migrate/20090923150807_rename_name_in_aggregation.rb +0 -0
  182. data/test/{rails_root → rails_test}/db/migrate/20090924200750_add_uri_data_template_to_services.rb +0 -0
  183. data/test/{rails_root → rails_test}/db/migrate/20091006183742_add_feed_count_to_aggregation.rb +0 -0
  184. data/test/{rails_root → rails_test}/db/migrate/20091022150615_add_uri_key_to_services.rb +0 -0
  185. data/test/{rails_root → rails_test}/db/migrate/20091115011828_add_aggregations_for_personal_recs.rb +0 -0
  186. data/test/{rails_root → rails_test}/db/migrate/20091116094447_rename_action_table.rb +0 -0
  187. data/test/{rails_root → rails_test}/db/migrate/20091118203605_add_default_feed_type_to_aggregation_feed.rb +0 -0
  188. data/test/rails_test/db/migrate/20091124203137_add_location_to_profiles.rb +15 -0
  189. data/test/rails_test/db/migrate/20091124205819_add_fields_to_profiles.rb +21 -0
  190. data/test/{rails_root → rails_test}/db/migrate/20100123035450_create_access_codes.rb +0 -0
  191. data/test/{rails_root → rails_test}/db/migrate/20100123233654_create_access_code_requests.rb +0 -0
  192. data/test/rails_test/db/migrate/20100206000906_remove_name_fields.rb +15 -0
  193. data/test/rails_test/db/migrate/20100903205928_add_dead_entry_fields.rb +13 -0
  194. data/test/{rails_root → rails_test}/features/step_definitions/common_steps.rb +0 -0
  195. data/test/{rails_root → rails_test}/features/step_definitions/visit_steps.rb +0 -0
  196. data/test/rails_test/features/step_definitions/web_steps.rb +219 -0
  197. data/test/{rails_root → rails_test}/features/step_definitions/webrat_steps.rb +0 -0
  198. data/test/rails_test/features/support/custom_env.rb +19 -0
  199. data/test/rails_test/features/support/env.rb +58 -0
  200. data/test/rails_test/features/support/paths.rb +33 -0
  201. data/test/rails_test/lib/daemons/amazonaws.rb +36 -0
  202. data/test/{rails_root → rails_test}/public/dispatch.rb +0 -0
  203. data/test/rails_test/spec/controllers/admin/feeds_controller_spec.rb +38 -0
  204. data/test/rails_test/spec/controllers/admin/oai_endpoints_controller_spec.rb +30 -0
  205. data/test/{rails_root/test/functional/aggregation_feeds_controller_test.rb → rails_test/spec/controllers/aggregation_feeds_controller_spec.rb} +24 -24
  206. data/test/rails_test/spec/controllers/aggregations_controller_spec.rb +89 -0
  207. data/test/rails_test/spec/controllers/feed_previews_controller_spec.rb +32 -0
  208. data/test/rails_test/spec/controllers/feeds_controller_spec.rb +78 -0
  209. data/test/{rails_root/test/functional/identity_feeds_controller_test.rb → rails_test/spec/controllers/identity_feeds_controller_spec.rb} +44 -44
  210. data/test/rails_test/spec/controllers/oai_endpoints_controller_spec.rb +42 -0
  211. data/test/rails_test/spec/controllers/topics_controller_spec.rb +50 -0
  212. data/test/rails_test/spec/controllers/visits_controller_spec.rb +21 -0
  213. data/test/{rails_root/test → rails_test/spec}/factories.rb +6 -1
  214. data/test/rails_test/spec/mailers/services_mailer_spec.rb +31 -0
  215. data/test/{rails_root/test/unit/aggregation_feed_test.rb → rails_test/spec/models/aggregation_feed_spec.rb} +6 -9
  216. data/test/{rails_root/test/unit/aggregation_test.rb → rails_test/spec/models/aggregation_spec.rb} +23 -23
  217. data/test/{rails_root/test/unit/entry_test.rb → rails_test/spec/models/entry_spec.rb} +70 -74
  218. data/test/{rails_root/test/unit/feed_parent_test.rb → rails_test/spec/models/feed_parent_spec.rb} +5 -5
  219. data/test/{rails_root/test/unit/feed_test.rb → rails_test/spec/models/feed_spec.rb} +77 -81
  220. data/test/{rails_root/test/unit/identity_feed_test.rb → rails_test/spec/models/identity_feed_spec.rb} +5 -5
  221. data/test/rails_test/spec/models/oai_endpoint_spec.rb +78 -0
  222. data/test/rails_test/spec/models/personal_recommendation_spec.rb +60 -0
  223. data/test/{rails_root/test/unit/recommendation_test.rb → rails_test/spec/models/recommendation_spec.rb} +6 -8
  224. data/test/rails_test/spec/models/service_category_spec.rb +19 -0
  225. data/test/rails_test/spec/models/service_spec.rb +383 -0
  226. data/test/{rails_root/test/unit/share_test.rb → rails_test/spec/models/share_spec.rb} +8 -11
  227. data/test/{rails_root/test/unit/tag_cloud_test.rb → rails_test/spec/models/tag_cloud_spec.rb} +4 -4
  228. data/test/{rails_root/test/unit/user_test.rb → rails_test/spec/models/user_spec.rb} +9 -11
  229. data/test/{rails_root/test/test_helper.rb → rails_test/spec/spec_helper.rb} +8 -19
  230. metadata +345 -470
  231. data/app/views/services_mailer/notification_feed_added.text.ar.html.erb +0 -4
  232. data/app/views/services_mailer/notification_feed_added.text.ar.plain.erb +0 -7
  233. data/app/views/services_mailer/notification_feed_added.text.bg.html.erb +0 -4
  234. data/app/views/services_mailer/notification_feed_added.text.bg.plain.erb +0 -7
  235. data/app/views/services_mailer/notification_feed_added.text.ca.html.erb +0 -4
  236. data/app/views/services_mailer/notification_feed_added.text.ca.plain.erb +0 -7
  237. data/app/views/services_mailer/notification_feed_added.text.cs.html.erb +0 -4
  238. data/app/views/services_mailer/notification_feed_added.text.cs.plain.erb +0 -7
  239. data/app/views/services_mailer/notification_feed_added.text.da.html.erb +0 -4
  240. data/app/views/services_mailer/notification_feed_added.text.da.plain.erb +0 -7
  241. data/app/views/services_mailer/notification_feed_added.text.de.html.erb +0 -4
  242. data/app/views/services_mailer/notification_feed_added.text.de.plain.erb +0 -7
  243. data/app/views/services_mailer/notification_feed_added.text.el.html.erb +0 -4
  244. data/app/views/services_mailer/notification_feed_added.text.el.plain.erb +0 -7
  245. data/app/views/services_mailer/notification_feed_added.text.es.html.erb +0 -4
  246. data/app/views/services_mailer/notification_feed_added.text.es.plain.erb +0 -7
  247. data/app/views/services_mailer/notification_feed_added.text.et.html.erb +0 -4
  248. data/app/views/services_mailer/notification_feed_added.text.et.plain.erb +0 -7
  249. data/app/views/services_mailer/notification_feed_added.text.fa.html.erb +0 -4
  250. data/app/views/services_mailer/notification_feed_added.text.fa.plain.erb +0 -7
  251. data/app/views/services_mailer/notification_feed_added.text.fi.html.erb +0 -4
  252. data/app/views/services_mailer/notification_feed_added.text.fi.plain.erb +0 -7
  253. data/app/views/services_mailer/notification_feed_added.text.fr.html.erb +0 -4
  254. data/app/views/services_mailer/notification_feed_added.text.fr.plain.erb +0 -7
  255. data/app/views/services_mailer/notification_feed_added.text.gl.html.erb +0 -4
  256. data/app/views/services_mailer/notification_feed_added.text.gl.plain.erb +0 -7
  257. data/app/views/services_mailer/notification_feed_added.text.hi.html.erb +0 -4
  258. data/app/views/services_mailer/notification_feed_added.text.hi.plain.erb +0 -7
  259. data/app/views/services_mailer/notification_feed_added.text.hr.html.erb +0 -4
  260. data/app/views/services_mailer/notification_feed_added.text.hr.plain.erb +0 -7
  261. data/app/views/services_mailer/notification_feed_added.text.hu.html.erb +0 -4
  262. data/app/views/services_mailer/notification_feed_added.text.hu.plain.erb +0 -7
  263. data/app/views/services_mailer/notification_feed_added.text.id.html.erb +0 -4
  264. data/app/views/services_mailer/notification_feed_added.text.id.plain.erb +0 -7
  265. data/app/views/services_mailer/notification_feed_added.text.it.html.erb +0 -4
  266. data/app/views/services_mailer/notification_feed_added.text.it.plain.erb +0 -7
  267. data/app/views/services_mailer/notification_feed_added.text.iw.html.erb +0 -4
  268. data/app/views/services_mailer/notification_feed_added.text.iw.plain.erb +0 -7
  269. data/app/views/services_mailer/notification_feed_added.text.ja.html.erb +0 -4
  270. data/app/views/services_mailer/notification_feed_added.text.ja.plain.erb +0 -7
  271. data/app/views/services_mailer/notification_feed_added.text.ko.html.erb +0 -4
  272. data/app/views/services_mailer/notification_feed_added.text.ko.plain.erb +0 -7
  273. data/app/views/services_mailer/notification_feed_added.text.lt.html.erb +0 -4
  274. data/app/views/services_mailer/notification_feed_added.text.lt.plain.erb +0 -7
  275. data/app/views/services_mailer/notification_feed_added.text.lv.html.erb +0 -4
  276. data/app/views/services_mailer/notification_feed_added.text.lv.plain.erb +0 -7
  277. data/app/views/services_mailer/notification_feed_added.text.mt.html.erb +0 -4
  278. data/app/views/services_mailer/notification_feed_added.text.mt.plain.erb +0 -7
  279. data/app/views/services_mailer/notification_feed_added.text.nl.html.erb +0 -4
  280. data/app/views/services_mailer/notification_feed_added.text.nl.plain.erb +0 -7
  281. data/app/views/services_mailer/notification_feed_added.text.no.html.erb +0 -4
  282. data/app/views/services_mailer/notification_feed_added.text.no.plain.erb +0 -7
  283. data/app/views/services_mailer/notification_feed_added.text.pl.html.erb +0 -4
  284. data/app/views/services_mailer/notification_feed_added.text.pl.plain.erb +0 -7
  285. data/app/views/services_mailer/notification_feed_added.text.pt-PT.html.erb +0 -4
  286. data/app/views/services_mailer/notification_feed_added.text.pt-PT.plain.erb +0 -7
  287. data/app/views/services_mailer/notification_feed_added.text.ro.html.erb +0 -4
  288. data/app/views/services_mailer/notification_feed_added.text.ro.plain.erb +0 -7
  289. data/app/views/services_mailer/notification_feed_added.text.ru.html.erb +0 -4
  290. data/app/views/services_mailer/notification_feed_added.text.ru.plain.erb +0 -7
  291. data/app/views/services_mailer/notification_feed_added.text.sk.html.erb +0 -4
  292. data/app/views/services_mailer/notification_feed_added.text.sk.plain.erb +0 -7
  293. data/app/views/services_mailer/notification_feed_added.text.sl.html.erb +0 -4
  294. data/app/views/services_mailer/notification_feed_added.text.sl.plain.erb +0 -7
  295. data/app/views/services_mailer/notification_feed_added.text.sq.html.erb +0 -4
  296. data/app/views/services_mailer/notification_feed_added.text.sq.plain.erb +0 -7
  297. data/app/views/services_mailer/notification_feed_added.text.sr.html.erb +0 -4
  298. data/app/views/services_mailer/notification_feed_added.text.sr.plain.erb +0 -7
  299. data/app/views/services_mailer/notification_feed_added.text.sv.html.erb +0 -4
  300. data/app/views/services_mailer/notification_feed_added.text.sv.plain.erb +0 -7
  301. data/app/views/services_mailer/notification_feed_added.text.th.html.erb +0 -4
  302. data/app/views/services_mailer/notification_feed_added.text.th.plain.erb +0 -7
  303. data/app/views/services_mailer/notification_feed_added.text.tl.html.erb +0 -4
  304. data/app/views/services_mailer/notification_feed_added.text.tl.plain.erb +0 -7
  305. data/app/views/services_mailer/notification_feed_added.text.tr.html.erb +0 -4
  306. data/app/views/services_mailer/notification_feed_added.text.tr.plain.erb +0 -7
  307. data/app/views/services_mailer/notification_feed_added.text.uk.html.erb +0 -4
  308. data/app/views/services_mailer/notification_feed_added.text.uk.plain.erb +0 -7
  309. data/app/views/services_mailer/notification_feed_added.text.vi.html.erb +0 -4
  310. data/app/views/services_mailer/notification_feed_added.text.vi.plain.erb +0 -7
  311. data/app/views/services_mailer/notification_feed_added.text.zh-CN.html.erb +0 -4
  312. data/app/views/services_mailer/notification_feed_added.text.zh-CN.plain.erb +0 -7
  313. data/app/views/services_mailer/notification_feed_added.text.zh-TW.html.erb +0 -4
  314. data/app/views/services_mailer/notification_feed_added.text.zh-TW.plain.erb +0 -7
  315. data/app/views/services_mailer/notification_feed_added.text.zh.html.erb +0 -4
  316. data/app/views/services_mailer/notification_feed_added.text.zh.plain.erb +0 -7
  317. data/app/views/services_mailer/notification_oai_endpoint_added.text.ar.html.erb +0 -4
  318. data/app/views/services_mailer/notification_oai_endpoint_added.text.ar.plain.erb +0 -4
  319. data/app/views/services_mailer/notification_oai_endpoint_added.text.bg.html.erb +0 -4
  320. data/app/views/services_mailer/notification_oai_endpoint_added.text.bg.plain.erb +0 -4
  321. data/app/views/services_mailer/notification_oai_endpoint_added.text.ca.html.erb +0 -4
  322. data/app/views/services_mailer/notification_oai_endpoint_added.text.ca.plain.erb +0 -4
  323. data/app/views/services_mailer/notification_oai_endpoint_added.text.cs.html.erb +0 -4
  324. data/app/views/services_mailer/notification_oai_endpoint_added.text.cs.plain.erb +0 -4
  325. data/app/views/services_mailer/notification_oai_endpoint_added.text.da.html.erb +0 -4
  326. data/app/views/services_mailer/notification_oai_endpoint_added.text.da.plain.erb +0 -4
  327. data/app/views/services_mailer/notification_oai_endpoint_added.text.de.html.erb +0 -4
  328. data/app/views/services_mailer/notification_oai_endpoint_added.text.de.plain.erb +0 -4
  329. data/app/views/services_mailer/notification_oai_endpoint_added.text.el.html.erb +0 -4
  330. data/app/views/services_mailer/notification_oai_endpoint_added.text.el.plain.erb +0 -4
  331. data/app/views/services_mailer/notification_oai_endpoint_added.text.es.html.erb +0 -4
  332. data/app/views/services_mailer/notification_oai_endpoint_added.text.es.plain.erb +0 -4
  333. data/app/views/services_mailer/notification_oai_endpoint_added.text.et.html.erb +0 -4
  334. data/app/views/services_mailer/notification_oai_endpoint_added.text.et.plain.erb +0 -4
  335. data/app/views/services_mailer/notification_oai_endpoint_added.text.fa.html.erb +0 -4
  336. data/app/views/services_mailer/notification_oai_endpoint_added.text.fa.plain.erb +0 -4
  337. data/app/views/services_mailer/notification_oai_endpoint_added.text.fi.html.erb +0 -4
  338. data/app/views/services_mailer/notification_oai_endpoint_added.text.fi.plain.erb +0 -4
  339. data/app/views/services_mailer/notification_oai_endpoint_added.text.fr.html.erb +0 -4
  340. data/app/views/services_mailer/notification_oai_endpoint_added.text.fr.plain.erb +0 -4
  341. data/app/views/services_mailer/notification_oai_endpoint_added.text.gl.html.erb +0 -4
  342. data/app/views/services_mailer/notification_oai_endpoint_added.text.gl.plain.erb +0 -4
  343. data/app/views/services_mailer/notification_oai_endpoint_added.text.hi.html.erb +0 -4
  344. data/app/views/services_mailer/notification_oai_endpoint_added.text.hi.plain.erb +0 -4
  345. data/app/views/services_mailer/notification_oai_endpoint_added.text.hr.html.erb +0 -4
  346. data/app/views/services_mailer/notification_oai_endpoint_added.text.hr.plain.erb +0 -4
  347. data/app/views/services_mailer/notification_oai_endpoint_added.text.hu.html.erb +0 -4
  348. data/app/views/services_mailer/notification_oai_endpoint_added.text.hu.plain.erb +0 -4
  349. data/app/views/services_mailer/notification_oai_endpoint_added.text.id.html.erb +0 -4
  350. data/app/views/services_mailer/notification_oai_endpoint_added.text.id.plain.erb +0 -4
  351. data/app/views/services_mailer/notification_oai_endpoint_added.text.it.html.erb +0 -4
  352. data/app/views/services_mailer/notification_oai_endpoint_added.text.it.plain.erb +0 -4
  353. data/app/views/services_mailer/notification_oai_endpoint_added.text.iw.html.erb +0 -4
  354. data/app/views/services_mailer/notification_oai_endpoint_added.text.iw.plain.erb +0 -4
  355. data/app/views/services_mailer/notification_oai_endpoint_added.text.ja.html.erb +0 -4
  356. data/app/views/services_mailer/notification_oai_endpoint_added.text.ja.plain.erb +0 -4
  357. data/app/views/services_mailer/notification_oai_endpoint_added.text.ko.html.erb +0 -4
  358. data/app/views/services_mailer/notification_oai_endpoint_added.text.ko.plain.erb +0 -4
  359. data/app/views/services_mailer/notification_oai_endpoint_added.text.lt.html.erb +0 -4
  360. data/app/views/services_mailer/notification_oai_endpoint_added.text.lt.plain.erb +0 -4
  361. data/app/views/services_mailer/notification_oai_endpoint_added.text.lv.html.erb +0 -4
  362. data/app/views/services_mailer/notification_oai_endpoint_added.text.lv.plain.erb +0 -4
  363. data/app/views/services_mailer/notification_oai_endpoint_added.text.mt.html.erb +0 -4
  364. data/app/views/services_mailer/notification_oai_endpoint_added.text.mt.plain.erb +0 -4
  365. data/app/views/services_mailer/notification_oai_endpoint_added.text.nl.html.erb +0 -4
  366. data/app/views/services_mailer/notification_oai_endpoint_added.text.nl.plain.erb +0 -4
  367. data/app/views/services_mailer/notification_oai_endpoint_added.text.no.html.erb +0 -4
  368. data/app/views/services_mailer/notification_oai_endpoint_added.text.no.plain.erb +0 -4
  369. data/app/views/services_mailer/notification_oai_endpoint_added.text.pl.html.erb +0 -4
  370. data/app/views/services_mailer/notification_oai_endpoint_added.text.pl.plain.erb +0 -4
  371. data/app/views/services_mailer/notification_oai_endpoint_added.text.pt-PT.html.erb +0 -4
  372. data/app/views/services_mailer/notification_oai_endpoint_added.text.pt-PT.plain.erb +0 -4
  373. data/app/views/services_mailer/notification_oai_endpoint_added.text.ro.html.erb +0 -4
  374. data/app/views/services_mailer/notification_oai_endpoint_added.text.ro.plain.erb +0 -4
  375. data/app/views/services_mailer/notification_oai_endpoint_added.text.ru.html.erb +0 -4
  376. data/app/views/services_mailer/notification_oai_endpoint_added.text.ru.plain.erb +0 -4
  377. data/app/views/services_mailer/notification_oai_endpoint_added.text.sk.html.erb +0 -4
  378. data/app/views/services_mailer/notification_oai_endpoint_added.text.sk.plain.erb +0 -4
  379. data/app/views/services_mailer/notification_oai_endpoint_added.text.sl.html.erb +0 -4
  380. data/app/views/services_mailer/notification_oai_endpoint_added.text.sl.plain.erb +0 -4
  381. data/app/views/services_mailer/notification_oai_endpoint_added.text.sq.html.erb +0 -4
  382. data/app/views/services_mailer/notification_oai_endpoint_added.text.sq.plain.erb +0 -4
  383. data/app/views/services_mailer/notification_oai_endpoint_added.text.sr.html.erb +0 -4
  384. data/app/views/services_mailer/notification_oai_endpoint_added.text.sr.plain.erb +0 -4
  385. data/app/views/services_mailer/notification_oai_endpoint_added.text.sv.html.erb +0 -4
  386. data/app/views/services_mailer/notification_oai_endpoint_added.text.sv.plain.erb +0 -4
  387. data/app/views/services_mailer/notification_oai_endpoint_added.text.th.html.erb +0 -4
  388. data/app/views/services_mailer/notification_oai_endpoint_added.text.th.plain.erb +0 -4
  389. data/app/views/services_mailer/notification_oai_endpoint_added.text.tl.html.erb +0 -4
  390. data/app/views/services_mailer/notification_oai_endpoint_added.text.tl.plain.erb +0 -4
  391. data/app/views/services_mailer/notification_oai_endpoint_added.text.tr.html.erb +0 -4
  392. data/app/views/services_mailer/notification_oai_endpoint_added.text.tr.plain.erb +0 -4
  393. data/app/views/services_mailer/notification_oai_endpoint_added.text.uk.html.erb +0 -4
  394. data/app/views/services_mailer/notification_oai_endpoint_added.text.uk.plain.erb +0 -4
  395. data/app/views/services_mailer/notification_oai_endpoint_added.text.vi.html.erb +0 -4
  396. data/app/views/services_mailer/notification_oai_endpoint_added.text.vi.plain.erb +0 -4
  397. data/app/views/services_mailer/notification_oai_endpoint_added.text.zh-CN.html.erb +0 -4
  398. data/app/views/services_mailer/notification_oai_endpoint_added.text.zh-CN.plain.erb +0 -4
  399. data/app/views/services_mailer/notification_oai_endpoint_added.text.zh-TW.html.erb +0 -4
  400. data/app/views/services_mailer/notification_oai_endpoint_added.text.zh-TW.plain.erb +0 -4
  401. data/app/views/services_mailer/notification_oai_endpoint_added.text.zh.html.erb +0 -4
  402. data/app/views/services_mailer/notification_oai_endpoint_added.text.zh.plain.erb +0 -4
  403. data/config/muck_services_routes.rb +0 -43
  404. data/lib/active_record/acts/muck_aggregation_owner.rb +0 -30
  405. data/lib/active_record/acts/muck_feed_owner.rb +0 -36
  406. data/lib/active_record/acts/muck_feed_parent.rb +0 -23
  407. data/lib/active_record/acts/muck_recommendations.rb +0 -24
  408. data/lib/active_record/acts/muck_services_comment.rb +0 -40
  409. data/lib/active_record/acts/muck_services_share.rb +0 -32
  410. data/lib/muck_services.rb +0 -23
  411. data/lib/muck_services/initialize_routes.rb +0 -8
  412. data/lib/muck_services/tasks.rb +0 -117
  413. data/rails/init.rb +0 -18
  414. data/test/rails_root/config/boot.rb +0 -109
  415. data/test/rails_root/config/environment.rb +0 -41
  416. data/test/rails_root/config/environments/cucumber.rb +0 -21
  417. data/test/rails_root/config/environments/development.rb +0 -37
  418. data/test/rails_root/config/environments/production.rb +0 -1
  419. data/test/rails_root/config/environments/test.rb +0 -24
  420. data/test/rails_root/config/initializers/requires.rb +0 -13
  421. data/test/rails_root/config/initializers/session_store.rb +0 -8
  422. data/test/rails_root/config/routes.rb +0 -11
  423. data/test/rails_root/db/schema.rb +0 -504
  424. data/test/rails_root/features/support/env.rb +0 -14
  425. data/test/rails_root/features/support/paths.rb +0 -36
  426. data/test/rails_root/script/create_project.rb +0 -52
  427. data/test/rails_root/test/functional/admin/feeds_controller_test.rb +0 -37
  428. data/test/rails_root/test/functional/admin/oai_endpoints_controller_test.rb +0 -30
  429. data/test/rails_root/test/functional/aggregations_controller_test.rb +0 -89
  430. data/test/rails_root/test/functional/feed_previews_controller_test.rb +0 -32
  431. data/test/rails_root/test/functional/feeds_controller_test.rb +0 -78
  432. data/test/rails_root/test/functional/oai_endpoints_controller_test.rb +0 -42
  433. data/test/rails_root/test/functional/topics_controller_test.rb +0 -50
  434. data/test/rails_root/test/functional/visits_controller_test.rb +0 -21
  435. data/test/rails_root/test/unit/comment_test.rb +0 -38
  436. data/test/rails_root/test/unit/oai_endpoint_test.rb +0 -84
  437. data/test/rails_root/test/unit/personal_recommendation_test.rb +0 -78
  438. data/test/rails_root/test/unit/service_category_test.rb +0 -19
  439. data/test/rails_root/test/unit/service_test.rb +0 -386
  440. data/test/rails_root/test/unit/services_mailer_test.rb +0 -35
  441. data/test/rails_root/vendor/plugins/jrails/init.rb +0 -1
  442. data/test/rails_root/vendor/plugins/jrails/install.rb +0 -9
  443. data/test/rails_root/vendor/plugins/jrails/lib/jrails.rb +0 -421
  444. data/test/rails_root/vendor/plugins/jrails/rails/init.rb +0 -15
  445. data/test/rails_root/vendor/plugins/ssl_requirement/lib/ssl_requirement.rb +0 -62
  446. data/test/rails_root/vendor/plugins/ssl_requirement/test/ssl_requirement_test.rb +0 -132
@@ -13,7 +13,7 @@ zh:
13
13
  add_feed_advanced: 添加饲料(高级)
14
14
  add_feed_title: 添加新的饲料
15
15
  add_feed_url: 网址:
16
- add_feeds_to_aggregation: "添加供稿{{title}}"
16
+ add_feeds_to_aggregation: "添加供稿%{title}"
17
17
  add_more_sources: 添加源
18
18
  add_new_feed_title: 添加新的饲料
19
19
  add_oai: 添加醪河
@@ -23,11 +23,11 @@ zh:
23
23
  add_rss_feed: 添加RSS提要
24
24
  add_sources_by_tag: 饲料添加更多的标签。
25
25
  added_date: 新增
26
- aggregation_deleted: "{{title}}删除"
26
+ aggregation_deleted: "%{title}删除"
27
27
  aggregation_updated: 聚合更新
28
28
  all_resources: 所有资源
29
- already_added_uri_feed: "你已经添加的url {{uri}}"
30
- already_added_username_feed: "你已经添加的用户名{{service}} 1 {{username}}帐户"
29
+ already_added_uri_feed: "你已经添加的url %{uri}"
30
+ already_added_username_feed: "你已经添加的用户名%{service}} 1 %{username}帐户"
31
31
  already_shared: 您以前共享的这一页。
32
32
  amazon_prompt: 请输入您的电子邮件使用Amazon.com
33
33
  approval_status: 核准
@@ -51,10 +51,10 @@ zh:
51
51
  collections_long: 索引的集合
52
52
  comment_entries_count:
53
53
  one: 1条评论
54
- other: "{{count}}评论"
54
+ other: "%{count}评论"
55
55
  contributor: 投稿
56
- course_search_results: "课程<b>{{first}} -</b>在<b>{{last}} {{total}}</b>搜索<b>{{terms}}</b>"
57
- course_tag_results: "课程<b>{{first}} -</b>在<b>{{last}}</b>标签<b>{{total}} {{terms}}</b>"
56
+ course_search_results: "课程<b>%{first}} -</b>在<b>%{last}} %{total}}</b>搜索<b>%{terms}</b>"
57
+ course_tag_results: "课程<b>%{first}} -</b>在<b>%{last}}</b>标签<b>%{total}} %{terms}</b>"
58
58
  courses_tag_cloud_label: "使用标签浏览课程<a href=\"/resources\">[浏览所有资源]</a>"
59
59
  default_language: 语言
60
60
  demo: 演示
@@ -66,21 +66,21 @@ zh:
66
66
  discover_feed_message: 寻找关于您所提供的信息。请稍候。
67
67
  display_address: 显示地址
68
68
  display_url: 要显示的网址:
69
- download_opml: "下载OPML文件的{{terms}}"
69
+ download_opml: "下载OPML文件的%{terms}"
70
70
  edit_aggregation: 编辑聚合
71
- edit_aggregation_title: "编辑{{title}}"
71
+ edit_aggregation_title: "编辑%{title}"
72
72
  entries_count: 参赛作品
73
- entry_commment_contents: "评论{{resource}}"
74
- explore: "搜寻{{topic}}"
73
+ entry_commment_contents: "评论%{resource}"
74
+ explore: "搜寻%{topic}"
75
75
  facebook: 脸谱
76
76
  facebook_instructions: "在我的链接页面,右键点击&#39;我的链接,然后复制该链接。我们会自动包括地位,链接和说明。"
77
- facebook_link: "你可以找到你的Facebook我的链接页面上的网址。 {{link}},然后点击&#39;我的链接&#39;"
77
+ facebook_link: "你可以找到你的Facebook我的链接页面上的网址。 %{link},然后点击&#39;我的链接&#39;"
78
78
  facebook_notes: Facebook的注释
79
79
  facebook_notifications: Facebook的通知
80
80
  facebook_prompt: 您的Facebook我的链接网址
81
81
  facebook_shares: Facebook的共享链接
82
82
  failed_harvests: 失败的收成
83
- failed_last_request: "失败的最后一个请求:{{error}}"
83
+ failed_last_request: "失败的最后一个请求:%{error}"
84
84
  feed: 喂养
85
85
  feed_banned_message: 饲料被取缔。
86
86
  feed_display_address: 饲料网址
@@ -97,7 +97,7 @@ zh:
97
97
  finding_topics: 查阅有关的故事...
98
98
  for: 为了
99
99
  friendfeed_prompt: "的FriendFeed RSS网址"
100
- friendfeed_rss: "您可以在您的{{link}}.底部您的网址"
100
+ friendfeed_rss: "您可以在您的%{link}.底部您的网址"
101
101
  generate_new_topic: 生成一个新课题
102
102
  generating_topic_message: 搜索。这可能需要1分钟左右....
103
103
  get_recommendations: 获得建议
@@ -110,16 +110,16 @@ zh:
110
110
  hide: 隐藏
111
111
  identity_feed_removed: 删除服务
112
112
  identity_feeds: 身份求职
113
- import_service: "进口{{service}}"
113
+ import_service: "进口%{service}"
114
114
  language_not_supported: 所要求的语言不支持
115
115
  latest_aggregations: 最新的聚合
116
116
  linkedin_prompt: LinkedIn公开个人资料的网址
117
- linkedin_rss: "您可以在您的{{link}}.底部您的网址"
117
+ linkedin_rss: "您可以在您的%{link}.底部您的网址"
118
118
  loading_content_image: "“%=吨(&#39;muck.services.loading_image&#39;)%”"
119
119
  loading_image: 加载图像
120
120
  loading_message: 载入中...
121
121
  login: 注册
122
- login_or_signup_prompt: "{{signup}}{{login}}进行讨论和分享资源。"
122
+ login_or_signup_prompt: "%{signup}}或%{login}进行讨论和分享资源。"
123
123
  login_to_comment: 登录以添加评论
124
124
  metadata: 元数据
125
125
  metadata_prefix: 元数据前缀
@@ -127,9 +127,9 @@ zh:
127
127
  my_services: 我的服务
128
128
  narrow_further: 进一步缩小结果
129
129
  netflix_prompt: Netflix的队列RSS网址
130
- netflix_rss: "你可以在你{{link}}.您的网址请注意,有几个可以用您的资讯Netflix的队列页(队列,建议书,电影评论等)。添加多达你喜欢!"
130
+ netflix_rss: "你可以在你%{link}.您的网址请注意,有几个可以用您的资讯Netflix的队列页(队列,建议书,电影评论等)。添加多达你喜欢!"
131
131
  new_aggregation: 新的聚合
132
- new_global_feed: "一种新的饲料已被添加到{{application_name}}"
132
+ new_global_feed: "一种新的饲料已被添加到%{application_name}"
133
133
  new_search: 新的搜索
134
134
  new_topic_title: 寻找一个新的课题和建立结果页。
135
135
  next: 下一个
@@ -138,10 +138,10 @@ zh:
138
138
  no_feeds_at_uri: 我们无法找到给定的URL
139
139
  no_feeds_found: 没有饲料被发现
140
140
  no_feeds_from_username: 我们无法找到给定的帐户
141
- no_hits: "您的搜索- <b>{{search}}</b> -没有任何符合<b>{{resource_type}}。</b>请尝试不同的搜索或选择不同的语言。"
141
+ no_hits: "您的搜索- <b>%{search}}</b> -没有任何符合<b>%{resource_type}。</b>请尝试不同的搜索或选择不同的语言。"
142
142
  no_recommendations: 发现任何建议。
143
- no_tagged_courses: "没有<b>课程</b>被发现与<b>{{tags}}</b>标签。 <a href='/resources'>重新开始</a>或显示<a href='/resources/tags/{{tags}}'>标记{{tags}}的所有资源</a> 。"
144
- no_tagged_resources: "没有<b>资源</b>被发现与<b>{{tags}}</b>标签。 <a href='/resources'>重新开始</a> 。"
143
+ no_tagged_courses: "没有<b>课程</b>被发现与<b>%{tags}}</b>标签。 <a href='/resources'>重新开始</a>或显示<a href='/resources/tags/%{tags}}'>标记%{tags}的所有资源</a> 。"
144
+ no_tagged_resources: "没有<b>资源</b>被发现与<b>%{tags}</b>标签。 <a href='/resources'>重新开始</a> 。"
145
145
  no_tags: 还没有标签可用
146
146
  no_terms_error: 请指定一个术语或术语清单。
147
147
  oai_endpoint_successfully_created: 成功将醪河终点
@@ -149,8 +149,8 @@ zh:
149
149
  of: 的
150
150
  ok: 行
151
151
  only_courses: 只有课程
152
- opml_feeds_for: "供稿{{terms}}"
153
- opml_generated: "供稿{{terms}}"
152
+ opml_feeds_for: "供稿%{terms}"
153
+ opml_generated: "供稿%{terms}"
154
154
  personal_recommendations: 建议
155
155
  photos: 照片
156
156
  please_specify_url: 请指定URL
@@ -171,8 +171,8 @@ zh:
171
171
  repository: 元数据
172
172
  repository_short_title: 仓库简称:
173
173
  repository_title: 库标题:
174
- resource_search_results: "资源<b>{{first}} -</b>在<b>{{last}} {{total}}</b>搜索<b>{{terms}}</b>"
175
- resource_tag_results: "资源<b>{{first}} -</b>在<b>{{last}}</b>标签<b>{{total}} {{terms}}</b>"
174
+ resource_search_results: "资源<b>%{first}} -</b>在<b>%{last}} %{total}}</b>搜索<b>%{terms}</b>"
175
+ resource_tag_results: "资源<b>%{first}} -</b>在<b>%{last}}</b>标签<b>%{total}} %{terms}</b>"
176
176
  resources_tag_cloud_label: "使用标签浏览资源<a href=\"/resources?grain_size=course\">[浏览只有课程]</a>"
177
177
  results: 结果
178
178
  rss: 的RSS
@@ -187,8 +187,8 @@ zh:
187
187
  searching_for_feed: 搜索供稿...
188
188
  select_feeds_prompt: 选择供稿您想补充:
189
189
  select_service_prompt: 请选择服务
190
- service_feed_name: "{{term}}{{service}}"
191
- service_username: "{{service}}用户名"
190
+ service_feed_name: "%{term}}的%{service}"
191
+ service_username: "%{service}用户名"
192
192
  setup_aggregation: 安装聚合
193
193
  share: 共享
194
194
  short_title: 简称:
@@ -196,21 +196,21 @@ zh:
196
196
  show_tagged_courses: 只显示课程
197
197
  show_tagged_resources: 显示任何类型的资源
198
198
  signup: 注册
199
- signup_to_save_aggreation: "{{login}}{{signup}}保存的搜索结果"
199
+ signup_to_save_aggreation: "%{login}}或%{signup}保存的搜索结果"
200
200
  spinner_image: 轮候形象
201
201
  start_over: 重新开始
202
202
  status: 身份
203
203
  submitting_feed_message: 提交您的供稿...
204
- successfully_added_uri_feed: "成功将{{uri}}"
205
- successfully_added_username_feed: "成功将{{service}}"
204
+ successfully_added_uri_feed: "成功将%{uri}"
205
+ successfully_added_username_feed: "成功将%{service}"
206
206
  tags: 标签
207
207
  terms_instructions: 新增许多标签或短语,你想。分隔每一个逗号。即食品,食谱,吃最好的地方,有机
208
208
  title: 标题
209
- topic_feeds_for: "供稿{{terms}}"
210
- topic_generated: "结果`{{terms}}`."
209
+ topic_feeds_for: "供稿%{terms}"
210
+ topic_generated: "结果`%{terms}`."
211
211
  type_of_metadata: 元数据类型:
212
212
  uri: 网址
213
- url_not_in_index: "在<a href='{{uri}}'>您要求的资源提出建议</a>并没有被索引。请新增一个存放设施,为资源的元数据,将其添加到索引中。"
213
+ url_not_in_index: "在<a href='%{uri}'>您要求的资源提出建议</a>并没有被索引。请新增一个存放设施,为资源的元数据,将其添加到索引中。"
214
214
  validate_feed: 马克饲料有效
215
215
  videos: 视频
216
216
  visit: 访问
@@ -0,0 +1,73 @@
1
+ Rails.application.routes.draw do
2
+ # admin
3
+ namespace :admin do
4
+ resources :feeds, :controller => 'muck/feeds'
5
+ resources :oai_endpoints, :controller => 'muck/oai_endpoints'
6
+ end
7
+
8
+ match '/feed_list' => 'muck/feeds#selection_list'
9
+
10
+ match 'resources/search' => 'muck/entries#search'
11
+ match 'resources/search.:format' => 'muck/entries#search'
12
+ match 'search/results.:format' => 'muck/entries#search'
13
+ match 'resources/tags/*tags' => 'muck/entries#browse_by_tags'
14
+ resources :resources, :controller => 'muck/entries'
15
+
16
+ match 'r' => 'muck/entries#track_clicks'
17
+ match 'collections' => 'muck/entries#collections'
18
+
19
+ resources :visits, :controller => 'muck/visits'
20
+ resources :feed_previews, :controller => 'muck/feed_previews' do
21
+ collection do
22
+ post :select_feeds
23
+ end
24
+ end
25
+
26
+ resources :entries, :controller => 'muck/entries' do
27
+ collection do
28
+ get :search
29
+ end
30
+ # have to map into the muck/comments controller or rails can't find the comments
31
+ resources :comments, :controller => 'muck/comments'
32
+ end
33
+
34
+ resources :oai_endpoints, :controller => 'muck/oai_endpoints' do
35
+ resources :feeds
36
+ end
37
+
38
+ resources :feeds, :controller => 'muck/feeds' do
39
+ collection do
40
+ get :new_extended
41
+ get :new_oai_rss
42
+ end
43
+ resources :entries
44
+ end
45
+
46
+ match 'recommendations/real_time.:format' => 'muck/recommendations#real_time'
47
+ match 'recommendations/get_button' => 'muck/recommendations#get_button'
48
+ match 'recommendations/greasemonkey.user.js' => 'muck/recommendations#greasemonkey_script'
49
+ resources :recommendations, :controller => 'muck/recommendations'
50
+
51
+ resources :identity_feeds, :controller => 'muck/identity_feeds'
52
+ resources :aggregations, :controller => 'muck/aggregations' do
53
+ collection do
54
+ get :preview
55
+ end
56
+ member do
57
+ get :rss_discovery
58
+ end
59
+ end
60
+
61
+ resources :aggregation_feeds, :controller => 'muck/aggregation_feeds'
62
+
63
+ resources :topics, :controller => 'muck/topics' do
64
+ member do
65
+ get :rss_discovery
66
+ get :photos
67
+ get :videos
68
+ end
69
+ end
70
+
71
+ #match 'topics/*terms' => 'muck/topics#show'
72
+
73
+ end
@@ -0,0 +1,24 @@
1
+ require 'nokogiri'
2
+ require 'httparty'
3
+ require 'river'
4
+ require 'feedbag'
5
+ require 'feedzirra'
6
+
7
+ require 'acts_as_solr'
8
+
9
+ require 'muck-services/config'
10
+
11
+ require 'muck-services/muck_custom_form_builder'
12
+ require 'muck-services/services'
13
+ require 'muck-services/languages'
14
+ require 'muck-services/exceptions'
15
+
16
+ require 'muck-services/models/aggregation_owner'
17
+ require 'muck-services/models/feed_owner'
18
+ require 'muck-services/models/feed_parent'
19
+ require 'muck-services/models/recommendation'
20
+ require 'muck-services/models/recommendation_owner'
21
+ require 'muck-services/models/services_comment'
22
+ require 'muck-services/models/services_share'
23
+
24
+ require 'muck-services/engine'
@@ -0,0 +1,36 @@
1
+ require 'ostruct'
2
+
3
+ module MuckServices
4
+
5
+ def self.configuration
6
+ # In case the user doesn't setup a configure block we can always return default settings:
7
+ @configuration ||= Configuration.new
8
+ end
9
+
10
+ def self.configure
11
+ self.configuration ||= Configuration.new
12
+ yield(configuration)
13
+ end
14
+
15
+ class Configuration
16
+
17
+ attr_accessor :enable_services_shares
18
+ attr_accessor :inform_admin_of_global_feed
19
+ attr_accessor :enable_services_comments
20
+ attr_accessor :render_feeds_client_side
21
+ attr_accessor :show_google_search # Determines whether or not a google search is displayed on the topic page
22
+ attr_accessor :combine_feeds_on_server # Combines feeds loaded on the server
23
+ attr_accessor :load_feeds_on_server # Determines whether feeds on a topic page are loaded on the server or the client. Loading on the server can take a while
24
+
25
+ def initialize
26
+ self.enable_services_shares = true
27
+ self.inform_admin_of_global_feed = true
28
+ self.enable_services_comments = true
29
+ self.render_feeds_client_side = true
30
+ self.show_google_search = true
31
+ self.combine_feeds_on_server = false
32
+ self.load_feeds_on_server = false
33
+ end
34
+
35
+ end
36
+ end
@@ -0,0 +1,32 @@
1
+ require 'muck-services'
2
+ require 'rails'
3
+
4
+ module MuckServices
5
+ class Engine < ::Rails::Engine
6
+
7
+ def muck_name
8
+ 'muck-services'
9
+ end
10
+
11
+ initializer 'muck-services.helpers' do |app|
12
+ ActiveSupport.on_load(:action_view) do
13
+ include MuckServicesHelper
14
+
15
+ include MuckServicesFeedsHelper
16
+ include MuckServicesServiceHelper
17
+ include MuckServicesAggregationsHelper
18
+ end
19
+ end
20
+
21
+ initializer 'muck-services.i18n' do |app|
22
+ ActiveSupport.on_load(:i18n) do
23
+ I18n.load_path += Dir[ File.join(File.dirname(__FILE__), '..', '..', 'config', 'locales', '*.{rb,yml}') ]
24
+ end
25
+ end
26
+
27
+ initializer 'muck-services.form' do
28
+ MuckEngine::FormBuilder.send :include, MuckServicesCustomFormBuilder
29
+ end
30
+
31
+ end
32
+ end
@@ -0,0 +1,17 @@
1
+ # include MuckServices::Models::MuckAggregationOwner
2
+ module MuckServices
3
+ module Models
4
+ module MuckAggregationOwner
5
+ # Adds identity aggregations to a given object. The aggregations
6
+ # attached to the object in this way are then assumed to be produced by the object.
7
+ # For example, if a user writes a blog the blog could be associated with the user in this way.
8
+
9
+ extend ActiveSupport::Concern
10
+
11
+ included do
12
+ has_many :aggregations, :as => :ownable
13
+ end
14
+
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,24 @@
1
+ # include MuckServices::Models::MuckFeedOwner
2
+ module MuckServices
3
+ module Models
4
+ module MuckFeedOwner
5
+
6
+ # Adds identity feeds to a given object. The feeds
7
+ # attached to the object in this way are then assumed to be produced by the object.
8
+ # For example, if a user writes a blog the blog could be associated with the user in this way.
9
+
10
+ extend ActiveSupport::Concern
11
+
12
+ included do
13
+ has_many :identity_feeds, :as => :ownable
14
+ has_many :own_feeds, :through => :identity_feeds, :source => :feed, :order => 'created_at desc'
15
+ end
16
+
17
+ # Override this method to define whether or not a user can add feeds.
18
+ def can_add_feeds?
19
+ false
20
+ end
21
+
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,18 @@
1
+ # include MuckServices::Models::MuckFeedParent
2
+ module MuckServices
3
+ module Models
4
+ module MuckFeedParent
5
+ # Gives the class it is called on access to feeds.
6
+ # Retrieve feeds via object.feeds. ie @user.feeds.
7
+ # This is used to indicate which feeds a user would like to have access to.
8
+
9
+ extend ActiveSupport::Concern
10
+
11
+ included do
12
+ has_many :feed_parents, :as => :ownable
13
+ has_many :feeds, :through => :feed_parents, :order => 'created_at desc'
14
+ end
15
+
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,14 @@
1
+ # include MuckServices::Models::MuckRecommendation
2
+ module MuckServices
3
+ module Models
4
+ module MuckRecommendation
5
+
6
+ extend ActiveSupport::Concern
7
+
8
+ included do
9
+ has_many :recommended_to, :as => :destination, :class_name => 'PersonalRecommendation'
10
+ end
11
+
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,15 @@
1
+ # include MuckServices::Models::MuckRecommendationOwner
2
+ module MuckServices
3
+ module Models
4
+ module MuckRecommendationOwner
5
+
6
+ # gives the class it is called on personalized recommendations
7
+ extend ActiveSupport::Concern
8
+
9
+ included do
10
+ has_many :personal_recommendations, :as => :personal_recommendable
11
+ end
12
+
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,24 @@
1
+ # include MuckServices::Models::MuckServicesComment
2
+ module MuckServices
3
+ module Models
4
+ module MuckServicesComment
5
+
6
+ extend ActiveSupport::Concern
7
+
8
+ def after_create
9
+ if self.commentable.is_a?(Entry)
10
+ return if self.user.blank?
11
+ # Create a new entry_comment activity. Attach the activity to the entry via self.commentable
12
+ # Include all users in the discussion ie all users from all comments attached to self.commentable
13
+ feed_to = []
14
+ feed_to << self.user.feed_to
15
+ self.commentable.comments.each do |c|
16
+ feed_to << c.user if !c.user.blank?
17
+ end
18
+ add_activity(feed_to, self.user, self, 'entry_comment', '', '', nil, self.commentable)
19
+ end
20
+ end
21
+
22
+ end
23
+ end
24
+ end