blacklight-hierarchy 0.1.0 → 0.1.1

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 (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)