blacklight-spotlight 0.28.3 → 0.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/spotlight/block_mixins/autocompleteable.js +14 -7
  3. data/app/assets/javascripts/spotlight/blocks/browse_block.js +7 -0
  4. data/app/assets/javascripts/spotlight/blocks/pages_block.js +6 -0
  5. data/app/assets/javascripts/spotlight/catalog_edit.js +2 -2
  6. data/app/assets/javascripts/spotlight/search_typeahead.js +2 -2
  7. data/app/assets/stylesheets/spotlight/_sir-trevor_overrides.scss +6 -0
  8. data/app/assets/stylesheets/spotlight/typeahead.css +2 -0
  9. data/app/controllers/spotlight/catalog_controller.rb +1 -1
  10. data/app/views/spotlight/search_configurations/_search_fields.html.erb +1 -1
  11. data/app/views/spotlight/search_configurations/_sort.html.erb +1 -1
  12. data/lib/spotlight/version.rb +1 -1
  13. data/spec/controllers/spotlight/filters_controller_spec.rb +6 -6
  14. data/spec/features/javascript/blocks/featured_browse_categories_block_spec.rb +4 -2
  15. data/spec/features/javascript/blocks/featured_pages_block_spec.rb +4 -2
  16. data/spec/features/javascript/blocks/search_result_block_spec.rb +2 -1
  17. data/spec/helpers/spotlight/pages_helper_spec.rb +1 -1
  18. data/spec/models/spotlight/blacklight_configuration_spec.rb +1 -1
  19. data/spec/models/spotlight/resources/web_spec.rb +0 -3
  20. data/spec/test_app_templates/lib/generators/test_app_generator.rb +0 -8
  21. data/spec/views/shared/_exhibit_navbar.html.erb_spec.rb +1 -1
  22. data/spec/views/spotlight/browse/_search.html.erb_spec.rb +2 -2
  23. data/spec/views/spotlight/browse/show.html.erb_spec.rb +2 -2
  24. data/spec/views/spotlight/pages/show.html.erb_spec.rb +1 -1
  25. data/spec/views/spotlight/search_configurations/_search_fields.html.erb_spec.rb +5 -0
  26. data/spec/views/spotlight/search_configurations/_sort.html.erb_spec.rb +6 -0
  27. data/vendor/assets/stylesheets/sir-trevor/_variables.scss +1 -1
  28. data/vendor/assets/stylesheets/sir-trevor/base.scss +0 -11
  29. metadata +10 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 625069d3eba47b6df04aa573f4a2f4d2b4406eb1
4
- data.tar.gz: 4ae2f236b798ba61c33b72b47ed92aa056db553e
3
+ metadata.gz: 7e33d431d87e604a322605fec497badeb6705d91
4
+ data.tar.gz: 56423ecdccfa0241f8985d208cc7e5b24cd5346d
5
5
  SHA512:
6
- metadata.gz: fd6bc86560487fb858bc446e80ca48b2e2060215dbf0bb560acfaa7514f7fc92ad8d6e873a855955441fd4e05fe5b69986ab83dcfffc547e893a60c63ee6aa5d
7
- data.tar.gz: fd1c081f5eff5834b3cf50e4e9b6ca8ba1f1f25c58f95e3cfcd2bf1e5649eee2bdfa1dfd76f08c477e449f967e5ccd2996285a0366ed4910976c304319ee2c09
6
+ metadata.gz: 074017907aebc6cd0520d1bb48e366d4409e89b2c35d03d287fb38bc1b4bafb295ffa0e52e315796074b55bd4acff66af92a3f9764b9f0227708d3a05badb05f
7
+ data.tar.gz: 9bcb9a3c8dce973f91062e6b3e01a0886c9b5605be3965097cf884247341fdb04390c14cc4014e83448e73a4f46e14bfc9e422cf618eb335ec2fa8ebfca23cc6
@@ -17,6 +17,17 @@
17
17
  if (_.isUndefined(this['transform_autocomplete_results'])) {
18
18
  this.transform_autocomplete_results = _.identity;
19
19
  }
20
+
21
+ if (_.isUndefined(this['bloodhoundOptions'])) {
22
+ this.bloodhoundOptions = function() {
23
+ return {
24
+ remote: {
25
+ url: this.autocomplete_url(),
26
+ filter: this.transform_autocomplete_results
27
+ }
28
+ };
29
+ };
30
+ }
20
31
  },
21
32
 
22
33
  autocomplete_control: function() {
@@ -44,17 +55,13 @@
44
55
 
45
56
  bloodhound: function() {
46
57
  var block = this;
47
- var results = new Bloodhound({
58
+ var results = new Bloodhound(_.extend({
48
59
  datumTokenizer: function(d) {
49
60
  return Bloodhound.tokenizers.whitespace(d.title);
50
61
  },
51
62
  queryTokenizer: Bloodhound.tokenizers.whitespace,
52
- limit: 10,
53
- remote: {
54
- url: block.autocomplete_url(),
55
- filter: block.transform_autocomplete_results
56
- }
57
- });
63
+ limit: 100,
64
+ }, block.bloodhoundOptions()));
58
65
  results.initialize();
59
66
  return results;
60
67
  },
@@ -12,6 +12,13 @@ SirTrevor.Blocks.Browse = (function(){
12
12
  },
13
13
  autocomplete_template: function() { return '<div class="autocomplete-item{{#unless published}} blacklight-private{{/unless}}">{{#if thumbnail_image_url}}<div class="document-thumbnail thumbnail"><img src="{{thumbnail_image_url}}" /></div>{{/if}}<span class="autocomplete-title">{{title}}</span><br/><small>&nbsp;&nbsp;{{description}}</small></div>' },
14
14
 
15
+ bloodhoundOptions: function() {
16
+ return {
17
+ prefetch: this.autocomplete_url(),
18
+ ttl: 0
19
+ };
20
+ },
21
+
15
22
  item_options: function() { return [
16
23
  '<label>',
17
24
  '<input type="hidden" name="display-item-counts" value="false" />',
@@ -9,6 +9,12 @@ SirTrevor.Blocks.FeaturedPages = (function(){
9
9
 
10
10
  autocomplete_url: function() { return $(this.inner).closest('form[data-autocomplete-exhibit-feature-pages-path]').data('autocomplete-exhibit-feature-pages-path').replace("%25QUERY", "%QUERY"); },
11
11
  autocomplete_template: function() { return '<div class="autocomplete-item{{#unless published}} blacklight-private{{/unless}}">{{log "Look at me"}}{{log thumbnail_image_url}}{{#if thumbnail_image_url}}<div class="document-thumbnail thumbnail"><img src="{{thumbnail_image_url}}" /></div>{{/if}}<span class="autocomplete-title">{{title}}</span><br/><small>&nbsp;&nbsp;{{description}}</small></div>' },
12
+ bloodhoundOptions: function() {
13
+ return {
14
+ prefetch: this.autocomplete_url(),
15
+ ttl: 0
16
+ };
17
+ }
12
18
  });
13
19
 
14
20
  })();
@@ -7,7 +7,7 @@ Spotlight.onLoad(function() {
7
7
  var tags = new Bloodhound({
8
8
  datumTokenizer: function(d) { return Bloodhound.tokenizers.whitespace(d.name); },
9
9
  queryTokenizer: Bloodhound.tokenizers.whitespace,
10
- limit: 10,
10
+ limit: 100,
11
11
  prefetch: {
12
12
  url: $('#solr_document_exhibit_tag_list').data('autocomplete_url'),
13
13
  ttl: 1,
@@ -45,6 +45,6 @@ Spotlight.onLoad(function() {
45
45
  docTarget.addClass("blacklight-private");
46
46
  }
47
47
  }
48
- });
48
+ });
49
49
 
50
50
  });
@@ -31,10 +31,10 @@
31
31
  function itemsBloodhound() {
32
32
  var results = new Bloodhound({
33
33
  datumTokenizer: function(d) {
34
- return Bloodhound.tokenizers.whitespace(d.title);
34
+ return Bloodhound.tokenizers.whitespace(d.title);
35
35
  },
36
36
  queryTokenizer: Bloodhound.tokenizers.whitespace,
37
- limit: 10,
37
+ limit: 100,
38
38
  remote: {
39
39
  url: $('form[data-autocomplete-exhibit-catalog-path]').data('autocomplete-exhibit-catalog-path').replace("%25QUERY", "%QUERY"),
40
40
  filter: function(response) {
@@ -17,6 +17,12 @@
17
17
  margin-bottom: 3*$padding-large-vertical;
18
18
  }
19
19
 
20
+ // Sir-trevor sets the overflow to hidden which
21
+ // obscures the bottom of things like the typeahead
22
+ .st-block {
23
+ overflow: visible;
24
+ }
25
+
20
26
  .st-block__inner {
21
27
  border: 1px solid $gray-lighter;
22
28
  box-shadow: 3px 3px 15px $gray-lighter;
@@ -22,6 +22,8 @@
22
22
  .tt-dropdown-menu {
23
23
  z-index: 1000 !important;
24
24
  margin-top: 2px;
25
+ max-height: 360px;
26
+ overflow-y: auto;
25
27
  padding: 8px 0;
26
28
  background-color: #fff;
27
29
  border: 1px solid #ccc;
@@ -53,7 +53,7 @@ module Spotlight
53
53
  # results when a partial match is passed in the "q" parameter.
54
54
  def autocomplete
55
55
  search_params = params.merge(search_field: Spotlight::Engine.config.autocomplete_search_field)
56
- (_, @document_list) = search_results(search_params.merge(public: true))
56
+ (_, @document_list) = search_results(search_params.merge(public: true, rows: 100))
57
57
 
58
58
  respond_to do |format|
59
59
  format.json do
@@ -31,7 +31,7 @@
31
31
  <div class="panel-group dd search_fields_admin col-sm-7" id="nested-search-fields" data-behavior="nestable" data-max-depth="1">
32
32
  <ol class="dd-list">
33
33
  <% @blacklight_configuration.blacklight_config.search_fields.select { |_k, v| v.include_in_simple_select != false }.except(default_field.key).each_with_index do |(k, config), index| %>
34
- <li class="dd-item dd3-item" data-id="<%= k %>-id">
34
+ <li class="dd-item dd3-item" data-id="<%= k.parameterize %>-id">
35
35
  <div class="dd3-content panel panel-default">
36
36
  <div class="dd-handle dd3-handle"><%= t(:drag) %></div>
37
37
  <div class="panel-heading" data-behavior="restore-default">
@@ -26,7 +26,7 @@
26
26
  <div class="panel-group dd sort_fields_admin col-sm-7" id="nested-sort-fields" data-behavior="nestable" data-max-depth="1">
27
27
  <ol class="dd-list">
28
28
  <% @blacklight_configuration.blacklight_config.sort_fields.except(default_field.key).each_with_index do |(k, config), index| %>
29
- <li class="dd-item dd3-item" data-id="<%= k %>-id">
29
+ <li class="dd-item dd3-item" data-id="<%= k.parameterize %>-id">
30
30
  <div class="dd3-content panel panel-default">
31
31
  <div class="dd-handle dd3-handle"><%= t(:drag) %></div>
32
32
  <div class="panel-heading" data-behavior="restore-default">
@@ -1,3 +1,3 @@
1
1
  module Spotlight
2
- VERSION = '0.28.3'.freeze
2
+ VERSION = '0.29.0'.freeze
3
3
  end
@@ -12,7 +12,7 @@ describe Spotlight::FiltersController do
12
12
  context 'when not signed in' do
13
13
  it 'is not successful' do
14
14
  post :create, params: { exhibit_id: exhibit, filter: { field: 'foo_ssi', value: 'bar_ssi' } }
15
- expect(:response).to redirect_to main_app.new_user_session_path
15
+ expect(response).to redirect_to main_app.new_user_session_path
16
16
  end
17
17
  end
18
18
 
@@ -22,13 +22,13 @@ describe Spotlight::FiltersController do
22
22
 
23
23
  it 'is successful' do
24
24
  post :create, params: { exhibit_id: exhibit, filter: { field: 'foo_ssi', value: 'bar' } }
25
- expect(:response).to redirect_to edit_exhibit_path(exhibit, anchor: 'filter')
25
+ expect(response).to redirect_to edit_exhibit_path(exhibit, anchor: 'filter')
26
26
  expect(assigns[:exhibit].solr_data).to eq('foo_ssi' => 'bar')
27
27
  end
28
28
 
29
29
  it 'valids filter values' do
30
30
  post :create, params: { exhibit_id: exhibit, filter: { field: 'foo_ssi', value: '' } }
31
- expect(:response).to redirect_to edit_exhibit_path(exhibit, anchor: 'filter')
31
+ expect(response).to redirect_to edit_exhibit_path(exhibit, anchor: 'filter')
32
32
  expect(flash[:alert]).to include "Value can't be blank"
33
33
  end
34
34
  end
@@ -45,7 +45,7 @@ describe Spotlight::FiltersController do
45
45
  context 'when not signed in' do
46
46
  it 'is not successful' do
47
47
  patch :update, params: { exhibit_id: exhibit, id: exhibit_filter, filter: { field: 'foo_ssi', value: 'bar_ssi' } }
48
- expect(:response).to redirect_to main_app.new_user_session_path
48
+ expect(response).to redirect_to main_app.new_user_session_path
49
49
  end
50
50
  end
51
51
 
@@ -55,13 +55,13 @@ describe Spotlight::FiltersController do
55
55
 
56
56
  it 'is successful' do
57
57
  patch :update, params: { exhibit_id: exhibit, id: exhibit_filter, filter: { field: 'foo_ssi', value: 'bar' } }
58
- expect(:response).to redirect_to edit_exhibit_path(exhibit, anchor: 'filter')
58
+ expect(response).to redirect_to edit_exhibit_path(exhibit, anchor: 'filter')
59
59
  expect(assigns[:exhibit].solr_data).to eq('foo_ssi' => 'bar')
60
60
  end
61
61
 
62
62
  it 'valids filter values' do
63
63
  patch :update, params: { exhibit_id: exhibit, id: exhibit_filter, filter: { field: 'foo_ssi', value: '' } }
64
- expect(:response).to redirect_to edit_exhibit_path(exhibit, anchor: 'filter')
64
+ expect(response).to redirect_to edit_exhibit_path(exhibit, anchor: 'filter')
65
65
  expect(flash[:alert]).to include "Value can't be blank"
66
66
  end
67
67
  end
@@ -14,7 +14,8 @@ describe 'Featured Browse Category Block', type: :feature, js: true do
14
14
  add_widget 'browse'
15
15
  end
16
16
 
17
- it 'allows a curator to select from existing browse categories' do
17
+ pending 'allows a curator to select from existing browse categories' do
18
+ pending('Prefetched autocomplete does not work the same way as solr-backed autocompletes')
18
19
  check 'Include item counts?'
19
20
 
20
21
  fill_in_typeahead_field with: 'Title1'
@@ -33,7 +34,8 @@ describe 'Featured Browse Category Block', type: :feature, js: true do
33
34
  expect(page).to have_css('.item-count', text: /\d+ items/i)
34
35
  end
35
36
 
36
- it 'allows the curator to omit document counts' do
37
+ pending 'allows the curator to omit document counts' do
38
+ pending('Prefetched autocomplete does not work the same way as solr-backed autocompletes')
37
39
  uncheck 'Include item counts?'
38
40
  fill_in_typeahead_field with: 'Title1'
39
41
  save_page
@@ -24,7 +24,8 @@ describe 'Featured Pages Blocks', type: :feature, js: true do
24
24
  login_as exhibit_curator
25
25
  end
26
26
 
27
- it 'saves the selected exhibits' do
27
+ pending 'saves the selected exhibits' do
28
+ pending('Prefetched autocomplete does not work the same way as solr-backed autocompletes')
28
29
  visit spotlight.exhibit_home_page_path(exhibit, exhibit.home_page)
29
30
 
30
31
  click_link('Edit')
@@ -38,7 +39,8 @@ describe 'Featured Pages Blocks', type: :feature, js: true do
38
39
  expect(page).to have_content feature_page2.title
39
40
  end
40
41
 
41
- it 'persists the user selected sort order' do
42
+ pending 'persists the user selected sort order' do
43
+ pending('Prefetched autocomplete does not work the same way as solr-backed autocompletes')
42
44
  visit spotlight.exhibit_home_page_path(exhibit, exhibit.home_page)
43
45
 
44
46
  click_link('Edit')
@@ -15,7 +15,8 @@ describe 'Search Result Block', type: :feature, js: true do
15
15
  add_widget 'search_results'
16
16
  end
17
17
 
18
- it 'allows a curator to select from existing browse categories' do
18
+ pending 'allows a curator to select from existing browse categories' do
19
+ pending('Prefetched autocomplete does not work the same way as solr-backed autocompletes')
19
20
  fill_in_typeahead_field with: 'All Exhibit Items'
20
21
 
21
22
  check 'Gallery'
@@ -6,7 +6,7 @@ describe Spotlight::PagesHelper, type: :helper do
6
6
  let!(:home_page) { current_exhibit.home_page }
7
7
  let!(:search) { FactoryGirl.create(:search, exhibit: current_exhibit, query_params: { 'q' => 'query' }, published: true) }
8
8
 
9
- before(:each) do
9
+ before do
10
10
  allow(helper).to receive_messages(blacklight_config: blacklight_config)
11
11
  end
12
12
 
@@ -2,7 +2,7 @@ describe Spotlight::BlacklightConfiguration, type: :model do
2
2
  subject { described_class.new }
3
3
  let(:blacklight_config) { Blacklight::Configuration.new }
4
4
 
5
- before :each do
5
+ before do
6
6
  blacklight_config.configure do |config|
7
7
  config.add_sort_field 'relevance', sort: 'score desc, sort_title_ssi asc', label: 'Relevance'
8
8
  config.add_sort_field 'title', sort: 'sort_title_ssi asc', label: 'Title'
@@ -1,12 +1,9 @@
1
-
2
1
  describe Spotlight::Resources::Web, type: :model do
3
2
  class TestResource < Spotlight::Resource
4
3
  include Spotlight::Resources::Web
5
4
  end
6
5
 
7
6
  subject { TestResource.new }
8
- describe '.fetch' do
9
- end
10
7
 
11
8
  describe '#harvest!' do
12
9
  it 'caches the body and headers in the data' do
@@ -47,12 +47,4 @@ class TestAppGenerator < Rails::Generators::Base
47
47
  EOF
48
48
  end
49
49
  end
50
-
51
- def disable_papertrail_associations
52
- initializer 'paper_trail.rb' do
53
- <<-EOF
54
- PaperTrail.config.track_associations = false
55
- EOF
56
- end
57
- end
58
50
  end
@@ -5,7 +5,7 @@ describe 'shared/_exhibit_navbar', type: :view do
5
5
  let(:about_page) { FactoryGirl.create(:about_page, exhibit: current_exhibit) }
6
6
  let(:unpublished_about_page) { FactoryGirl.create(:about_page, published: false, exhibit: current_exhibit) }
7
7
 
8
- before :each do
8
+ before do
9
9
  allow(view).to receive_messages(resource_masthead?: false)
10
10
  allow(view).to receive_messages(current_exhibit: current_exhibit)
11
11
  allow(view).to receive_messages(on_browse_page?: false, on_about_page?: false)
@@ -2,12 +2,12 @@
2
2
  describe 'spotlight/browse/search', type: :view do
3
3
  let(:search) { FactoryGirl.create(:search) }
4
4
  let(:exhibit) { FactoryGirl.create(:exhibit) }
5
- before :each do
5
+ before do
6
6
  allow(search).to receive_messages(documents: double(size: 15))
7
7
  allow(search).to receive_message_chain(:thumbnail, :image, thumb: '/some/image')
8
8
  end
9
9
 
10
- before :each do
10
+ before do
11
11
  assign :exhibit, exhibit
12
12
  end
13
13
 
@@ -3,7 +3,7 @@ describe 'spotlight/browse/show', type: :view do
3
3
  let(:search) { FactoryGirl.create(:published_search) }
4
4
  let(:exhibit) { FactoryGirl.create(:exhibit) }
5
5
 
6
- before :each do
6
+ before do
7
7
  allow(view).to receive_messages(resource_masthead?: false)
8
8
  allow(view).to receive_messages(blacklight_config: Blacklight::Configuration.new)
9
9
  view.blacklight_config.view.gallery = true
@@ -14,7 +14,7 @@ describe 'spotlight/browse/show', type: :view do
14
14
  stub_template 'spotlight/browse/_tophat.html.erb' => ''
15
15
  end
16
16
 
17
- before :each do
17
+ before do
18
18
  assign :exhibit, exhibit
19
19
  assign :search, search
20
20
  assign :document_list, []
@@ -6,7 +6,7 @@ describe 'spotlight/pages/show', type: :view do
6
6
  title: 'Title',
7
7
  content: '[]')
8
8
  end
9
- before(:each) do
9
+ before do
10
10
  allow(view).to receive(:current_exhibit).and_return(exhibit)
11
11
  assign(:page, page)
12
12
  stub_template 'spotlight/pages/_sidebar.html.erb' => 'Sidebar'
@@ -13,6 +13,7 @@ describe 'spotlight/search_configurations/_search_fields', type: :view do
13
13
  assign(:blacklight_configuration, exhibit.blacklight_configuration)
14
14
  allow(view).to receive_messages(current_exhibit: exhibit)
15
15
  exhibit.blacklight_config.add_search_field 'some_hidden_field', include_in_simple_select: false
16
+ exhibit.blacklight_config.add_search_field 'some_field with_a_space'
16
17
  render partial: 'spotlight/search_configurations/search_fields', locals: { f: f }
17
18
  end
18
19
 
@@ -37,4 +38,8 @@ describe 'spotlight/search_configurations/_search_fields', type: :view do
37
38
  expect(rendered).not_to have_selector "input[name='blacklight_configuration[search_fields][autocomplete][enabled]']"
38
39
  expect(rendered).not_to have_selector "input[name='blacklight_configuration[search_fields][some_hidden_field][enabled]']"
39
40
  end
41
+
42
+ it 'parameterizes the data-id attribute for searcn field keh' do
43
+ expect(rendered).to have_selector '[data-id="some_field-with_a_space-id"]'
44
+ end
40
45
  end
@@ -1,6 +1,7 @@
1
1
  describe 'spotlight/search_configurations/_sort', type: :view do
2
2
  let(:exhibit) { FactoryGirl.create(:exhibit) }
3
3
  before do
4
+ exhibit.blacklight_config.add_sort_field 'sort_title_ssi asc, plus_another_field desc', label: 'TestSort'
4
5
  assign(:exhibit, exhibit)
5
6
  assign(:blacklight_configuration, exhibit.blacklight_configuration)
6
7
  allow(view).to receive_messages(
@@ -21,4 +22,9 @@ describe 'spotlight/search_configurations/_sort', type: :view do
21
22
  render partial: 'spotlight/search_configurations/sort', locals: { f: f }
22
23
  expect(rendered).to have_selector "input[name='blacklight_configuration[sort_fields][relevance][enable]'][disabled='disabled']"
23
24
  end
25
+
26
+ it 'parameterizes the data-id attribute for sort fields (e.g. when no key is supplied and the sort is used as the key)' do
27
+ render partial: 'spotlight/search_configurations/sort', locals: { f: f }
28
+ expect(rendered).to have_css('[data-id="sort_title_ssi-asc-plus_another_field-desc-id"]')
29
+ end
24
30
  end
@@ -9,7 +9,7 @@ $light-ui-color: $gray-light;
9
9
  $blocks-control-bg-color: $panel-default-heading-bg;
10
10
  $blocks-control-border-color: $panel-default-border;
11
11
  $error-color: $brand-danger;
12
- $selection-color: inherit;
12
+ $selection-color: #B4D5FE;
13
13
 
14
14
  $inner-block-padding: $grid-gutter-width $grid-gutter-width $grid-gutter-width + 18px $grid-gutter-width;
15
15
 
@@ -11,17 +11,6 @@
11
11
  fill: currentColor;
12
12
  }
13
13
 
14
- .st-block__inner {
15
- ::-moz-selection {
16
- background: $selection-color;
17
- text-shadow: none;
18
- }
19
- ::selection {
20
- background: $selection-color;
21
- text-shadow: none;
22
- }
23
- }
24
-
25
14
  .st-spinner {
26
15
  position: absolute!important;
27
16
  left: 50%; top: 50%;
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: blacklight-spotlight
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.28.3
4
+ version: 0.29.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Beer
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2016-08-22 00:00:00.000000000 Z
14
+ date: 2016-09-20 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: rails
@@ -396,6 +396,9 @@ dependencies:
396
396
  - - "~>"
397
397
  - !ruby/object:Gem::Version
398
398
  version: '5.0'
399
+ - - ">="
400
+ - !ruby/object:Gem::Version
401
+ version: 5.2.1
399
402
  type: :runtime
400
403
  prerelease: false
401
404
  version_requirements: !ruby/object:Gem::Requirement
@@ -403,6 +406,9 @@ dependencies:
403
406
  - - "~>"
404
407
  - !ruby/object:Gem::Version
405
408
  version: '5.0'
409
+ - - ">="
410
+ - !ruby/object:Gem::Version
411
+ version: 5.2.1
406
412
  - !ruby/object:Gem::Dependency
407
413
  name: openseadragon
408
414
  requirement: !ruby/object:Gem::Requirement
@@ -597,14 +603,14 @@ dependencies:
597
603
  requirements:
598
604
  - - "~>"
599
605
  - !ruby/object:Gem::Version
600
- version: '0.9'
606
+ version: '1.0'
601
607
  type: :development
602
608
  prerelease: false
603
609
  version_requirements: !ruby/object:Gem::Requirement
604
610
  requirements:
605
611
  - - "~>"
606
612
  - !ruby/object:Gem::Version
607
- version: '0.9'
613
+ version: '1.0'
608
614
  - !ruby/object:Gem::Dependency
609
615
  name: database_cleaner
610
616
  requirement: !ruby/object:Gem::Requirement