blacklight-hierarchy 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (250) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +4 -4
  3. data/Rakefile +1 -3
  4. data/app/helpers/blacklight/hierarchy_helper.rb +44 -50
  5. data/lib/blacklight/hierarchy/version.rb +1 -1
  6. data/spec/features/basic_spec.rb +48 -26
  7. data/spec/internal/Gemfile +19 -12
  8. data/spec/internal/Gemfile.lock +117 -80
  9. data/spec/internal/app/assets/javascripts/application.js +2 -2
  10. data/spec/internal/app/assets/stylesheets/application.css +1 -1
  11. data/spec/internal/app/controllers/application_controller.rb +9 -0
  12. data/spec/internal/app/controllers/catalog_controller.rb +2 -3
  13. data/spec/internal/app/models/search_builder.rb +3 -0
  14. data/spec/internal/app/models/solr_document.rb +21 -0
  15. data/spec/internal/bin/rails +1 -1
  16. data/spec/internal/bin/setup +29 -0
  17. data/spec/internal/config.ru +1 -1
  18. data/spec/internal/config/application.rb +3 -0
  19. data/spec/internal/config/{solr.yml → blacklight.yml} +6 -3
  20. data/spec/internal/config/boot.rb +1 -2
  21. data/spec/internal/config/database.yml +25 -0
  22. data/spec/internal/config/environments/development.rb +4 -0
  23. data/spec/internal/config/environments/production.rb +14 -17
  24. data/spec/internal/config/environments/test.rb +5 -2
  25. data/spec/internal/config/initializers/assets.rb +3 -0
  26. data/spec/internal/config/initializers/blacklight_initializer.rb +1 -1
  27. data/spec/internal/config/initializers/cookies_serializer.rb +1 -1
  28. data/spec/internal/config/routes.rb +58 -0
  29. data/spec/internal/config/secrets.yml +2 -2
  30. data/spec/internal/db/development.sqlite3 +0 -0
  31. data/spec/internal/db/migrate/{20141111225552_create_searches.blacklight.rb → 20150401202514_create_searches.blacklight.rb} +0 -0
  32. data/spec/internal/db/migrate/{20141111225553_create_bookmarks.blacklight.rb → 20150401202515_create_bookmarks.blacklight.rb} +0 -0
  33. data/spec/internal/db/migrate/{20141111225554_add_polymorphic_type_to_bookmarks.blacklight.rb → 20150401202516_add_polymorphic_type_to_bookmarks.blacklight.rb} +0 -0
  34. data/spec/internal/db/schema.rb +38 -0
  35. data/spec/internal/db/test.sqlite3 +0 -0
  36. data/spec/internal/log/development.log +23 -21
  37. data/spec/internal/log/test.log +100 -50
  38. data/spec/internal/public/favicon.ico +0 -0
  39. data/spec/internal/tmp/cache/assets/test/sass/{359f517ba1ab8c953bbb6dc91543c3de140373f6 → 445c993f9badd85eed8054a0d95fd224ae71a349}/_alerts.scssc +0 -0
  40. data/spec/internal/tmp/cache/assets/test/sass/{359f517ba1ab8c953bbb6dc91543c3de140373f6 → 445c993f9badd85eed8054a0d95fd224ae71a349}/_badges.scssc +0 -0
  41. data/spec/internal/tmp/cache/assets/test/sass/{359f517ba1ab8c953bbb6dc91543c3de140373f6 → 445c993f9badd85eed8054a0d95fd224ae71a349}/_breadcrumbs.scssc +0 -0
  42. data/spec/internal/tmp/cache/assets/test/sass/445c993f9badd85eed8054a0d95fd224ae71a349/_button-groups.scssc +0 -0
  43. data/spec/internal/tmp/cache/assets/test/sass/445c993f9badd85eed8054a0d95fd224ae71a349/_buttons.scssc +0 -0
  44. data/spec/internal/tmp/cache/assets/test/sass/445c993f9badd85eed8054a0d95fd224ae71a349/_carousel.scssc +0 -0
  45. data/spec/internal/tmp/cache/assets/test/sass/{359f517ba1ab8c953bbb6dc91543c3de140373f6 → 445c993f9badd85eed8054a0d95fd224ae71a349}/_close.scssc +0 -0
  46. data/spec/internal/tmp/cache/assets/test/sass/{359f517ba1ab8c953bbb6dc91543c3de140373f6 → 445c993f9badd85eed8054a0d95fd224ae71a349}/_code.scssc +0 -0
  47. data/spec/internal/tmp/cache/assets/test/sass/{359f517ba1ab8c953bbb6dc91543c3de140373f6 → 445c993f9badd85eed8054a0d95fd224ae71a349}/_component-animations.scssc +0 -0
  48. data/spec/internal/tmp/cache/assets/test/sass/{359f517ba1ab8c953bbb6dc91543c3de140373f6 → 445c993f9badd85eed8054a0d95fd224ae71a349}/_dropdowns.scssc +0 -0
  49. data/spec/internal/tmp/cache/assets/test/sass/445c993f9badd85eed8054a0d95fd224ae71a349/_forms.scssc +0 -0
  50. data/spec/internal/tmp/cache/assets/test/sass/445c993f9badd85eed8054a0d95fd224ae71a349/_glyphicons.scssc +0 -0
  51. data/spec/internal/tmp/cache/assets/test/sass/{359f517ba1ab8c953bbb6dc91543c3de140373f6 → 445c993f9badd85eed8054a0d95fd224ae71a349}/_grid.scssc +0 -0
  52. data/spec/internal/tmp/cache/assets/test/sass/{359f517ba1ab8c953bbb6dc91543c3de140373f6 → 445c993f9badd85eed8054a0d95fd224ae71a349}/_input-groups.scssc +0 -0
  53. data/spec/internal/tmp/cache/assets/test/sass/445c993f9badd85eed8054a0d95fd224ae71a349/_jumbotron.scssc +0 -0
  54. data/spec/internal/tmp/cache/assets/test/sass/{359f517ba1ab8c953bbb6dc91543c3de140373f6 → 445c993f9badd85eed8054a0d95fd224ae71a349}/_labels.scssc +0 -0
  55. data/spec/internal/tmp/cache/assets/test/sass/{359f517ba1ab8c953bbb6dc91543c3de140373f6 → 445c993f9badd85eed8054a0d95fd224ae71a349}/_list-group.scssc +0 -0
  56. data/spec/internal/tmp/cache/assets/test/sass/445c993f9badd85eed8054a0d95fd224ae71a349/_media.scssc +0 -0
  57. data/spec/internal/tmp/cache/assets/test/sass/{359f517ba1ab8c953bbb6dc91543c3de140373f6 → 445c993f9badd85eed8054a0d95fd224ae71a349}/_mixins.scssc +0 -0
  58. data/spec/internal/tmp/cache/assets/test/sass/{359f517ba1ab8c953bbb6dc91543c3de140373f6 → 445c993f9badd85eed8054a0d95fd224ae71a349}/_modals.scssc +0 -0
  59. data/spec/internal/tmp/cache/assets/test/sass/{359f517ba1ab8c953bbb6dc91543c3de140373f6 → 445c993f9badd85eed8054a0d95fd224ae71a349}/_navbar.scssc +0 -0
  60. data/spec/internal/tmp/cache/assets/test/sass/{359f517ba1ab8c953bbb6dc91543c3de140373f6 → 445c993f9badd85eed8054a0d95fd224ae71a349}/_navs.scssc +0 -0
  61. data/spec/internal/tmp/cache/assets/test/sass/{359f517ba1ab8c953bbb6dc91543c3de140373f6 → 445c993f9badd85eed8054a0d95fd224ae71a349}/_normalize.scssc +0 -0
  62. data/spec/internal/tmp/cache/assets/test/sass/{359f517ba1ab8c953bbb6dc91543c3de140373f6 → 445c993f9badd85eed8054a0d95fd224ae71a349}/_pager.scssc +0 -0
  63. data/spec/internal/tmp/cache/assets/test/sass/{359f517ba1ab8c953bbb6dc91543c3de140373f6 → 445c993f9badd85eed8054a0d95fd224ae71a349}/_pagination.scssc +0 -0
  64. data/spec/internal/tmp/cache/assets/test/sass/445c993f9badd85eed8054a0d95fd224ae71a349/_panels.scssc +0 -0
  65. data/spec/internal/tmp/cache/assets/test/sass/445c993f9badd85eed8054a0d95fd224ae71a349/_popovers.scssc +0 -0
  66. data/spec/internal/tmp/cache/assets/test/sass/445c993f9badd85eed8054a0d95fd224ae71a349/_print.scssc +0 -0
  67. data/spec/internal/tmp/cache/assets/test/sass/445c993f9badd85eed8054a0d95fd224ae71a349/_progress-bars.scssc +0 -0
  68. data/spec/internal/tmp/cache/assets/test/sass/445c993f9badd85eed8054a0d95fd224ae71a349/_responsive-embed.scssc +0 -0
  69. data/spec/internal/tmp/cache/assets/test/sass/{359f517ba1ab8c953bbb6dc91543c3de140373f6 → 445c993f9badd85eed8054a0d95fd224ae71a349}/_responsive-utilities.scssc +0 -0
  70. data/spec/internal/tmp/cache/assets/test/sass/{359f517ba1ab8c953bbb6dc91543c3de140373f6 → 445c993f9badd85eed8054a0d95fd224ae71a349}/_scaffolding.scssc +0 -0
  71. data/spec/internal/tmp/cache/assets/test/sass/445c993f9badd85eed8054a0d95fd224ae71a349/_tables.scssc +0 -0
  72. data/spec/internal/tmp/cache/assets/test/sass/{359f517ba1ab8c953bbb6dc91543c3de140373f6 → 445c993f9badd85eed8054a0d95fd224ae71a349}/_thumbnails.scssc +0 -0
  73. data/spec/internal/tmp/cache/assets/test/sass/445c993f9badd85eed8054a0d95fd224ae71a349/_tooltip.scssc +0 -0
  74. data/spec/internal/tmp/cache/assets/test/sass/{359f517ba1ab8c953bbb6dc91543c3de140373f6 → 445c993f9badd85eed8054a0d95fd224ae71a349}/_type.scssc +0 -0
  75. data/spec/internal/tmp/cache/assets/test/sass/{359f517ba1ab8c953bbb6dc91543c3de140373f6 → 445c993f9badd85eed8054a0d95fd224ae71a349}/_utilities.scssc +0 -0
  76. data/spec/internal/tmp/cache/assets/test/sass/445c993f9badd85eed8054a0d95fd224ae71a349/_variables.scssc +0 -0
  77. data/spec/internal/tmp/cache/assets/test/sass/{359f517ba1ab8c953bbb6dc91543c3de140373f6 → 445c993f9badd85eed8054a0d95fd224ae71a349}/_wells.scssc +0 -0
  78. data/spec/internal/tmp/cache/assets/test/sass/{6d89983d04228b19fffeb0ffc236c10e9a0e1ee2 → 51fd2eea4473e30fb7c6f38005b3e0e68e0051b7}/_bootstrap-sprockets.scssc +0 -0
  79. data/spec/internal/tmp/cache/assets/test/sass/{6d89983d04228b19fffeb0ffc236c10e9a0e1ee2/bootstrap.scssc → 51fd2eea4473e30fb7c6f38005b3e0e68e0051b7/_bootstrap.scssc} +0 -0
  80. data/spec/internal/tmp/cache/assets/test/sass/{8d5abc2e34d47d479bbaf9a94007cb1fbbb587fc/_blacklight_base.css.scssc → 57179add66901e7071e270eb3dcbffbd94509626/_blacklight_base.scssc} +0 -0
  81. data/spec/internal/tmp/cache/assets/test/sass/{8d5abc2e34d47d479bbaf9a94007cb1fbbb587fc/_bookmark.css.scssc → 57179add66901e7071e270eb3dcbffbd94509626/_bookmark.scssc} +0 -0
  82. data/spec/internal/tmp/cache/assets/test/sass/57179add66901e7071e270eb3dcbffbd94509626/_catalog.scssc +0 -0
  83. data/spec/internal/tmp/cache/assets/test/sass/{8d5abc2e34d47d479bbaf9a94007cb1fbbb587fc/_facets.css.scssc → 57179add66901e7071e270eb3dcbffbd94509626/_facets.scssc} +0 -0
  84. data/spec/internal/tmp/cache/assets/test/sass/{8d5abc2e34d47d479bbaf9a94007cb1fbbb587fc/_group.css.scssc → 57179add66901e7071e270eb3dcbffbd94509626/_group.scssc} +0 -0
  85. data/spec/internal/tmp/cache/assets/test/sass/{8d5abc2e34d47d479bbaf9a94007cb1fbbb587fc/_header.css.scssc → 57179add66901e7071e270eb3dcbffbd94509626/_header.scssc} +0 -0
  86. data/spec/internal/tmp/cache/assets/test/sass/57179add66901e7071e270eb3dcbffbd94509626/_layout.scssc +0 -0
  87. data/spec/internal/tmp/cache/assets/test/sass/{8d5abc2e34d47d479bbaf9a94007cb1fbbb587fc/_modal.css.scssc → 57179add66901e7071e270eb3dcbffbd94509626/_modal.scssc} +0 -0
  88. data/spec/internal/tmp/cache/assets/test/sass/57179add66901e7071e270eb3dcbffbd94509626/_search_history.scssc +0 -0
  89. data/spec/internal/tmp/cache/assets/test/sass/{8d5abc2e34d47d479bbaf9a94007cb1fbbb587fc/blacklight.css.scssc → 57179add66901e7071e270eb3dcbffbd94509626/blacklight.scssc} +0 -0
  90. data/spec/internal/tmp/cache/assets/test/sass/{8d5abc2e34d47d479bbaf9a94007cb1fbbb587fc/blacklight_defaults.css.scssc → 57179add66901e7071e270eb3dcbffbd94509626/blacklight_defaults.scssc} +0 -0
  91. data/spec/internal/tmp/cache/assets/test/sass/{68dcee9be34904261460cf4a0e994beb05701732 → 640fe784801b6579b3cc7c5076d10c17a3d1fa15}/blacklight.css.scssc +0 -0
  92. data/spec/internal/tmp/cache/assets/test/sass/{68dcee9be34904261460cf4a0e994beb05701732 → 640fe784801b6579b3cc7c5076d10c17a3d1fa15}/blacklight_hierarchy.css.scssc +0 -0
  93. data/spec/internal/tmp/cache/assets/test/sass/{c3fd5239c31441bb56d49be4a217da70f39ecc0a → 66d46d89a6f50778e9d7c47153c7e4120d2e7ab9}/hierarchy.css.scssc +0 -0
  94. data/spec/internal/tmp/cache/assets/test/sass/{cb83b9c8b85bb3982652db91c3d946cb936820a9 → 71aaf5883ae684c0f08620e833c1400f6f31a6f7}/_alerts.scssc +0 -0
  95. data/spec/internal/tmp/cache/assets/test/sass/{cb83b9c8b85bb3982652db91c3d946cb936820a9 → 71aaf5883ae684c0f08620e833c1400f6f31a6f7}/_background-variant.scssc +0 -0
  96. data/spec/internal/tmp/cache/assets/test/sass/{cb83b9c8b85bb3982652db91c3d946cb936820a9 → 71aaf5883ae684c0f08620e833c1400f6f31a6f7}/_border-radius.scssc +0 -0
  97. data/spec/internal/tmp/cache/assets/test/sass/71aaf5883ae684c0f08620e833c1400f6f31a6f7/_buttons.scssc +0 -0
  98. data/spec/internal/tmp/cache/assets/test/sass/{cb83b9c8b85bb3982652db91c3d946cb936820a9 → 71aaf5883ae684c0f08620e833c1400f6f31a6f7}/_center-block.scssc +0 -0
  99. data/spec/internal/tmp/cache/assets/test/sass/{cb83b9c8b85bb3982652db91c3d946cb936820a9 → 71aaf5883ae684c0f08620e833c1400f6f31a6f7}/_clearfix.scssc +0 -0
  100. data/spec/internal/tmp/cache/assets/test/sass/71aaf5883ae684c0f08620e833c1400f6f31a6f7/_forms.scssc +0 -0
  101. data/spec/internal/tmp/cache/assets/test/sass/{cb83b9c8b85bb3982652db91c3d946cb936820a9 → 71aaf5883ae684c0f08620e833c1400f6f31a6f7}/_gradients.scssc +0 -0
  102. data/spec/internal/tmp/cache/assets/test/sass/{cb83b9c8b85bb3982652db91c3d946cb936820a9 → 71aaf5883ae684c0f08620e833c1400f6f31a6f7}/_grid-framework.scssc +0 -0
  103. data/spec/internal/tmp/cache/assets/test/sass/{cb83b9c8b85bb3982652db91c3d946cb936820a9 → 71aaf5883ae684c0f08620e833c1400f6f31a6f7}/_grid.scssc +0 -0
  104. data/spec/internal/tmp/cache/assets/test/sass/{cb83b9c8b85bb3982652db91c3d946cb936820a9 → 71aaf5883ae684c0f08620e833c1400f6f31a6f7}/_hide-text.scssc +0 -0
  105. data/spec/internal/tmp/cache/assets/test/sass/{cb83b9c8b85bb3982652db91c3d946cb936820a9 → 71aaf5883ae684c0f08620e833c1400f6f31a6f7}/_image.scssc +0 -0
  106. data/spec/internal/tmp/cache/assets/test/sass/{cb83b9c8b85bb3982652db91c3d946cb936820a9 → 71aaf5883ae684c0f08620e833c1400f6f31a6f7}/_labels.scssc +0 -0
  107. data/spec/internal/tmp/cache/assets/test/sass/{cb83b9c8b85bb3982652db91c3d946cb936820a9 → 71aaf5883ae684c0f08620e833c1400f6f31a6f7}/_list-group.scssc +0 -0
  108. data/spec/internal/tmp/cache/assets/test/sass/{cb83b9c8b85bb3982652db91c3d946cb936820a9 → 71aaf5883ae684c0f08620e833c1400f6f31a6f7}/_nav-divider.scssc +0 -0
  109. data/spec/internal/tmp/cache/assets/test/sass/{cb83b9c8b85bb3982652db91c3d946cb936820a9 → 71aaf5883ae684c0f08620e833c1400f6f31a6f7}/_nav-vertical-align.scssc +0 -0
  110. data/spec/internal/tmp/cache/assets/test/sass/{cb83b9c8b85bb3982652db91c3d946cb936820a9 → 71aaf5883ae684c0f08620e833c1400f6f31a6f7}/_opacity.scssc +0 -0
  111. data/spec/internal/tmp/cache/assets/test/sass/{cb83b9c8b85bb3982652db91c3d946cb936820a9 → 71aaf5883ae684c0f08620e833c1400f6f31a6f7}/_pagination.scssc +0 -0
  112. data/spec/internal/tmp/cache/assets/test/sass/{cb83b9c8b85bb3982652db91c3d946cb936820a9 → 71aaf5883ae684c0f08620e833c1400f6f31a6f7}/_panels.scssc +0 -0
  113. data/spec/internal/tmp/cache/assets/test/sass/{cb83b9c8b85bb3982652db91c3d946cb936820a9 → 71aaf5883ae684c0f08620e833c1400f6f31a6f7}/_progress-bar.scssc +0 -0
  114. data/spec/internal/tmp/cache/assets/test/sass/{cb83b9c8b85bb3982652db91c3d946cb936820a9 → 71aaf5883ae684c0f08620e833c1400f6f31a6f7}/_reset-filter.scssc +0 -0
  115. data/spec/internal/tmp/cache/assets/test/sass/{cb83b9c8b85bb3982652db91c3d946cb936820a9 → 71aaf5883ae684c0f08620e833c1400f6f31a6f7}/_resize.scssc +0 -0
  116. data/spec/internal/tmp/cache/assets/test/sass/{cb83b9c8b85bb3982652db91c3d946cb936820a9 → 71aaf5883ae684c0f08620e833c1400f6f31a6f7}/_responsive-visibility.scssc +0 -0
  117. data/spec/internal/tmp/cache/assets/test/sass/{cb83b9c8b85bb3982652db91c3d946cb936820a9 → 71aaf5883ae684c0f08620e833c1400f6f31a6f7}/_size.scssc +0 -0
  118. data/spec/internal/tmp/cache/assets/test/sass/{cb83b9c8b85bb3982652db91c3d946cb936820a9 → 71aaf5883ae684c0f08620e833c1400f6f31a6f7}/_tab-focus.scssc +0 -0
  119. data/spec/internal/tmp/cache/assets/test/sass/{cb83b9c8b85bb3982652db91c3d946cb936820a9 → 71aaf5883ae684c0f08620e833c1400f6f31a6f7}/_table-row.scssc +0 -0
  120. data/spec/internal/tmp/cache/assets/test/sass/{cb83b9c8b85bb3982652db91c3d946cb936820a9 → 71aaf5883ae684c0f08620e833c1400f6f31a6f7}/_text-emphasis.scssc +0 -0
  121. data/spec/internal/tmp/cache/assets/test/sass/{cb83b9c8b85bb3982652db91c3d946cb936820a9 → 71aaf5883ae684c0f08620e833c1400f6f31a6f7}/_text-overflow.scssc +0 -0
  122. data/spec/internal/tmp/cache/assets/test/sass/{cb83b9c8b85bb3982652db91c3d946cb936820a9 → 71aaf5883ae684c0f08620e833c1400f6f31a6f7}/_vendor-prefixes.scssc +0 -0
  123. data/spec/internal/tmp/cache/assets/test/sprockets/{a0d7ebce705ba4b4828c9f6792532a48 → 08609bfe1ae1902b7f1717d982e5b4a7} +0 -0
  124. data/spec/internal/tmp/cache/assets/test/sprockets/08b1239c43458e285871d83216975134 +0 -0
  125. data/spec/internal/tmp/cache/assets/test/sprockets/0b10e5cb4a9a51090f43651fbd877bee +0 -0
  126. data/spec/internal/tmp/cache/assets/test/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
  127. data/spec/internal/tmp/cache/assets/test/sprockets/{77ad53b1026d69b8468759e78b981bab → 15ef05c24f1f8ef3039f46b33ab8edcd} +0 -0
  128. data/spec/internal/tmp/cache/assets/test/sprockets/174b5a39e5091e8d7c78775e7e2070fe +0 -0
  129. data/spec/internal/tmp/cache/assets/test/sprockets/20933494402377b5a4ae573ec38089e3 +0 -0
  130. data/spec/internal/tmp/cache/assets/test/sprockets/212cef43c60c9d3e8ac8f88415b6f973 +0 -0
  131. data/spec/internal/tmp/cache/assets/test/sprockets/{5a064e6539708f214231ea360825b3c3 → 229fc8ab6865660e396cf9fd1cb39c10} +0 -0
  132. data/spec/internal/tmp/cache/assets/test/sprockets/23cb18a699ce7dbdcf465be2a7a41811 +0 -0
  133. data/spec/internal/tmp/cache/assets/test/sprockets/24614ebd6d6f61f3b5b5319379d7fa46 +0 -0
  134. data/spec/internal/tmp/cache/assets/test/sprockets/{74a8e8cd6ec72e44e546b4155ef6b683 → 274904ae6b05d982033ae9d6d5dbe862} +0 -0
  135. data/spec/internal/tmp/cache/assets/test/sprockets/2bfec80b4e6c87e27f88b9ee5d0bb41b +0 -0
  136. data/spec/internal/tmp/cache/assets/test/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
  137. data/spec/internal/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
  138. data/spec/internal/tmp/cache/assets/test/sprockets/368b41619b173f4a9f545b6da21f928f +0 -0
  139. data/spec/internal/tmp/cache/assets/test/sprockets/{df45f6613abfb235029866b5a1624150 → 3f47167a7fb0c564a3e4822aa5a5dbdd} +0 -0
  140. data/spec/internal/tmp/cache/assets/test/sprockets/{e12a325f7b89f9608f1ce67d0c8fc01c → 489789028348d4668912dadfced5664c} +0 -0
  141. data/spec/internal/tmp/cache/assets/test/sprockets/48c6aa23a63fcb0eb2abfd9851ee34ea +0 -0
  142. data/spec/internal/tmp/cache/assets/test/sprockets/59747ade9c2bc4b15b9a5def26f510f9 +0 -0
  143. data/spec/internal/tmp/cache/assets/test/sprockets/{64c2e27e6730eb8be8e4037688652a29 → 5c287dfee4faa9e30f836a57d9230e5c} +0 -0
  144. data/spec/internal/tmp/cache/assets/test/sprockets/5fa08d97b81ec0ae7f19f95006c5fc8c +0 -0
  145. data/spec/internal/tmp/cache/assets/test/sprockets/{dd9f78a7dfe678c27939f19abf53d525 → 6b2bccdce0b8a30bb633cfe11539e914} +0 -0
  146. data/spec/internal/tmp/cache/assets/test/sprockets/{ac9e614f7d87003b8ef8fb55fab81db3 → 6b91422aae1939a2f363892dfc4616df} +0 -0
  147. data/spec/internal/tmp/cache/assets/test/sprockets/6cb2d81cef71f0c48fc9389b6afe01c5 +0 -0
  148. data/spec/internal/tmp/cache/assets/test/sprockets/{cb6b2f5142c44b5c536e4f9974853c6a → 6e78d84dc664ac4afa16415e2872cb60} +0 -0
  149. data/spec/internal/tmp/cache/assets/test/sprockets/701b5a3b8142388e7371a6801cc44623 +0 -0
  150. data/spec/internal/tmp/cache/assets/test/sprockets/{4a2c3a8e36587ca53b2b7e290c89b4b1 → 73232ffd4ba56c978aee3fb5ab28c5d2} +0 -0
  151. data/spec/internal/tmp/cache/assets/test/sprockets/83d2f436240b85f626ec119f7c9a5272 +0 -0
  152. data/spec/internal/tmp/cache/assets/test/sprockets/8625349bd7300eb9c9103e0155e3a8c3 +0 -0
  153. data/spec/internal/tmp/cache/assets/test/sprockets/86492dd478a290aac1a6e1beaac746ea +0 -0
  154. data/spec/internal/tmp/cache/assets/test/sprockets/883e4c9f2e7b94cece65d21ba64eac7c +0 -0
  155. data/spec/internal/tmp/cache/assets/test/sprockets/8e5a76c17a713f0b722cf054454f1ecc +0 -0
  156. data/spec/internal/tmp/cache/assets/test/sprockets/9125893025f624d16a8d8e052d0dbfcd +0 -0
  157. data/spec/internal/tmp/cache/assets/test/sprockets/93aaa9231a32901266b05632f3d35ecd +0 -0
  158. data/spec/internal/tmp/cache/assets/test/sprockets/{ea3067540ee9514e70e592a251d0ea14 → 98d74d6877c75d0df7a07d751af1252b} +0 -0
  159. data/spec/internal/tmp/cache/assets/test/sprockets/9902d40f2d5719439375b71e9f92ccd1 +0 -0
  160. data/spec/internal/tmp/cache/assets/test/sprockets/9e17b7435224b4d2ca900240c32c195d +0 -0
  161. data/spec/internal/tmp/cache/assets/test/sprockets/{2e749ad3910712f029c8f9c22e87806b → a015684db07b197ed1856307abd82f42} +0 -0
  162. data/spec/internal/tmp/cache/assets/test/sprockets/a05e957ff61060c057debd8dc7b6ef3b +0 -0
  163. data/spec/internal/tmp/cache/assets/test/sprockets/{6616d72225dab9428ddccc5930a08831 → a08976ed55e815f763dfcb22a7376ed7} +0 -0
  164. data/spec/internal/tmp/cache/assets/test/sprockets/a432d9a6dad3588381eee9808663e060 +0 -0
  165. data/spec/internal/tmp/cache/assets/test/sprockets/a7cfb2dc6e31842e16886d8fe5e565a6 +0 -0
  166. data/spec/internal/tmp/cache/assets/test/sprockets/{cff8e998f306908d16c122c3029e5b42 → a83ecb9fd5ef9f4cd480816fd1991c63} +0 -0
  167. data/spec/internal/tmp/cache/assets/test/sprockets/ad4a54c43c2a4c3874bfde1c9f08c248 +0 -0
  168. data/spec/internal/tmp/cache/assets/test/sprockets/b7b953d2bbbc2ed0afa90bfd470970bf +0 -0
  169. data/spec/internal/tmp/cache/assets/test/sprockets/b83ff1ff283372c8b643d490698ac5f2 +0 -0
  170. data/spec/internal/tmp/cache/assets/test/sprockets/b9cf057f4c9bbc89f7f1666bb9bc51ed +0 -0
  171. data/spec/internal/tmp/cache/assets/test/sprockets/b9d34fb62a7133c9e354e15be8b97fd2 +0 -0
  172. data/spec/internal/tmp/cache/assets/test/sprockets/{a43e23596cf407d9ac7eb883da3a9202 → bb0e475cafd86ebdab11f01efe623dbe} +0 -0
  173. data/spec/internal/tmp/cache/assets/test/sprockets/beafdda6cada3ea47ad16bddbd74147e +0 -0
  174. data/spec/internal/tmp/cache/assets/test/sprockets/{81349b365a8ee3e987899f493404a773 → c45db95ac3b02d061b390954bd9f49d0} +0 -0
  175. data/spec/internal/tmp/cache/assets/test/sprockets/{9c939b2d5c9084a7ab8e411f4045cdd8 → c545819b3e92e7cc0180242c111f2b5b} +0 -0
  176. data/spec/internal/tmp/cache/assets/test/sprockets/c6f2d2b6b4ff8b16bb9e7d39898c7de2 +0 -0
  177. data/spec/internal/tmp/cache/assets/test/sprockets/{8c0b0cb5677cee6c8bea459404d33cc9 → cb4976fa305e0f3f830cc11a68490abe} +0 -0
  178. data/spec/internal/tmp/cache/assets/test/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
  179. data/spec/internal/tmp/cache/assets/test/sprockets/d04cb44fedf1d7f934c4d82447e5d7be +0 -0
  180. data/spec/internal/tmp/cache/assets/test/sprockets/{d8a5d13c0222d0ed583276f64fdf6951 → d6fd3dc20efb1e4fe8fa3b90ad6d36da} +0 -0
  181. data/spec/internal/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
  182. data/spec/internal/tmp/cache/assets/test/sprockets/dad1adba3c9893641803fe598ecbbbcf +0 -0
  183. data/spec/internal/tmp/cache/assets/test/sprockets/db0799ffdd25f3b4b984c162e7da469e +0 -0
  184. data/spec/internal/tmp/cache/assets/test/sprockets/{c336a8218b9e8beef9723db01f63bb93 → dcb5e2fe8f8ba6cdad3ec3331bdea0df} +0 -0
  185. data/spec/internal/tmp/cache/assets/test/sprockets/{0ea779b3e0c121243bf582547101b1bf → ddb8d8d3afcc4384d2590acf090215f8} +0 -0
  186. data/spec/internal/tmp/cache/assets/test/sprockets/df08d3c909c62ecba152cdc7b11d9fb3 +0 -0
  187. data/spec/internal/tmp/cache/assets/test/sprockets/e0663a4141d11a3841014005025172eb +0 -0
  188. data/spec/internal/tmp/cache/assets/test/sprockets/{bdc6984a3b4d68f1fdcd9a88309645d2 → e47ed05c114e67acb8ad43d2a2db784d} +0 -0
  189. data/spec/internal/tmp/cache/assets/test/sprockets/e5eba0b50c4b277172db0f9f699a1d76 +0 -0
  190. data/spec/internal/tmp/cache/assets/test/sprockets/ea022fee7bf6ba46a533438b49309665 +0 -0
  191. data/spec/internal/tmp/cache/assets/test/sprockets/{dfebe186cbfff08ef68f2e4713af70a3 → efd0d28ea7420593f6323280daec5d94} +0 -0
  192. data/spec/internal/tmp/cache/assets/test/sprockets/{bcf37edb17dbd10ffc3f86624b272a65 → f2a04b4afd8e701562135671116b3452} +0 -0
  193. data/spec/internal/tmp/cache/assets/test/sprockets/f2cf4862b1e7a04fd29eb30605f08979 +0 -0
  194. data/spec/internal/tmp/cache/assets/test/sprockets/{b4d6f2b931b66f805dfeff1bbe3bd5ec → f600496bff33972f86dc55b9f75df124} +0 -0
  195. data/spec/internal/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
  196. data/spec/internal/tmp/cache/assets/test/sprockets/ffa439acb56ac6162efb387270e055f2 +0 -0
  197. metadata +319 -297
  198. data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_button-groups.scssc +0 -0
  199. data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_buttons.scssc +0 -0
  200. data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_carousel.scssc +0 -0
  201. data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_forms.scssc +0 -0
  202. data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_glyphicons.scssc +0 -0
  203. data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_jumbotron.scssc +0 -0
  204. data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_media.scssc +0 -0
  205. data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_panels.scssc +0 -0
  206. data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_popovers.scssc +0 -0
  207. data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_print.scssc +0 -0
  208. data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_progress-bars.scssc +0 -0
  209. data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_responsive-embed.scssc +0 -0
  210. data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_tables.scssc +0 -0
  211. data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_tooltip.scssc +0 -0
  212. data/spec/internal/tmp/cache/assets/test/sass/359f517ba1ab8c953bbb6dc91543c3de140373f6/_variables.scssc +0 -0
  213. data/spec/internal/tmp/cache/assets/test/sass/8d5abc2e34d47d479bbaf9a94007cb1fbbb587fc/_catalog.css.scssc +0 -0
  214. data/spec/internal/tmp/cache/assets/test/sass/8d5abc2e34d47d479bbaf9a94007cb1fbbb587fc/_layout.css.scssc +0 -0
  215. data/spec/internal/tmp/cache/assets/test/sass/8d5abc2e34d47d479bbaf9a94007cb1fbbb587fc/_search_history.css.scssc +0 -0
  216. data/spec/internal/tmp/cache/assets/test/sass/cb83b9c8b85bb3982652db91c3d946cb936820a9/_buttons.scssc +0 -0
  217. data/spec/internal/tmp/cache/assets/test/sass/cb83b9c8b85bb3982652db91c3d946cb936820a9/_forms.scssc +0 -0
  218. data/spec/internal/tmp/cache/assets/test/sprockets/136ab1950eca13da4e894ff1b2b27de2 +0 -0
  219. data/spec/internal/tmp/cache/assets/test/sprockets/1966ca6fe626f223bc02aafae8d215d6 +0 -0
  220. data/spec/internal/tmp/cache/assets/test/sprockets/21539670dc497a0e6393ad19df075b66 +0 -0
  221. data/spec/internal/tmp/cache/assets/test/sprockets/268df18aed2972da207f2e747bcf232c +0 -0
  222. data/spec/internal/tmp/cache/assets/test/sprockets/384e54eed00c0341519df9a625117650 +0 -0
  223. data/spec/internal/tmp/cache/assets/test/sprockets/439c2eeec401a8ab7397179ee2504ae3 +0 -0
  224. data/spec/internal/tmp/cache/assets/test/sprockets/4927f44cd4ccc2c884e82cedccde4a22 +0 -0
  225. data/spec/internal/tmp/cache/assets/test/sprockets/4b9cd5c4b234a84bbb3a69e13c83e1a4 +0 -0
  226. data/spec/internal/tmp/cache/assets/test/sprockets/4ff8d0bb5f0dcb3063b2920517715e0e +0 -0
  227. data/spec/internal/tmp/cache/assets/test/sprockets/5e37ca964d93d3d7f4af368078665594 +0 -0
  228. data/spec/internal/tmp/cache/assets/test/sprockets/683ff1620ded8c9d80411699bafdb0ff +0 -0
  229. data/spec/internal/tmp/cache/assets/test/sprockets/69a0b39e8aec99edabb13313660e28f2 +0 -0
  230. data/spec/internal/tmp/cache/assets/test/sprockets/6cf100c049b646808cc7700f2ee3d125 +0 -0
  231. data/spec/internal/tmp/cache/assets/test/sprockets/6dc95768f586b1f6aafc2e5707c25180 +0 -0
  232. data/spec/internal/tmp/cache/assets/test/sprockets/6f546449c0ef031d9b207a3922074493 +0 -0
  233. data/spec/internal/tmp/cache/assets/test/sprockets/7048f4e2f244cc702d01c26562014d88 +0 -0
  234. data/spec/internal/tmp/cache/assets/test/sprockets/82a17d90b083e4e3d65199d44611dfcf +0 -0
  235. data/spec/internal/tmp/cache/assets/test/sprockets/8d3af96d0accc2a659b97d5c8686b749 +0 -0
  236. data/spec/internal/tmp/cache/assets/test/sprockets/97be66cd58fc884d042f89a63ffca480 +0 -0
  237. data/spec/internal/tmp/cache/assets/test/sprockets/9942d6f024866931b4c6a4202eafd24f +0 -0
  238. data/spec/internal/tmp/cache/assets/test/sprockets/a792eacf67e82469b1fe83bf6fb0773d +0 -0
  239. data/spec/internal/tmp/cache/assets/test/sprockets/ac0afaf210ca89ebd3dc6798b44a923d +0 -0
  240. data/spec/internal/tmp/cache/assets/test/sprockets/ac3dd20c3079957e6543251f6c6565bc +0 -0
  241. data/spec/internal/tmp/cache/assets/test/sprockets/c8297abf45d95e6b50a977ac286c4416 +0 -0
  242. data/spec/internal/tmp/cache/assets/test/sprockets/cb05c309abebfd78bfa687ea7ec893c9 +0 -0
  243. data/spec/internal/tmp/cache/assets/test/sprockets/cba3dd7cc3802e4d5ac14a44c1846f08 +0 -0
  244. data/spec/internal/tmp/cache/assets/test/sprockets/cc1ae9d597a5f4ab4ff90b6ae37e5952 +0 -0
  245. data/spec/internal/tmp/cache/assets/test/sprockets/d2a9756a14b665060574742c4ea33429 +0 -0
  246. data/spec/internal/tmp/cache/assets/test/sprockets/d49ce2111c14bc8f827481d660ae2256 +0 -0
  247. data/spec/internal/tmp/cache/assets/test/sprockets/d69f621b8584a241ef83d7144b5bf05e +0 -0
  248. data/spec/internal/tmp/cache/assets/test/sprockets/dedbb55c79535e15a1e57650e4c39659 +0 -0
  249. data/spec/internal/tmp/cache/assets/test/sprockets/f64fc5a7979fecfb0b31bee536ff4cbd +0 -0
  250. data/spec/internal/tmp/cache/assets/test/sprockets/fcbb570c156ad59bdcc099427cba1c4e +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5c9f090f95fb37ee74711fb756c5c4ac2ae9efb8
4
- data.tar.gz: 189511ac1bddefc9090b031ab87952112535b70a
3
+ metadata.gz: dff26a191435e6d7753f097045f0a9e60bc64804
4
+ data.tar.gz: 040f48a724627125fc035dfee1a4bfec1ab7ad4f
5
5
  SHA512:
6
- metadata.gz: f0bef2770dfe4c05c6a8e9571a256e9548e91cb4efbcd09b0134a8afdcf03128d121a7ea416947f9b542edd150b2ddcb37feed1a3ea6f622f407e4592dee2681
7
- data.tar.gz: 945eb9c018efbe582747bd348a6ffaff1856bbf32fd6e1b56884f69ed8e39a311ff574513d949599d75626bec671bd9d8c7fec9537001682cb80d11bd381f821
6
+ metadata.gz: aae9ca5d3d8a5460c01381eebd641ed102eb911958d6fb59b7cdfd6e8c1b4f72e2663957fedfe0a9b8ae7bb5d21b052495c2030d7d71ad8967526a2b9af56add
7
+ data.tar.gz: 20da7e130bf4b64e49efc0777f07fad61c548b6b14028dd7dc564c69e4f5ba7f193e2b79aa324b467dca1510efbc7af928db585e979f62e92e674d02855fe0a1
data/README.md CHANGED
@@ -8,7 +8,6 @@ This plugin provides hierarchical facets for [Blacklight](https://github.com/pro
8
8
  Add the plugin to your Blacklight app's Gemfile
9
9
 
10
10
  gem 'blacklight-hierarchy'
11
- #gem 'blacklight-hierarchy', :git => 'git@github.com:sul-dlss/blacklight-hierarchy.git'
12
11
 
13
12
  Index your hierarchies in colon-separated list. For example, items in a "processing" queue with a "copy" action, might be indexed as
14
13
 
@@ -46,15 +45,16 @@ In your Blacklight controller configuration (usually `CatalogController`), tell
46
45
  config.add_facet_field 'queue_status_facet', :label => 'Queue Status',
47
46
  :partial => 'blacklight/hierarchy/facet_hierarchy'
48
47
 
49
- Add the hierarchy-specific options to the controller configuration
48
+ Add the hierarchy-specific options to the controller configuration (values are arrays: 1st element is array, 2nd is delimiter string):
50
49
 
51
50
  config.facet_display = {
52
51
  :hierarchy => {
53
- 'tag' => [nil]
52
+ 'wf' => [['wps','wsp','swp'], ':'],
53
+ 'callnum' => [['top_facet'], '/']
54
54
  }
55
55
  }
56
56
 
57
- (The `[nil]` value is present in support of rotatable facet hierarchies, which I don't have time to document right now.)
57
+ Note that the delimiter MUST be specified at the present time, and MUST be the acual delimited used in the Solr field value.
58
58
 
59
59
  ## Caveats
60
60
 
data/Rakefile CHANGED
@@ -18,9 +18,7 @@ task :default => :ci
18
18
  require 'rspec/core/rake_task'
19
19
 
20
20
  desc "Run specs"
21
- RSpec::Core::RakeTask.new(:rspec) do |spec|
22
- spec.rspec_opts = ["-c", "-f progress", "-r ./spec/spec_helper.rb", "-t ~wip"]
23
- end
21
+ RSpec::Core::RakeTask.new(:rspec)
24
22
  task :spec => :rspec
25
23
 
26
24
 
@@ -1,6 +1,6 @@
1
1
  module Blacklight::HierarchyHelper
2
2
 
3
- # Putting bare HTML strings in a helper sucks. But in this case, with a
3
+ # Putting bare HTML strings in a helper sucks. But in this case, with a
4
4
  # lot of recursive tree-walking going on, it's an order of magnitude faster
5
5
  # than either render(:partial) or content_tag
6
6
  def render_facet_hierarchy_item(field_name, data, key)
@@ -9,7 +9,7 @@ module Blacklight::HierarchyHelper
9
9
 
10
10
  li_class = subset.empty? ? 'h-leaf' : 'h-node'
11
11
  li = ul = ''
12
-
12
+
13
13
  if item.nil?
14
14
  li = key
15
15
  elsif facet_in_params?(field_name, item.qvalue)
@@ -17,48 +17,44 @@ module Blacklight::HierarchyHelper
17
17
  else
18
18
  li = render_qfacet_value(field_name, item)
19
19
  end
20
-
20
+
21
21
  unless subset.empty?
22
- subul = subset.keys.sort.collect do |subkey|
23
- render_facet_hierarchy_item(field_name, subset[subkey], subkey)
22
+ subul = subset.keys.sort.collect do |subkey|
23
+ render_facet_hierarchy_item(field_name, subset[subkey], subkey)
24
24
  end.join('')
25
25
  ul = "<ul>#{subul}</ul>".html_safe
26
26
  end
27
-
27
+
28
28
  %{<li class="#{li_class}">#{li.html_safe}#{ul.html_safe}</li>}.html_safe
29
29
  end
30
30
 
31
- # TODO: remove baked in notion of underscores being part of the blacklight facet field names,
32
- # and of _facet being the suffix of the Solr field name seems to be baked in.
33
- #
31
+ # TODO: remove baked in notion of _facet being the suffix of the Solr field name
32
+ #
34
33
  # @param [Blacklight::Configuration::FacetField] as defined in controller with config.add_facet_field (and with :partial => 'blacklight/hierarchy/facet_hierarchy')
35
34
  # @return [String] html for the facet tree
36
- def render_hierarchy(bl_facet_field)
35
+ def render_hierarchy(bl_facet_field, delim='_')
37
36
  field_name = bl_facet_field.field
38
- prefix = field_name.gsub("_#{field_name.split(/_/).last}", '')
39
- tree = facet_tree(prefix)[field_name]
40
- if tree
41
- result = tree.keys.sort.collect do |key|
42
- render_facet_hierarchy_item(field_name, tree[key], key)
43
- end.join("\n").html_safe
44
- else
45
- ""
46
- end
37
+ prefix = field_name.gsub("#{delim}#{field_name.split(/#{delim}/).last}", '')
38
+ facet_tree_for_prefix = facet_tree(prefix)
39
+ tree = facet_tree_for_prefix ? facet_tree_for_prefix[field_name] : nil
40
+ return '' unless tree
41
+ tree.keys.sort.collect do |key|
42
+ render_facet_hierarchy_item(field_name, tree[key], key)
43
+ end.join("\n").html_safe
47
44
  end
48
45
 
49
46
  def render_qfacet_value(facet_solr_field, item, options ={})
50
47
  (link_to_unless(options[:suppress_link], item.value, add_facet_params(facet_solr_field, item.qvalue), :class=>"facet_select") + " " + render_facet_count(item.hits)).html_safe
51
48
  end
52
49
 
53
- # Standard display of a SELECTED facet value, no link, special span
54
- # with class, and 'remove' button.
50
+ # Standard display of a SELECTED facet value, no link, special span with class, and 'remove' button.
55
51
  def render_selected_qfacet_value(facet_solr_field, item)
56
52
  content_tag(:span, render_qfacet_value(facet_solr_field, item, :suppress_link => true), :class => "selected") + " " +
57
53
  link_to(content_tag(:span, '', :class => "glyphicon glyphicon-remove") + content_tag(:span, '[remove]', :class => 'sr-only'), remove_facet_params(facet_solr_field, item.qvalue, params), :class=>"remove")
58
54
  end
59
55
 
60
56
  HierarchicalFacetItem = Struct.new :qvalue, :value, :hits
61
-
57
+
62
58
  # @param [String] hkey - a key to access the rest of the hierarchy tree, as defined in controller config.facet_display[:hierarchy] declaration.
63
59
  # e.g. if you had this in controller:
64
60
  # config.facet_display = {
@@ -70,42 +66,40 @@ module Blacklight::HierarchyHelper
70
66
  # then possible hkey values would be 'wf' and 'callnum'
71
67
  def facet_tree(hkey)
72
68
  @facet_tree ||= {}
73
- if blacklight_config.facet_display[:hierarchy] && blacklight_config.facet_display[:hierarchy][hkey]
74
- value_delim = blacklight_config.facet_display[:hierarchy][hkey].last
75
- split_regex = Regexp.new("\s*#{Regexp.escape(value_delim)}\s*")
76
- if @facet_tree[hkey].nil?
77
- @facet_tree[hkey] = {}
78
- blacklight_config.facet_display[:hierarchy][hkey].first.each { |key|
79
- # TODO: remove baked in notion of underscores being part of the blacklight facet field names
80
- facet_field = [hkey,key].compact.join('_')
81
- @facet_tree[hkey][facet_field] ||= {}
82
- data = @response.facet_by_field_name(facet_field)
83
- next if data.nil?
84
-
85
- data.items.each { |facet_item|
86
- path = facet_item.value.split(split_regex)
87
- loc = @facet_tree[hkey][facet_field]
88
- while path.length > 0
89
- loc = loc[path.shift] ||= {}
90
- end
91
- loc[:_] = HierarchicalFacetItem.new(facet_item.value, facet_item.value.split(split_regex).last, facet_item.hits)
92
- }
93
- }
94
- end
95
- end
69
+ return @facet_tree[hkey] unless @facet_tree[hkey].nil?
70
+ return @facet_tree[hkey] unless blacklight_config.facet_display[:hierarchy] && blacklight_config.facet_display[:hierarchy][hkey]
71
+ @facet_tree[hkey] = {}
72
+ facet_config= blacklight_config.facet_display[:hierarchy][hkey]
73
+ split_regex = Regexp.new("\s*#{Regexp.escape(facet_config.length >= 2 ? facet_config[1] : ':')}\s*")
74
+ facet_config.first.each { |key|
75
+ # TODO: remove baked in notion of underscores being part of the blacklight facet field names
76
+ facet_field = [hkey,key].compact.join('_')
77
+ @facet_tree[hkey][facet_field] ||= {}
78
+ data = @response.facet_by_field_name(facet_field)
79
+ next if data.nil?
80
+
81
+ data.items.each { |facet_item|
82
+ path = facet_item.value.split(split_regex)
83
+ loc = @facet_tree[hkey][facet_field]
84
+ while path.length > 0
85
+ loc = loc[path.shift] ||= {}
86
+ end
87
+ loc[:_] = HierarchicalFacetItem.new(facet_item.value, facet_item.value.split(split_regex).last, facet_item.hits)
88
+ }
89
+ }
96
90
  @facet_tree[hkey]
97
91
  end
98
92
 
99
- # --------------------------------------------------------------------------------------------------------------------------------
93
+ # --------------------------------------------------------------------------------------------------------------------------------
100
94
  # below are methods pertaining to the "rotate" notion where you may want to look at the same tree data organized another way
101
- # --------------------------------------------------------------------------------------------------------------------------------
102
-
95
+ # --------------------------------------------------------------------------------------------------------------------------------
96
+
103
97
  # FIXME: remove baked in underscore separator in field name
104
98
  def is_hierarchical?(field_name)
105
99
  (prefix,order) = field_name.split(/_/, 2)
106
100
  list = blacklight_config.facet_display[:hierarchy][prefix] and list.include?(order)
107
101
  end
108
-
102
+
109
103
  def facet_order(prefix)
110
104
  param_name = "#{prefix}_facet_order".to_sym
111
105
  params[param_name] || blacklight_config.facet_display[:hierarchy][prefix].first
@@ -125,7 +119,7 @@ module Blacklight::HierarchyHelper
125
119
  false
126
120
  end
127
121
  end
128
-
122
+
129
123
  # FIXME: remove baked in colon separator
130
124
  def rotate_facet_value(val, from, to)
131
125
  components = Hash[from.split(//).zip(val.split(/:/))]
@@ -1,5 +1,5 @@
1
1
  module Blacklight
2
2
  module Hierarchy
3
- VERSION = "0.1.0"
3
+ VERSION = "0.1.1"
4
4
  end
5
5
  end
@@ -1,22 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe "catalog" do
4
-
5
- before do
6
- CatalogController.blacklight_config = Blacklight::Configuration.new
7
- CatalogController.configure_blacklight do |config|
8
- # config.add_facet_field 'rotate_tag_facet', :label => 'Tag', :partial => 'blacklight/hierarchy/facet_hierarchy'
9
- config.add_facet_field 'tag_facet', :label => 'Tag', :partial => 'blacklight/hierarchy/facet_hierarchy'
10
- config.add_facet_field 'my_top_facet', :label => 'Slash Delim', :partial => 'blacklight/hierarchy/facet_hierarchy'
11
- config.facet_display = {
12
- :hierarchy => {
13
- # 'rotate' => [['tag'], ':'], # this would work if config.add_facet_field was called rotate_tag_facet, instead of tag_facet, I think.
14
- 'tag' => [['facet'], ':'], # stupidly, the facet field is expected to have an underscore followed by SOMETHING; in this case it is "facet"
15
- 'my_top' => [['facet'], '/']
16
- }
17
- }
18
- end
19
- end
3
+ shared_examples "catalog" do
20
4
 
21
5
  context "facet tree without repeated nodes" do
22
6
  before {
@@ -27,16 +11,16 @@ describe "catalog" do
27
11
  'facet_fields' => {
28
12
  'tag_facet' => [
29
13
  'a:b:c', 30,
30
- 'a:b:d', 25,
31
- 'a:c:d', 5,
32
- 'p:r:q', 25,
33
- 'x:y', 5,
14
+ 'a:b:d', 25,
15
+ 'a:c:d', 5,
16
+ 'p:r:q', 25,
17
+ 'x:y', 5,
34
18
  'n', 1 ],
35
19
  'my_top_facet' => [
36
20
  'f/g/h', 30,
37
- 'j/k', 5,
38
- 'z', 1 ],
39
- },
21
+ 'j/k', 5,
22
+ 'z', 1 ],
23
+ },
40
24
  'facet_dates' => {},
41
25
  'facet_ranges' => {}
42
26
  }
@@ -80,7 +64,7 @@ describe "catalog" do
80
64
  expect(page).to have_selector('.facet-hierarchy > li.h-leaf', :text => 'z 1')
81
65
  end
82
66
  end # facet tree without repeated nodes
83
-
67
+
84
68
  context "facet tree with repeated nodes" do
85
69
  before do
86
70
  facet_resp = {'responseHeader'=>{'status'=>0, 'QTime'=>4, 'params'=>{'wt'=>'ruby','rows'=>'0'}},
@@ -91,7 +75,7 @@ describe "catalog" do
91
75
  'tag_facet' => [
92
76
  'm:w:w:t', 15,
93
77
  'm:w:v:z', 10],
94
- },
78
+ },
95
79
  'facet_dates' => {},
96
80
  'facet_ranges' => {}
97
81
  }
@@ -112,3 +96,41 @@ describe "catalog" do
112
96
  end
113
97
 
114
98
  end
99
+
100
+ describe "config_1" do
101
+ it_behaves_like "catalog" do
102
+ before do
103
+ CatalogController.blacklight_config = Blacklight::Configuration.new
104
+ CatalogController.configure_blacklight do |config|
105
+ # config.add_facet_field 'rotate_tag_facet', :label => 'Tag', :partial => 'blacklight/hierarchy/facet_hierarchy'
106
+ config.add_facet_field 'tag_facet', :label => 'Tag', :partial => 'blacklight/hierarchy/facet_hierarchy'
107
+ config.add_facet_field 'my_top_facet', :label => 'Slash Delim', :partial => 'blacklight/hierarchy/facet_hierarchy'
108
+ config.facet_display = {
109
+ :hierarchy => {
110
+ # 'rotate' => [['tag' ], ':'], # this would work if config.add_facet_field was called rotate_tag_facet, instead of tag_facet, I think.
111
+ 'tag' => [['facet'], ':'], # stupidly, the facet field is expected to have an underscore followed by SOMETHING; in this case it is "facet"
112
+ 'my_top' => [['facet'], '/']
113
+ }
114
+ }
115
+ end
116
+ end
117
+ end
118
+ end
119
+
120
+ describe "config_2" do
121
+ it_behaves_like "catalog" do
122
+ before do
123
+ CatalogController.blacklight_config = Blacklight::Configuration.new
124
+ CatalogController.configure_blacklight do |config|
125
+ config.add_facet_field 'tag_facet', :label => 'Tag', :partial => 'blacklight/hierarchy/facet_hierarchy'
126
+ config.add_facet_field 'my_top_facet', :label => 'Slash Delim', :partial => 'blacklight/hierarchy/facet_hierarchy'
127
+ config.facet_display = {
128
+ :hierarchy => {
129
+ 'tag' => [['facet']], # rely on default delim
130
+ 'my_top' => [['facet'], '/']
131
+ }
132
+ }
133
+ end
134
+ end
135
+ end
136
+ end
@@ -2,17 +2,17 @@ source 'https://rubygems.org'
2
2
 
3
3
 
4
4
  # Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
5
- gem 'rails', '4.1.5'
5
+ gem 'rails', '4.2.1'
6
6
  # Use sqlite3 as the database for Active Record
7
7
  gem 'sqlite3'
8
8
  # Use SCSS for stylesheets
9
- gem 'sass-rails', '~> 4.0.3'
9
+ gem 'sass-rails', '~> 5.0'
10
10
  # Use Uglifier as compressor for JavaScript assets
11
11
  gem 'uglifier', '>= 1.3.0'
12
- # Use CoffeeScript for .js.coffee assets and views
13
- gem 'coffee-rails', '~> 4.0.0'
14
- # See https://github.com/sstephenson/execjs#readme for more supported runtimes
15
- # gem 'therubyracer', platforms: :ruby
12
+ # Use CoffeeScript for .coffee assets and views
13
+ gem 'coffee-rails', '~> 4.1.0'
14
+ # See https://github.com/rails/execjs#readme for more supported runtimes
15
+ # gem 'therubyracer', platforms: :ruby
16
16
 
17
17
  # Use jquery as the JavaScript library
18
18
  gem 'jquery-rails'
@@ -21,20 +21,27 @@ gem 'turbolinks'
21
21
  # Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
22
22
  gem 'jbuilder', '~> 2.0'
23
23
  # bundle exec rake doc:rails generates the API under doc/api.
24
- gem 'sdoc', '~> 0.4.0', group: :doc
24
+ gem 'sdoc', '~> 0.4.0', group: :doc
25
25
 
26
26
  # Use ActiveModel has_secure_password
27
27
  # gem 'bcrypt', '~> 3.1.7'
28
28
 
29
- # Use unicorn as the app server
29
+ # Use Unicorn as the app server
30
30
  # gem 'unicorn'
31
31
 
32
32
  # Use Capistrano for deployment
33
33
  # gem 'capistrano-rails', group: :development
34
34
 
35
- # Use debugger
36
- # gem 'debugger', group: [:development, :test]
35
+ group :development, :test do
36
+ # Call 'byebug' anywhere in the code to stop execution and get a debugger console
37
+ gem 'byebug'
37
38
 
38
- gem 'blacklight-hierarchy', :path => '/Users/jkeck/Projects/blacklight/blacklight-hierarchy'
39
+ # Access an IRB console on exception pages or by using <%= console %> in views
40
+ gem 'web-console', '~> 2.0'
41
+ end
39
42
 
40
- gem "blacklight"
43
+
44
+ gem 'blacklight-hierarchy', :path => '/Users/ndushay/searchworks/blacklight-hierarchy'
45
+
46
+ gem 'blacklight'
47
+ gem 'rsolr', '~> 1.0.6'
@@ -1,138 +1,172 @@
1
1
  PATH
2
- remote: /Users/jkeck/Projects/blacklight/blacklight-hierarchy
2
+ remote: /Users/ndushay/searchworks/blacklight-hierarchy
3
3
  specs:
4
- blacklight-hierarchy (1.0.0)
4
+ blacklight-hierarchy (0.1.1)
5
5
  blacklight (~> 5, < 6)
6
6
  rails (~> 4.1)
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
- actionmailer (4.1.5)
12
- actionpack (= 4.1.5)
13
- actionview (= 4.1.5)
14
- mail (~> 2.5.4)
15
- actionpack (4.1.5)
16
- actionview (= 4.1.5)
17
- activesupport (= 4.1.5)
18
- rack (~> 1.5.2)
11
+ actionmailer (4.2.1)
12
+ actionpack (= 4.2.1)
13
+ actionview (= 4.2.1)
14
+ activejob (= 4.2.1)
15
+ mail (~> 2.5, >= 2.5.4)
16
+ rails-dom-testing (~> 1.0, >= 1.0.5)
17
+ actionpack (4.2.1)
18
+ actionview (= 4.2.1)
19
+ activesupport (= 4.2.1)
20
+ rack (~> 1.6)
19
21
  rack-test (~> 0.6.2)
20
- actionview (4.1.5)
21
- activesupport (= 4.1.5)
22
+ rails-dom-testing (~> 1.0, >= 1.0.5)
23
+ rails-html-sanitizer (~> 1.0, >= 1.0.1)
24
+ actionview (4.2.1)
25
+ activesupport (= 4.2.1)
22
26
  builder (~> 3.1)
23
27
  erubis (~> 2.7.0)
24
- activemodel (4.1.5)
25
- activesupport (= 4.1.5)
28
+ rails-dom-testing (~> 1.0, >= 1.0.5)
29
+ rails-html-sanitizer (~> 1.0, >= 1.0.1)
30
+ activejob (4.2.1)
31
+ activesupport (= 4.2.1)
32
+ globalid (>= 0.3.0)
33
+ activemodel (4.2.1)
34
+ activesupport (= 4.2.1)
26
35
  builder (~> 3.1)
27
- activerecord (4.1.5)
28
- activemodel (= 4.1.5)
29
- activesupport (= 4.1.5)
30
- arel (~> 5.0.0)
31
- activesupport (4.1.5)
32
- i18n (~> 0.6, >= 0.6.9)
36
+ activerecord (4.2.1)
37
+ activemodel (= 4.2.1)
38
+ activesupport (= 4.2.1)
39
+ arel (~> 6.0)
40
+ activesupport (4.2.1)
41
+ i18n (~> 0.7)
33
42
  json (~> 1.7, >= 1.7.7)
34
43
  minitest (~> 5.1)
35
- thread_safe (~> 0.1)
44
+ thread_safe (~> 0.3, >= 0.3.4)
36
45
  tzinfo (~> 1.1)
37
- arel (5.0.1.20140414130214)
38
- blacklight (5.7.1)
46
+ arel (6.0.0)
47
+ autoprefixer-rails (5.1.8)
48
+ execjs
49
+ json
50
+ binding_of_caller (0.7.2)
51
+ debug_inspector (>= 0.0.1)
52
+ blacklight (5.12.1)
39
53
  bootstrap-sass (~> 3.2)
40
54
  deprecation
41
- kaminari (~> 0.13)
55
+ kaminari (>= 0.15)
42
56
  nokogiri (~> 1.6)
43
57
  rails (>= 3.2.6, < 5)
44
- rsolr (~> 1.0.6)
45
- bootstrap-sass (3.2.0.2)
46
- sass (~> 3.2)
58
+ rsolr (~> 1.0.11)
59
+ bootstrap-sass (3.3.4.1)
60
+ autoprefixer-rails (>= 5.0.0.1)
61
+ sass (>= 3.2.19)
47
62
  builder (3.2.2)
48
- coffee-rails (4.0.1)
63
+ byebug (4.0.4)
64
+ columnize (= 0.9.0)
65
+ coffee-rails (4.1.0)
49
66
  coffee-script (>= 2.2.0)
50
67
  railties (>= 4.0.0, < 5.0)
51
68
  coffee-script (2.3.0)
52
69
  coffee-script-source
53
70
  execjs
54
- coffee-script-source (1.8.0)
55
- deprecation (0.1.0)
71
+ coffee-script-source (1.9.1)
72
+ columnize (0.9.0)
73
+ debug_inspector (0.0.2)
74
+ deprecation (0.2.2)
56
75
  activesupport
57
76
  erubis (2.7.0)
58
- execjs (2.2.2)
77
+ execjs (2.4.0)
78
+ globalid (0.3.3)
79
+ activesupport (>= 4.1.0)
59
80
  hike (1.2.3)
60
- i18n (0.6.11)
61
- jbuilder (2.2.4)
81
+ i18n (0.7.0)
82
+ jbuilder (2.2.12)
62
83
  activesupport (>= 3.0.0, < 5)
63
84
  multi_json (~> 1.2)
64
- jquery-rails (3.1.2)
65
- railties (>= 3.0, < 5.0)
85
+ jquery-rails (4.0.3)
86
+ rails-dom-testing (~> 1.0)
87
+ railties (>= 4.2.0)
66
88
  thor (>= 0.14, < 2.0)
67
- json (1.8.1)
68
- kaminari (0.16.1)
89
+ json (1.8.2)
90
+ kaminari (0.16.3)
69
91
  actionpack (>= 3.0.0)
70
92
  activesupport (>= 3.0.0)
71
- mail (2.5.4)
72
- mime-types (~> 1.16)
73
- treetop (~> 1.4.8)
74
- mime-types (1.25.1)
75
- mini_portile (0.6.0)
76
- minitest (5.4.2)
77
- multi_json (1.10.1)
78
- nokogiri (1.6.3.1)
79
- mini_portile (= 0.6.0)
80
- polyglot (0.3.5)
81
- rack (1.5.2)
82
- rack-test (0.6.2)
93
+ loofah (2.0.1)
94
+ nokogiri (>= 1.5.9)
95
+ mail (2.6.3)
96
+ mime-types (>= 1.16, < 3)
97
+ mime-types (2.4.3)
98
+ mini_portile (0.6.2)
99
+ minitest (5.5.1)
100
+ multi_json (1.11.0)
101
+ nokogiri (1.6.6.2)
102
+ mini_portile (~> 0.6.0)
103
+ rack (1.6.0)
104
+ rack-test (0.6.3)
83
105
  rack (>= 1.0)
84
- rails (4.1.5)
85
- actionmailer (= 4.1.5)
86
- actionpack (= 4.1.5)
87
- actionview (= 4.1.5)
88
- activemodel (= 4.1.5)
89
- activerecord (= 4.1.5)
90
- activesupport (= 4.1.5)
106
+ rails (4.2.1)
107
+ actionmailer (= 4.2.1)
108
+ actionpack (= 4.2.1)
109
+ actionview (= 4.2.1)
110
+ activejob (= 4.2.1)
111
+ activemodel (= 4.2.1)
112
+ activerecord (= 4.2.1)
113
+ activesupport (= 4.2.1)
91
114
  bundler (>= 1.3.0, < 2.0)
92
- railties (= 4.1.5)
93
- sprockets-rails (~> 2.0)
94
- railties (4.1.5)
95
- actionpack (= 4.1.5)
96
- activesupport (= 4.1.5)
115
+ railties (= 4.2.1)
116
+ sprockets-rails
117
+ rails-deprecated_sanitizer (1.0.3)
118
+ activesupport (>= 4.2.0.alpha)
119
+ rails-dom-testing (1.0.6)
120
+ activesupport (>= 4.2.0.beta, < 5.0)
121
+ nokogiri (~> 1.6.0)
122
+ rails-deprecated_sanitizer (>= 1.0.1)
123
+ rails-html-sanitizer (1.0.2)
124
+ loofah (~> 2.0)
125
+ railties (4.2.1)
126
+ actionpack (= 4.2.1)
127
+ activesupport (= 4.2.1)
97
128
  rake (>= 0.8.7)
98
129
  thor (>= 0.18.1, < 2.0)
99
- rake (10.3.2)
100
- rdoc (4.1.2)
130
+ rake (10.4.2)
131
+ rdoc (4.2.0)
101
132
  json (~> 1.4)
102
- rsolr (1.0.10)
133
+ rsolr (1.0.12)
103
134
  builder (>= 2.1.2)
104
- sass (3.2.19)
105
- sass-rails (4.0.4)
135
+ sass (3.4.13)
136
+ sass-rails (5.0.3)
106
137
  railties (>= 4.0.0, < 5.0)
107
- sass (~> 3.2.2)
108
- sprockets (~> 2.8, < 2.12)
109
- sprockets-rails (~> 2.0)
138
+ sass (~> 3.1)
139
+ sprockets (>= 2.8, < 4.0)
140
+ sprockets-rails (>= 2.0, < 4.0)
141
+ tilt (~> 1.1)
110
142
  sdoc (0.4.1)
111
143
  json (~> 1.7, >= 1.7.7)
112
144
  rdoc (~> 4.0)
113
- sprockets (2.11.3)
145
+ sprockets (2.12.3)
114
146
  hike (~> 1.2)
115
147
  multi_json (~> 1.0)
116
148
  rack (~> 1.0)
117
149
  tilt (~> 1.1, != 1.3.0)
118
- sprockets-rails (2.2.0)
150
+ sprockets-rails (2.2.4)
119
151
  actionpack (>= 3.0)
120
152
  activesupport (>= 3.0)
121
153
  sprockets (>= 2.8, < 4.0)
122
154
  sqlite3 (1.3.10)
123
155
  thor (0.19.1)
124
- thread_safe (0.3.4)
156
+ thread_safe (0.3.5)
125
157
  tilt (1.4.1)
126
- treetop (1.4.15)
127
- polyglot
128
- polyglot (>= 0.3.1)
129
- turbolinks (2.5.2)
158
+ turbolinks (2.5.3)
130
159
  coffee-rails
131
160
  tzinfo (1.2.2)
132
161
  thread_safe (~> 0.1)
133
- uglifier (2.5.3)
162
+ uglifier (2.7.1)
134
163
  execjs (>= 0.3.0)
135
164
  json (>= 1.8.0)
165
+ web-console (2.1.2)
166
+ activemodel (>= 4.0)
167
+ binding_of_caller (>= 0.7.2)
168
+ railties (>= 4.0)
169
+ sprockets-rails (>= 2.0, < 4.0)
136
170
 
137
171
  PLATFORMS
138
172
  ruby
@@ -140,12 +174,15 @@ PLATFORMS
140
174
  DEPENDENCIES
141
175
  blacklight
142
176
  blacklight-hierarchy!
143
- coffee-rails (~> 4.0.0)
177
+ byebug
178
+ coffee-rails (~> 4.1.0)
144
179
  jbuilder (~> 2.0)
145
180
  jquery-rails
146
- rails (= 4.1.5)
147
- sass-rails (~> 4.0.3)
181
+ rails (= 4.2.1)
182
+ rsolr (~> 1.0.6)
183
+ sass-rails (~> 5.0)
148
184
  sdoc (~> 0.4.0)
149
185
  sqlite3
150
186
  turbolinks
151
187
  uglifier (>= 1.3.0)
188
+ web-console (~> 2.0)