openseadragon 0.9.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby.yml +4 -5
  3. data/README.md +18 -3
  4. data/app/assets/javascripts/openseadragon/dom.js +58 -0
  5. data/app/assets/javascripts/openseadragon/jquery.js +5 -4
  6. data/app/assets/javascripts/openseadragon/rails.js +8 -26
  7. data/app/helpers/openseadragon/openseadragon_helper.rb +44 -44
  8. data/lib/generators/openseadragon/install_generator.rb +12 -13
  9. data/lib/openseadragon/engine.rb +1 -1
  10. data/lib/openseadragon/version.rb +1 -1
  11. data/spec/helpers/openseadragon_helper_spec.rb +11 -13
  12. metadata +3 -44
  13. data/vendor/assets/images/openseadragon/button_grouphover.png +0 -0
  14. data/vendor/assets/images/openseadragon/button_hover.png +0 -0
  15. data/vendor/assets/images/openseadragon/button_pressed.png +0 -0
  16. data/vendor/assets/images/openseadragon/button_rest.png +0 -0
  17. data/vendor/assets/images/openseadragon/flip_grouphover.png +0 -0
  18. data/vendor/assets/images/openseadragon/flip_hover.png +0 -0
  19. data/vendor/assets/images/openseadragon/flip_pressed.png +0 -0
  20. data/vendor/assets/images/openseadragon/flip_rest.png +0 -0
  21. data/vendor/assets/images/openseadragon/fullpage_grouphover.png +0 -0
  22. data/vendor/assets/images/openseadragon/fullpage_hover.png +0 -0
  23. data/vendor/assets/images/openseadragon/fullpage_pressed.png +0 -0
  24. data/vendor/assets/images/openseadragon/fullpage_rest.png +0 -0
  25. data/vendor/assets/images/openseadragon/home_grouphover.png +0 -0
  26. data/vendor/assets/images/openseadragon/home_hover.png +0 -0
  27. data/vendor/assets/images/openseadragon/home_pressed.png +0 -0
  28. data/vendor/assets/images/openseadragon/home_rest.png +0 -0
  29. data/vendor/assets/images/openseadragon/next_grouphover.png +0 -0
  30. data/vendor/assets/images/openseadragon/next_hover.png +0 -0
  31. data/vendor/assets/images/openseadragon/next_pressed.png +0 -0
  32. data/vendor/assets/images/openseadragon/next_rest.png +0 -0
  33. data/vendor/assets/images/openseadragon/previous_grouphover.png +0 -0
  34. data/vendor/assets/images/openseadragon/previous_hover.png +0 -0
  35. data/vendor/assets/images/openseadragon/previous_pressed.png +0 -0
  36. data/vendor/assets/images/openseadragon/previous_rest.png +0 -0
  37. data/vendor/assets/images/openseadragon/rotateleft_grouphover.png +0 -0
  38. data/vendor/assets/images/openseadragon/rotateleft_hover.png +0 -0
  39. data/vendor/assets/images/openseadragon/rotateleft_pressed.png +0 -0
  40. data/vendor/assets/images/openseadragon/rotateleft_rest.png +0 -0
  41. data/vendor/assets/images/openseadragon/rotateright_grouphover.png +0 -0
  42. data/vendor/assets/images/openseadragon/rotateright_hover.png +0 -0
  43. data/vendor/assets/images/openseadragon/rotateright_pressed.png +0 -0
  44. data/vendor/assets/images/openseadragon/rotateright_rest.png +0 -0
  45. data/vendor/assets/images/openseadragon/zoomin_grouphover.png +0 -0
  46. data/vendor/assets/images/openseadragon/zoomin_hover.png +0 -0
  47. data/vendor/assets/images/openseadragon/zoomin_pressed.png +0 -0
  48. data/vendor/assets/images/openseadragon/zoomin_rest.png +0 -0
  49. data/vendor/assets/images/openseadragon/zoomout_grouphover.png +0 -0
  50. data/vendor/assets/images/openseadragon/zoomout_hover.png +0 -0
  51. data/vendor/assets/images/openseadragon/zoomout_pressed.png +0 -0
  52. data/vendor/assets/images/openseadragon/zoomout_rest.png +0 -0
  53. data/vendor/assets/javascripts/openseadragon/openseadragon.js +0 -27261
  54. data/vendor/assets/javascripts/openseadragon/openseadragon.js.map +0 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9e3da1588ba9032045fdd971139a7c1148b9018a0116105dcadb4b92ec71eb1b
4
- data.tar.gz: 9c4540d29f7811b595351270a85147e542ece5d5a8a158d31660b524588520e2
3
+ metadata.gz: d7774460f6047afd32a055f73ef27f7f526a2d83e27b5c66bab970fde011d293
4
+ data.tar.gz: 1a902664d22f91262178b5a7658de84906cc56c0fdfd604409ca3c6ce081590d
5
5
  SHA512:
6
- metadata.gz: 66b8a096d5feac7919a9184c95aa27dcc212d37a544193ce446f1a9ec04987d07f7c2d2223d059fea7b76903259298b588de613787fe117f62e9ed65917a1659
7
- data.tar.gz: 76346caa73ff55e6f0bea32ec54c11a0168a01c56ba5901b14089dcd76ad4b2c60fdc1fb00515679eccc9b8b0d3c3c1c1d81cced7c119d275cddad3641b4e6b9
6
+ metadata.gz: a8c0ee6fc12b38de8943f6122f4357d98b84356fb2bcd696b54ef603e9709d77023b470bbdc012d7b57675aa07637b9d60644f9b4174556f407d964452ae99d2
7
+ data.tar.gz: c69f13549e8763a3bbc016e78f6717cc316755896cf23fd0182c06b6fd15f7e095933e1a2c09476e014b7e4ef8dae440cd74fa1f02871e8d150fa0a730fccf10
@@ -11,17 +11,16 @@ jobs:
11
11
  runs-on: ubuntu-latest
12
12
  strategy:
13
13
  matrix:
14
- rails_version: [7.2.0]
14
+ rails_version: [8.0.1]
15
15
  ruby: [3.2, 3.3]
16
16
  include:
17
17
  - ruby: 3.3
18
- rails_version: 7.1.3.4
18
+ rails_version: 7.2.2.1
19
19
  - ruby: 3.2
20
- rails_version: 7.0.8.4
21
- - ruby: 3.1
22
- rails_version: 6.1.7.8
20
+ rails_version: 7.1.5.1
23
21
  env:
24
22
  RAILS_VERSION: ${{ matrix.rails_version }}
23
+ ENGINE_CART_RAILS_OPTIONS: "--skip-git --skip-listen --skip-spring --skip-keeps --skip-kamal --skip-test -a propshaft"
25
24
  steps:
26
25
  - uses: actions/checkout@v2
27
26
  - name: Set up Ruby ${{ matrix.ruby }}
data/README.md CHANGED
@@ -12,7 +12,7 @@ Add the gem to your Gemfile:
12
12
  gem 'openseadragon'
13
13
  ```
14
14
 
15
- Run bundle install:
15
+ Run bundle install:
16
16
 
17
17
  ```
18
18
  $ bundle install
@@ -28,10 +28,25 @@ The generator will install the Rails helpers and openseadragon assets.
28
28
 
29
29
  ## Usage
30
30
 
31
+ You must provide the `OpenSeadragon` function as a global. You can do this via the NPM dependency:
32
+ ```js
33
+ import OpenSeadragon from 'openseadragon'
34
+ window.OpenSeadragon = OpenSeadragon
35
+ ```
36
+
37
+ or via the CDN:
38
+ ```html
39
+ <script src="https://cdn.jsdelivr.net/npm/openseadragon@5.0/build/openseadragon/openseadragon.min.js"></script>
40
+ ```
41
+
42
+ See [https://openseadragon.github.io](https://openseadragon.github.io) for further details
43
+
44
+
45
+ ### Helpers
31
46
  This gem provides two helpers, `#picture_tag` and `#openseadragon_picture_tag`.
32
47
 
33
48
 
34
- ### picture_tag
49
+ #### picture_tag
35
50
 
36
51
  The `#picture_tag` helper creates [HTML5 <picture> tags](http://www.w3.org/TR/html-picture-element/).
37
52
 
@@ -65,7 +80,7 @@ picture_tag ['page1.jpg' => { id: 'first-picture'}], 'page2.jpg', 'page3.jpg', {
65
80
  </picture>
66
81
  ```
67
82
 
68
- ### openseadragon_picture_tag
83
+ #### openseadragon_picture_tag
69
84
 
70
85
  If you have an OpenSeaDragon tilesource, you can use this helper to construct a HTML5 `<picture>` that will render as an OpenSeaDragon tile viewer.
71
86
 
@@ -0,0 +1,58 @@
1
+ (function() {
2
+ let __osd_counter = 0;
3
+
4
+ function generateOsdId() {
5
+ __osd_counter++;
6
+ return "Openseadragon" + __osd_counter;
7
+ }
8
+
9
+ function openseadragon() {
10
+ this.forEach(function(picture) {
11
+ // Ensure the element is an HTMLElement
12
+ if (!(picture instanceof HTMLElement)) return;
13
+
14
+ picture.classList.add('openseadragon-viewer');
15
+
16
+ // Set ID if it doesn't exist
17
+ if (!picture.id) {
18
+ picture.id = generateOsdId();
19
+ }
20
+
21
+ // Retrieve openseadragon data attribute as JSON
22
+ const collectionOptions = picture.dataset.openseadragon
23
+ ? JSON.parse(picture.dataset.openseadragon)
24
+ : {};
25
+
26
+ // Find all <source> elements with media="openseadragon"
27
+ const sources = Array.from(picture.querySelectorAll('source[media="openseadragon"]'));
28
+
29
+ const tileSources = sources.map(source => {
30
+ const osdData = source.dataset.openseadragon;
31
+ return osdData ? JSON.parse(osdData) : source.getAttribute('src');
32
+ });
33
+
34
+ // Preserve height of the picture
35
+ const height = window.getComputedStyle(picture).height;
36
+ picture.style.height = height;
37
+
38
+ // Initialize OpenSeadragon
39
+ picture.osdViewer = OpenSeadragon({
40
+ id: picture.id,
41
+ ...collectionOptions,
42
+ tileSources: tileSources
43
+ });
44
+ });
45
+
46
+ return this;
47
+ }
48
+
49
+ // Attach the function to NodeList and HTMLElement prototypes for convenience
50
+ NodeList.prototype.openseadragon = openseadragon;
51
+ HTMLCollection.prototype.openseadragon = openseadragon;
52
+
53
+ // For a single HTMLElement
54
+ HTMLElement.prototype.openseadragon = function() {
55
+ return openseadragon.call([this]);
56
+ };
57
+
58
+ })();
@@ -1,22 +1,23 @@
1
1
  (function($) {
2
2
  $.fn.openseadragon = function() {
3
+ console.warn("openseadragon/jquery.js is deprecated. Use openseadragon/dom.js instead.")
3
4
  var __osd_counter = 0;
4
5
  function generateOsdId() {
5
6
  __osd_counter++;
6
-
7
+
7
8
  return "Openseadragon" + __osd_counter;
8
9
  }
9
10
 
10
11
  $(this).each(function() {
11
12
  var $picture = $(this);
12
13
  $picture.addClass('openseadragon-viewer');
13
-
14
+
14
15
  if (typeof $picture.attr('id') === "undefined") {
15
16
  $picture.attr('id', generateOsdId());
16
17
  }
17
18
 
18
19
  var collectionOptions = $picture.data('openseadragon');
19
-
20
+
20
21
  var sources = $picture.find('source[media="openseadragon"]');
21
22
 
22
23
  var tilesources = $.map(sources, function(e) {
@@ -36,4 +37,4 @@
36
37
 
37
38
  return this;
38
39
  };
39
- })(jQuery);
40
+ })(jQuery);
@@ -1,32 +1,14 @@
1
- //= require openseadragon/jquery
1
+ import 'openseadragon/dom'
2
2
 
3
- (function($) {
3
+ (function() {
4
4
  function initOpenSeadragon() {
5
- $('picture[data-openseadragon]:not(:has(.openseadragon-container))').openseadragon();
5
+ document.querySelectorAll('picture[data-openseadragon]:not(:has(.openseadragon-container))').openseadragon();
6
6
  }
7
7
 
8
- const jquery3 = parseInt($.fn.jquery.split('.')[0]) >= 3;
9
- let handler = 'ready';
10
-
11
8
  if (typeof Turbo !== 'undefined') {
12
- handler = 'turbo:load turbo:frame-load';
13
- } else if (typeof Turbolinks !== 'undefined' && Turbolinks.supported) {
14
- // Turbolinks 5
15
- if (Turbolinks.BrowserAdapter) {
16
- handler = 'turbolinks:load';
17
- } else {
18
- // Turbolinks < 5
19
- handler = 'page:load ready';
20
- }
21
- }
22
-
23
- // Support for $(document).on( "ready", handler ) was removed in jQuery 3
24
- if (jquery3 && handler.includes('ready')) {
25
- handler = handler.replace('ready', '').trim();
26
- $(initOpenSeadragon);
27
- }
28
-
29
- if (handler) {
30
- $(document).on(handler, initOpenSeadragon);
9
+ addEventListener("turbo:load", () => initOpenSeadragon())
10
+ addEventListener("turbo:frame-load", () => initOpenSeadragon())
11
+ } else {
12
+ addEventListener('load', () => initOpenSeadragon())
31
13
  }
32
- })(jQuery);
14
+ })();
@@ -6,7 +6,7 @@ module Openseadragon
6
6
  # for the value of the src attribute and the value as the
7
7
  # arguments for the tag options.
8
8
  #
9
- # The last hash is intepreted as optional arguments for the
9
+ # The last hash is intepreted as optional arguments for the
10
10
  # <picture> tag. The second to last hash is optional arguments
11
11
  # to all <source> tags.
12
12
  #
@@ -23,10 +23,10 @@ module Openseadragon
23
23
  src, src_options = source.first
24
24
  src_options ||= {}
25
25
  source_options.merge(src_options.merge(src: src))
26
- else
26
+ else
27
27
  source_options.merge(src: source)
28
28
  end
29
-
29
+
30
30
  yield tag_options if block_given?
31
31
  tag :source, tag_options
32
32
  end)
@@ -34,7 +34,7 @@ module Openseadragon
34
34
  end
35
35
 
36
36
  ##
37
- # Generate a <picture> tag ready to be parsed by the openseadragon/rails
37
+ # Generate a <picture> tag ready to be parsed by the rails
38
38
  # javascript and transformed into an openseadragon viewer. Openseadragon
39
39
  # tile source options are passed as a JSON encoded hash on the
40
40
  # data-openseadragon attribute.
@@ -49,7 +49,7 @@ module Openseadragon
49
49
  sources.flatten!
50
50
 
51
51
  tile_sources = sources.map { |thing| extract_openseadragon_picture_tilesource(thing) }
52
-
52
+
53
53
  picture_options[:data] ||= {}
54
54
  picture_options[:data][:openseadragon] = osd_asset_defaults.merge(picture_options[:data][:openseadragon] || {}).to_json
55
55
 
@@ -64,7 +64,7 @@ module Openseadragon
64
64
  # @overload extract_openseadragon_picture_tilesource(tilesource_obj)
65
65
  # @param tilesource_obj [#to_tilesource] a tilesource-backed object that
66
66
  # is either a hash of openseadragon tilesource parameters or a URL to
67
- # a manifest containing those parameters.
67
+ # a manifest containing those parameters.
68
68
  # @overload extract_openseadragon_picture_tilesource(options)
69
69
  # @param [Hash] options a hash of openseadragon tilesource options
70
70
  # @option options [Hash] :html parameters for the <source> tag
@@ -79,10 +79,10 @@ module Openseadragon
79
79
  html_options ||= {}
80
80
  html_options[:data] ||= {}
81
81
  html_options[:data][:openseadragon] ||= {}
82
-
82
+
83
83
  tilesource = thing.to_tilesource
84
84
  src = "openseadragon-tilesource"
85
-
85
+
86
86
  if tilesource.is_a? Hash
87
87
  html_options[:data][:openseadragon].merge! tilesource
88
88
  else
@@ -96,13 +96,13 @@ module Openseadragon
96
96
  html_options = {}
97
97
  html_options.merge! src_options.fetch(:html, {})
98
98
  html_options[:data] ||= {}
99
-
99
+
100
100
  osd_options = html_options[:data][:openseadragon] || {}
101
101
  osd_options.merge!(src_options.except(:html))
102
102
 
103
103
  if src.respond_to? :to_tilesource
104
104
  tilesource = src.to_tilesource
105
-
105
+
106
106
  if tilesource.is_a? Hash
107
107
  osd_options.reverse_merge! tilesource
108
108
  src = "openseadragon-tilesource"
@@ -110,9 +110,9 @@ module Openseadragon
110
110
  src = tilesource
111
111
  end
112
112
  end
113
-
113
+
114
114
  html_options[:data][:openseadragon] = osd_options.to_json
115
-
115
+
116
116
  [ html_options.fetch(:src, src) => html_options ]
117
117
  else # string
118
118
  thing
@@ -124,52 +124,52 @@ module Openseadragon
124
124
  prefixUrl: '',
125
125
  navImages: {
126
126
  zoomIn: {
127
- REST: path_to_image('openseadragon/zoomin_rest.png'),
128
- GROUP: path_to_image('openseadragon/zoomin_grouphover.png'),
129
- HOVER: path_to_image('openseadragon/zoomin_hover.png'),
130
- DOWN: path_to_image('openseadragon/zoomin_pressed.png')
127
+ REST: path_to_image('zoomin_rest.png'),
128
+ GROUP: path_to_image('zoomin_grouphover.png'),
129
+ HOVER: path_to_image('zoomin_hover.png'),
130
+ DOWN: path_to_image('zoomin_pressed.png')
131
131
  },
132
132
  zoomOut: {
133
- REST: path_to_image('openseadragon/zoomout_rest.png'),
134
- GROUP: path_to_image('openseadragon/zoomout_grouphover.png'),
135
- HOVER: path_to_image('openseadragon/zoomout_hover.png'),
136
- DOWN: path_to_image('openseadragon/zoomout_pressed.png')
133
+ REST: path_to_image('zoomout_rest.png'),
134
+ GROUP: path_to_image('zoomout_grouphover.png'),
135
+ HOVER: path_to_image('zoomout_hover.png'),
136
+ DOWN: path_to_image('zoomout_pressed.png')
137
137
  },
138
138
  home: {
139
- REST: path_to_image('openseadragon/home_rest.png'),
140
- GROUP: path_to_image('openseadragon/home_grouphover.png'),
141
- HOVER: path_to_image('openseadragon/home_hover.png'),
142
- DOWN: path_to_image('openseadragon/home_pressed.png')
139
+ REST: path_to_image('home_rest.png'),
140
+ GROUP: path_to_image('home_grouphover.png'),
141
+ HOVER: path_to_image('home_hover.png'),
142
+ DOWN: path_to_image('home_pressed.png')
143
143
  },
144
144
  fullpage: {
145
- REST: path_to_image('openseadragon/fullpage_rest.png'),
146
- GROUP: path_to_image('openseadragon/fullpage_grouphover.png'),
147
- HOVER: path_to_image('openseadragon/fullpage_hover.png'),
148
- DOWN: path_to_image('openseadragon/fullpage_pressed.png')
145
+ REST: path_to_image('fullpage_rest.png'),
146
+ GROUP: path_to_image('fullpage_grouphover.png'),
147
+ HOVER: path_to_image('fullpage_hover.png'),
148
+ DOWN: path_to_image('fullpage_pressed.png')
149
149
  },
150
150
  rotateleft: {
151
- REST: path_to_image('openseadragon/rotateleft_rest.png'),
152
- GROUP: path_to_image('openseadragon/rotateleft_grouphover.png'),
153
- HOVER: path_to_image('openseadragon/rotateleft_hover.png'),
154
- DOWN: path_to_image('openseadragon/rotateleft_pressed.png')
151
+ REST: path_to_image('rotateleft_rest.png'),
152
+ GROUP: path_to_image('rotateleft_grouphover.png'),
153
+ HOVER: path_to_image('rotateleft_hover.png'),
154
+ DOWN: path_to_image('rotateleft_pressed.png')
155
155
  },
156
156
  rotateright: {
157
- REST: path_to_image('openseadragon/rotateright_rest.png'),
158
- GROUP: path_to_image('openseadragon/rotateright_grouphover.png'),
159
- HOVER: path_to_image('openseadragon/rotateright_hover.png'),
160
- DOWN: path_to_image('openseadragon/rotateright_pressed.png')
157
+ REST: path_to_image('rotateright_rest.png'),
158
+ GROUP: path_to_image('rotateright_grouphover.png'),
159
+ HOVER: path_to_image('rotateright_hover.png'),
160
+ DOWN: path_to_image('rotateright_pressed.png')
161
161
  },
162
162
  previous: {
163
- REST: path_to_image('openseadragon/previous_rest.png'),
164
- GROUP: path_to_image('openseadragon/previous_grouphover.png'),
165
- HOVER: path_to_image('openseadragon/previous_hover.png'),
166
- DOWN: path_to_image('openseadragon/previous_pressed.png')
163
+ REST: path_to_image('previous_rest.png'),
164
+ GROUP: path_to_image('previous_grouphover.png'),
165
+ HOVER: path_to_image('previous_hover.png'),
166
+ DOWN: path_to_image('previous_pressed.png')
167
167
  },
168
168
  next: {
169
- REST: path_to_image('openseadragon/next_rest.png'),
170
- GROUP: path_to_image('openseadragon/next_grouphover.png'),
171
- HOVER: path_to_image('openseadragon/next_hover.png'),
172
- DOWN: path_to_image('openseadragon/next_pressed.png')
169
+ REST: path_to_image('next_rest.png'),
170
+ GROUP: path_to_image('next_grouphover.png'),
171
+ HOVER: path_to_image('next_hover.png'),
172
+ DOWN: path_to_image('next_pressed.png')
173
173
  }
174
174
  }
175
175
  }.with_indifferent_access
@@ -4,29 +4,28 @@ module Openseadragon
4
4
  class Install < Rails::Generators::Base
5
5
  source_root File.expand_path('../templates', __FILE__)
6
6
 
7
- def assets
8
- return unless defined?(Sprockets)
9
-
10
- copy_file "openseadragon.css", "app/assets/stylesheets/openseadragon.css"
11
- copy_file "openseadragon.js", "app/assets/javascripts/openseadragon.js"
12
-
13
- if File.exist? 'app/assets/config/manifest.js'
14
- append_to_file 'app/assets/config/manifest.js', "\n//= link openseadragon-assets\n"
15
- end
16
- end
17
-
18
7
  def append_javascript
19
- return unless defined?(Importmap) && !defined?(Sprockets)
8
+ run "yarn init -y"
9
+ gsub_file "package.json", /\.internal_test_app/, "internal_test_app" # name beginning with a dot is illegal
10
+ run "yarn add openseadragon"
20
11
 
21
12
  append_to_file 'app/javascript/application.js' do
22
13
  <<~CONTENT
23
14
  // Openseadragon gem imports
24
- import "openseadragon/jquery"
15
+ import "openseadragon/dom"
25
16
  import "openseadragon/rails"
26
17
  CONTENT
27
18
  end
28
19
  end
29
20
 
21
+ def append_image_paths
22
+ append_to_file 'config/initializers/assets.rb' do
23
+ <<~CONTENT
24
+ Rails.application.config.assets.paths << Rails.application.root + 'node_modules/openseadragon/build/openseadragon/images'
25
+ CONTENT
26
+ end
27
+ end
28
+
30
29
  def inject_helper
31
30
  inject_into_class 'app/controllers/application_controller.rb', ApplicationController do
32
31
  " helper Openseadragon::OpenseadragonHelper\n"
@@ -15,7 +15,7 @@ module Openseadragon
15
15
  end
16
16
 
17
17
  initializer 'openseadragon.assets.precompile' do |app|
18
- app.config.assets.precompile += %w[openseadragon/*.png]
18
+ app.config.assets.precompile += %w[node_modules/openseadragon/build/openseadragon/images/*.png]
19
19
  end
20
20
 
21
21
  initializer "openseadragon.importmap", before: "importmap" do |app|
@@ -1,3 +1,3 @@
1
1
  module Openseadragon
2
- VERSION = "0.9.0"
2
+ VERSION = "1.0.0"
3
3
  end
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Openseadragon::OpenseadragonHelper do
3
+ RSpec.describe Openseadragon::OpenseadragonHelper do
4
4
  describe "#picture_tag" do
5
5
  context "without any sources" do
6
6
  it "should render an empty <picture>" do
@@ -88,7 +88,7 @@ describe Openseadragon::OpenseadragonHelper do
88
88
  end
89
89
  end
90
90
 
91
- context "tielsource key and options" do
91
+ context "tilesource key and options" do
92
92
  let(:source) { double(to_tilesource: { a: 1, b: 1}) }
93
93
  subject { helper.openseadragon_picture_tag([source => { html: { id: 'xyz' }, b: 2, c: 3}]) }
94
94
  it "should merge a tilesource key with the options provided" do
@@ -105,21 +105,19 @@ describe Openseadragon::OpenseadragonHelper do
105
105
 
106
106
  describe "['prefixUrl']" do
107
107
  subject { defaults['prefixUrl'] }
108
- it { should eq ''}
108
+ it { is_expected.to eq ''}
109
109
  end
110
110
 
111
111
  describe "['navImages']" do
112
112
  subject { defaults['navImages'] }
113
- it { should eq(
114
- "zoomIn"=>{"REST"=>"/assets/openseadragon/zoomin_rest.png", "GROUP"=>"/assets/openseadragon/zoomin_grouphover.png", "HOVER"=>"/assets/openseadragon/zoomin_hover.png", "DOWN"=>"/assets/openseadragon/zoomin_pressed.png"},
115
- "zoomOut"=>{"REST"=>"/assets/openseadragon/zoomout_rest.png", "GROUP"=>"/assets/openseadragon/zoomout_grouphover.png", "HOVER"=>"/assets/openseadragon/zoomout_hover.png", "DOWN"=>"/assets/openseadragon/zoomout_pressed.png"},
116
- "home"=>{"REST"=>"/assets/openseadragon/home_rest.png", "GROUP"=>"/assets/openseadragon/home_grouphover.png", "HOVER"=>"/assets/openseadragon/home_hover.png", "DOWN"=>"/assets/openseadragon/home_pressed.png"},
117
- "fullpage"=>{"REST"=>"/assets/openseadragon/fullpage_rest.png", "GROUP"=>"/assets/openseadragon/fullpage_grouphover.png", "HOVER"=>"/assets/openseadragon/fullpage_hover.png", "DOWN"=>"/assets/openseadragon/fullpage_pressed.png"},
118
- "rotateleft"=>{"REST"=>"/assets/openseadragon/rotateleft_rest.png", "GROUP"=>"/assets/openseadragon/rotateleft_grouphover.png", "HOVER"=>"/assets/openseadragon/rotateleft_hover.png", "DOWN"=>"/assets/openseadragon/rotateleft_pressed.png"},
119
- "rotateright"=>{"REST"=>"/assets/openseadragon/rotateright_rest.png", "GROUP"=>"/assets/openseadragon/rotateright_grouphover.png", "HOVER"=>"/assets/openseadragon/rotateright_hover.png", "DOWN"=>"/assets/openseadragon/rotateright_pressed.png"},
120
- "previous"=>{"REST"=>"/assets/openseadragon/previous_rest.png", "GROUP"=>"/assets/openseadragon/previous_grouphover.png", "HOVER"=>"/assets/openseadragon/previous_hover.png", "DOWN"=>"/assets/openseadragon/previous_pressed.png"},
121
- "next"=>{"REST"=>"/assets/openseadragon/next_rest.png", "GROUP"=>"/assets/openseadragon/next_grouphover.png", "HOVER"=>"/assets/openseadragon/next_hover.png", "DOWN"=>"/assets/openseadragon/next_pressed.png"}
122
- )}
113
+ it { is_expected.to include('zoomIn', 'zoomOut', 'home', 'fullpage', 'rotateleft', 'rotateright', 'previous', 'next') }
114
+
115
+ it 'has all the values' do
116
+ expect(subject).to all(include(have_key('REST')))
117
+ expect(subject).to all(include(have_key('GROUP')))
118
+ expect(subject).to all(include(have_key('HOVER')))
119
+ expect(subject).to all(include(have_key('DOWN')))
120
+ end
123
121
  end
124
122
  end
125
123
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openseadragon
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Coyne
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2024-12-10 00:00:00.000000000 Z
13
+ date: 2024-12-19 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: bundler
@@ -129,6 +129,7 @@ files:
129
129
  - Rakefile
130
130
  - app/assets/config/openseadragon-assets.js
131
131
  - app/assets/javascripts/openseadragon.js
132
+ - app/assets/javascripts/openseadragon/dom.js
132
133
  - app/assets/javascripts/openseadragon/jquery.js
133
134
  - app/assets/javascripts/openseadragon/rails.js
134
135
  - app/assets/stylesheets/openseadragon/openseadragon.css
@@ -149,48 +150,6 @@ files:
149
150
  - spec/spec_helper.rb
150
151
  - spec/test_app_templates/lib/generators/test_app_generator.rb
151
152
  - spec/test_app_templates/show.html.erb
152
- - vendor/assets/images/openseadragon/button_grouphover.png
153
- - vendor/assets/images/openseadragon/button_hover.png
154
- - vendor/assets/images/openseadragon/button_pressed.png
155
- - vendor/assets/images/openseadragon/button_rest.png
156
- - vendor/assets/images/openseadragon/flip_grouphover.png
157
- - vendor/assets/images/openseadragon/flip_hover.png
158
- - vendor/assets/images/openseadragon/flip_pressed.png
159
- - vendor/assets/images/openseadragon/flip_rest.png
160
- - vendor/assets/images/openseadragon/fullpage_grouphover.png
161
- - vendor/assets/images/openseadragon/fullpage_hover.png
162
- - vendor/assets/images/openseadragon/fullpage_pressed.png
163
- - vendor/assets/images/openseadragon/fullpage_rest.png
164
- - vendor/assets/images/openseadragon/home_grouphover.png
165
- - vendor/assets/images/openseadragon/home_hover.png
166
- - vendor/assets/images/openseadragon/home_pressed.png
167
- - vendor/assets/images/openseadragon/home_rest.png
168
- - vendor/assets/images/openseadragon/next_grouphover.png
169
- - vendor/assets/images/openseadragon/next_hover.png
170
- - vendor/assets/images/openseadragon/next_pressed.png
171
- - vendor/assets/images/openseadragon/next_rest.png
172
- - vendor/assets/images/openseadragon/previous_grouphover.png
173
- - vendor/assets/images/openseadragon/previous_hover.png
174
- - vendor/assets/images/openseadragon/previous_pressed.png
175
- - vendor/assets/images/openseadragon/previous_rest.png
176
- - vendor/assets/images/openseadragon/rotateleft_grouphover.png
177
- - vendor/assets/images/openseadragon/rotateleft_hover.png
178
- - vendor/assets/images/openseadragon/rotateleft_pressed.png
179
- - vendor/assets/images/openseadragon/rotateleft_rest.png
180
- - vendor/assets/images/openseadragon/rotateright_grouphover.png
181
- - vendor/assets/images/openseadragon/rotateright_hover.png
182
- - vendor/assets/images/openseadragon/rotateright_pressed.png
183
- - vendor/assets/images/openseadragon/rotateright_rest.png
184
- - vendor/assets/images/openseadragon/zoomin_grouphover.png
185
- - vendor/assets/images/openseadragon/zoomin_hover.png
186
- - vendor/assets/images/openseadragon/zoomin_pressed.png
187
- - vendor/assets/images/openseadragon/zoomin_rest.png
188
- - vendor/assets/images/openseadragon/zoomout_grouphover.png
189
- - vendor/assets/images/openseadragon/zoomout_hover.png
190
- - vendor/assets/images/openseadragon/zoomout_pressed.png
191
- - vendor/assets/images/openseadragon/zoomout_rest.png
192
- - vendor/assets/javascripts/openseadragon/openseadragon.js
193
- - vendor/assets/javascripts/openseadragon/openseadragon.js.map
194
153
  homepage: https://github.com/sul-dlss/openseadragon-rails
195
154
  licenses:
196
155
  - Apache 2.0