stackview_acorn_tester 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +291 -0
  4. data/Rakefile +37 -0
  5. data/app/assets/javascripts/rails_stackview/auto_init.js +15 -0
  6. data/app/assets/javascripts/rails_stackview/browser.js +161 -0
  7. data/app/assets/javascripts/rails_stackview/plain.js +128 -0
  8. data/app/assets/javascripts/rails_stackview.js +11 -0
  9. data/app/assets/stylesheets/rails_stackview/_plain.scss +119 -0
  10. data/app/assets/stylesheets/rails_stackview/browser.scss +116 -0
  11. data/app/assets/stylesheets/rails_stackview.scss +10 -0
  12. data/app/controllers/stackview_data_controller.rb +91 -0
  13. data/app/fetch_adapters/rails_stackview/db_window_fetcher.rb +88 -0
  14. data/app/fetch_adapters/rails_stackview/mock_fetcher.rb +27 -0
  15. data/app/models/stackview_call_number.rb +2 -0
  16. data/app/views/rails_stackview/browser.html.erb +42 -0
  17. data/config/routes.rb +2 -0
  18. data/db/migrate/20150602210254_create_stackview_call_numbers.rb +34 -0
  19. data/lib/rails_stackview/engine.rb +7 -0
  20. data/lib/rails_stackview/version.rb +3 -0
  21. data/lib/rails_stackview.rb +20 -0
  22. data/lib/tasks/rails_stackview_tasks.rake +4 -0
  23. data/test/controllers/stackview_data_controller_test.rb +55 -0
  24. data/test/dummy/README.rdoc +28 -0
  25. data/test/dummy/Rakefile +6 -0
  26. data/test/dummy/app/assets/javascripts/application.js +17 -0
  27. data/test/dummy/app/assets/stylesheets/application.css +20 -0
  28. data/test/dummy/app/controllers/application_controller.rb +5 -0
  29. data/test/dummy/app/controllers/demo_controller.rb +14 -0
  30. data/test/dummy/app/helpers/application_helper.rb +2 -0
  31. data/test/dummy/app/views/demo/index.html.erb +14 -0
  32. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  33. data/test/dummy/bin/bundle +3 -0
  34. data/test/dummy/bin/rails +4 -0
  35. data/test/dummy/bin/rake +4 -0
  36. data/test/dummy/bin/setup +29 -0
  37. data/test/dummy/config/application.rb +26 -0
  38. data/test/dummy/config/boot.rb +5 -0
  39. data/test/dummy/config/database.yml +25 -0
  40. data/test/dummy/config/environment.rb +5 -0
  41. data/test/dummy/config/environments/development.rb +41 -0
  42. data/test/dummy/config/environments/production.rb +79 -0
  43. data/test/dummy/config/environments/test.rb +42 -0
  44. data/test/dummy/config/initializers/assets.rb +11 -0
  45. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  46. data/test/dummy/config/initializers/cookies_serializer.rb +3 -0
  47. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  48. data/test/dummy/config/initializers/inflections.rb +16 -0
  49. data/test/dummy/config/initializers/mime_types.rb +4 -0
  50. data/test/dummy/config/initializers/session_store.rb +3 -0
  51. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  52. data/test/dummy/config/locales/en.yml +23 -0
  53. data/test/dummy/config/routes.rb +67 -0
  54. data/test/dummy/config/secrets.yml +22 -0
  55. data/test/dummy/config.ru +4 -0
  56. data/test/dummy/public/404.html +67 -0
  57. data/test/dummy/public/422.html +67 -0
  58. data/test/dummy/public/500.html +66 -0
  59. data/test/dummy/public/favicon.ico +0 -0
  60. data/test/dummy/test_fixture.yaml +433 -0
  61. data/test/fetch_adapters/db_window_fetcher_test.rb +106 -0
  62. data/test/fixtures/stackview_call_numbers.yml +473 -0
  63. data/test/integration/navigation_test.rb +10 -0
  64. data/test/rails_stackview_test.rb +7 -0
  65. data/test/test_helper.rb +42 -0
  66. data/vendor/assets/README.md +16 -0
  67. data/vendor/assets/images/stackview/bookEnd-next.png +0 -0
  68. data/vendor/assets/images/stackview/bookEnd-prev.png +0 -0
  69. data/vendor/assets/images/stackview/gloss.png +0 -0
  70. data/vendor/assets/images/stackview/highGloss.png +0 -0
  71. data/vendor/assets/images/stackview/icon-globe.png +0 -0
  72. data/vendor/assets/images/stackview/icon-note.png +0 -0
  73. data/vendor/assets/images/stackview/nav.png +0 -0
  74. data/vendor/assets/images/stackview/placeholder.gif +0 -0
  75. data/vendor/assets/images/stackview/ribbonTab.png +0 -0
  76. data/vendor/assets/images/stackview/serials-edge.png +0 -0
  77. data/vendor/assets/images/stackview/serials.png +0 -0
  78. data/vendor/assets/images/stackview/superGloss.png +0 -0
  79. data/vendor/assets/javascripts/jquery.stackview.js +21 -0
  80. data/vendor/assets/javascripts/stackview/jquery.easing.1.3.js +205 -0
  81. data/vendor/assets/javascripts/stackview/jquery.stackview.base.js +561 -0
  82. data/vendor/assets/javascripts/stackview/jquery.stackview.infinite.js +46 -0
  83. data/vendor/assets/javascripts/stackview/jquery.stackview.ministack.js +33 -0
  84. data/vendor/assets/javascripts/stackview/jquery.stackview.navigation.js +71 -0
  85. data/vendor/assets/javascripts/stackview/jquery.stackview.stackcache.js +74 -0
  86. data/vendor/assets/javascripts/stackview/jquery.stackview.templates.js +31 -0
  87. data/vendor/assets/javascripts/stackview/microtemplating.js +40 -0
  88. data/vendor/assets/javascripts/stackview/types/book.js +184 -0
  89. data/vendor/assets/javascripts/stackview/types/my_plain.js +183 -0
  90. data/vendor/assets/javascripts/stackview/types/serial.js +40 -0
  91. data/vendor/assets/javascripts/stackview/types/soundrecording.js +42 -0
  92. data/vendor/assets/javascripts/stackview/types/videofilm.js +56 -0
  93. data/vendor/assets/javascripts/stackview/types/webpage.js +42 -0
  94. data/vendor/assets/stackview.sha +1 -0
  95. data/vendor/assets/stylesheets/stackview/_book.scss +66 -0
  96. data/vendor/assets/stylesheets/stackview/_heatmap.scss +154 -0
  97. data/vendor/assets/stylesheets/stackview/_ministack.scss +43 -0
  98. data/vendor/assets/stylesheets/stackview/_mixins.scss +100 -0
  99. data/vendor/assets/stylesheets/stackview/_navigation.scss +52 -0
  100. data/vendor/assets/stylesheets/stackview/_plain.scss +71 -0
  101. data/vendor/assets/stylesheets/stackview/_serial.scss +50 -0
  102. data/vendor/assets/stylesheets/stackview/_soundrecording.scss +83 -0
  103. data/vendor/assets/stylesheets/stackview/_videofilm.scss +74 -0
  104. data/vendor/assets/stylesheets/stackview/_webpage.scss +82 -0
  105. data/vendor/assets/stylesheets/stackview/jquery.stackview.scss +171 -0
  106. metadata +233 -0
@@ -0,0 +1,67 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The change you wanted was rejected (422)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ body {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body>
58
+ <!-- This file lives in public/422.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>The change you wanted was rejected.</h1>
62
+ <p>Maybe you tried to change something you didn't have access to.</p>
63
+ </div>
64
+ <p>If you are the application owner check the logs for more information.</p>
65
+ </div>
66
+ </body>
67
+ </html>
@@ -0,0 +1,66 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>We're sorry, but something went wrong (500)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ body {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body>
58
+ <!-- This file lives in public/500.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>We're sorry, but something went wrong.</h1>
62
+ </div>
63
+ <p>If you are the application owner check the logs for more information.</p>
64
+ </div>
65
+ </body>
66
+ </html>
File without changes
@@ -0,0 +1,433 @@
1
+ ---
2
+ record_2103416:
3
+ sort_key: M 0001
4
+ sort_key_display: M1
5
+ sort_key_type: lc
6
+ system_id: bib_3844093
7
+ title: L'adagio d'Albinoni
8
+ creator: ''
9
+ format:
10
+ measurement_page_numeric:
11
+ measurement_height_numeric:
12
+ shelfrank:
13
+ pub_date: '1984'
14
+ created_at: 2015-05-28 17:33:49.000000000 Z
15
+ proper_sort_index: 0
16
+ record_1585282:
17
+ sort_key: M 000100A100C778
18
+ sort_key_display: M1.A1 C778
19
+ sort_key_type: lc
20
+ system_id: bib_2054647
21
+ title: An anthem designed for Thanksgiving Day, but proper for any publick occasion.
22
+ Printed at Boston, by
23
+ creator: ''
24
+ format:
25
+ measurement_page_numeric:
26
+ measurement_height_numeric:
27
+ shelfrank:
28
+ pub_date: '1792'
29
+ created_at: 2015-05-28 16:44:42.000000000 Z
30
+ proper_sort_index: 1
31
+ record_229254:
32
+ sort_key: M 000100A100D400
33
+ sort_key_display: M1.A1 D4
34
+ sort_key_type: lc
35
+ system_id: bib_292952
36
+ title: 'Dear little cottage maiden : sung with the greatest applause at Vauxhall
37
+ Gardens.'
38
+ creator: Unknown
39
+ format:
40
+ measurement_page_numeric:
41
+ measurement_height_numeric:
42
+ shelfrank:
43
+ pub_date: '1796'
44
+ created_at: 2015-05-28 15:39:02.000000000 Z
45
+ proper_sort_index: 2
46
+ record_229255:
47
+ sort_key: M 000100A100H400 000 OP5179
48
+ sort_key_display: M1.A1 H4 op.5 179-
49
+ sort_key_type: lc
50
+ system_id: bib_292955
51
+ title: Three sonatas for the piano forte...op.5 /
52
+ creator: Hewitt, James, 1770-1827.
53
+ format:
54
+ measurement_page_numeric:
55
+ measurement_height_numeric:
56
+ shelfrank:
57
+ pub_date: '1795'
58
+ created_at: 2015-05-28 15:39:02.000000000 Z
59
+ proper_sort_index: 3
60
+ record_229257:
61
+ sort_key: M 000100A100H400B300
62
+ sort_key_display: M1.A1 H4 B3
63
+ sort_key_type: lc
64
+ system_id: bib_292954
65
+ title: 'The battle of Trenton : a sonata for the piano-forte dedicated to General
66
+ Washington.'
67
+ creator: Hewitt, James, 1770-1827.
68
+ format:
69
+ measurement_page_numeric:
70
+ measurement_height_numeric:
71
+ shelfrank:
72
+ pub_date: '1797'
73
+ created_at: 2015-05-28 15:39:02.000000000 Z
74
+ proper_sort_index: 4
75
+ record_229252:
76
+ sort_key: M 000100A100H600H500
77
+ sort_key_display: M1.A1 H6 H5
78
+ sort_key_type: lc
79
+ system_id: bib_292950
80
+ title: 'Hither Mary : sung with universal applause at Vauxhall Gardens l793 /'
81
+ creator: Hook, Mr. (James), 1746-1827.
82
+ format:
83
+ measurement_page_numeric:
84
+ measurement_height_numeric:
85
+ shelfrank:
86
+ pub_date: '1793'
87
+ created_at: 2015-05-28 15:39:02.000000000 Z
88
+ proper_sort_index: 5
89
+ record_229240:
90
+ sort_key: M 000100A100H600M300
91
+ sort_key_display: M1.A1 H6 M3
92
+ sort_key_type: lc
93
+ system_id: bib_292953
94
+ title: 'Ma belle coquette : a favorite song /'
95
+ creator: Hook, Mr. (James), 1746-1827.
96
+ format:
97
+ measurement_page_numeric:
98
+ measurement_height_numeric:
99
+ shelfrank:
100
+ pub_date: '1796'
101
+ created_at: 2015-05-28 15:39:02.000000000 Z
102
+ proper_sort_index: 6
103
+ record_241533:
104
+ sort_key: M 000100A100M900 000 1798
105
+ sort_key_display: M1.A1 M9 1798
106
+ sort_key_type: lc
107
+ system_id: bib_306047
108
+ title: My native shore.
109
+ creator: Unknown
110
+ format:
111
+ measurement_page_numeric:
112
+ measurement_height_numeric:
113
+ shelfrank:
114
+ pub_date: '1798'
115
+ created_at: 2015-05-28 15:39:29.000000000 Z
116
+ proper_sort_index: 7
117
+ record_229258:
118
+ sort_key: M 000100A100P550
119
+ sort_key_display: M1.A1 P55
120
+ sort_key_type: lc
121
+ system_id: bib_292956
122
+ title: Henry's cottage maid /
123
+ creator: Pleyel, Ignaz, 1757-1831.
124
+ format:
125
+ measurement_page_numeric:
126
+ measurement_height_numeric:
127
+ shelfrank:
128
+ pub_date: '1794'
129
+ created_at: 2015-05-28 15:39:02.000000000 Z
130
+ proper_sort_index: 8
131
+ record_229247:
132
+ sort_key: M 000100A100S700H300
133
+ sort_key_display: M1.A1 S7 H3
134
+ sort_key_type: lc
135
+ system_id: bib_292957
136
+ title: Spirit of my sainted sire ... /
137
+ creator: Storace, Stephen, 1762-1796.
138
+ format:
139
+ measurement_page_numeric:
140
+ measurement_height_numeric:
141
+ shelfrank:
142
+ pub_date: '1795'
143
+ created_at: 2015-05-28 15:39:02.000000000 Z
144
+ proper_sort_index: 9
145
+ record_229265:
146
+ sort_key: M 000100A100S700M800
147
+ sort_key_display: M1.A1 S7 M8
148
+ sort_key_type: lc
149
+ system_id: bib_292964
150
+ title: Sung by Mrs. Oldmixon in the musical farce called My Grandmother ; Favourite
151
+ country dance /
152
+ creator: Storace, Stephen, 1762-1796.
153
+ format:
154
+ measurement_page_numeric:
155
+ measurement_height_numeric:
156
+ shelfrank:
157
+ pub_date: '1795'
158
+ created_at: 2015-05-28 15:39:02.000000000 Z
159
+ proper_sort_index: 10
160
+ record_229259:
161
+ sort_key: M 000100A100S700S500
162
+ sort_key_display: M1.A1 S7 S5
163
+ sort_key_type: lc
164
+ system_id: bib_292958
165
+ title: 'Tho'' you think by this to vex me : a favorite duett sung by Mrs. Seymour
166
+ & Mr. Jefferson in the Sie'
167
+ creator: Storace, Stephen, 1762-1796.
168
+ format:
169
+ measurement_page_numeric:
170
+ measurement_height_numeric:
171
+ shelfrank:
172
+ pub_date: '1798'
173
+ created_at: 2015-05-28 15:39:02.000000000 Z
174
+ proper_sort_index: 11
175
+ record_211579:
176
+ sort_key: M 000100A110D300 000 NO1
177
+ sort_key_display: M1.A11 D3 no.1
178
+ sort_key_type: lc
179
+ system_id: bib_276769
180
+ title: 'New vocal instructor : containing exercises for improving and modulating
181
+ the voice ... /'
182
+ creator: Clifton, Arthur, 1784?-1832.
183
+ format:
184
+ measurement_page_numeric:
185
+ measurement_height_numeric:
186
+ shelfrank:
187
+ pub_date: '1820'
188
+ created_at: 2015-05-28 15:38:10.000000000 Z
189
+ proper_sort_index: 12
190
+ record_230305:
191
+ sort_key: M 000100A110D300 000 NO2
192
+ sort_key_display: M1.A11 D3 no.2
193
+ sort_key_type: lc
194
+ system_id: bib_294174
195
+ title: 'Singing exemplified : in a series of solfeggi and exercises ... /'
196
+ creator: Cooke, T. (Thomas), 1782-1848.
197
+ format:
198
+ measurement_page_numeric:
199
+ measurement_height_numeric:
200
+ shelfrank:
201
+ pub_date: '1829'
202
+ created_at: 2015-05-28 15:39:05.000000000 Z
203
+ proper_sort_index: 13
204
+ record_230284:
205
+ sort_key: M 000100A110D300 000 NO3
206
+ sort_key_display: M1.A11 D3 no.3
207
+ sort_key_type: lc
208
+ system_id: bib_294168
209
+ title: 'Nid Noddin : a glee for three voices : soprano or contra, tenor & bass ...
210
+ /'
211
+ creator: Maeder, James G.
212
+ format:
213
+ measurement_page_numeric:
214
+ measurement_height_numeric:
215
+ shelfrank:
216
+ pub_date: '1834'
217
+ created_at: 2015-05-28 15:39:05.000000000 Z
218
+ proper_sort_index: 14
219
+ record_230299:
220
+ sort_key: M 000100A110D300 000 NO4
221
+ sort_key_display: M1.A11 D3 no.4
222
+ sort_key_type: lc
223
+ system_id: bib_294169
224
+ title: 'Again, again, again : a charter glee and chorus /'
225
+ creator: Horn, Charles E, 1786-1849. (Charles Edward),
226
+ format:
227
+ measurement_page_numeric:
228
+ measurement_height_numeric:
229
+ shelfrank:
230
+ pub_date: '1834'
231
+ created_at: 2015-05-28 15:39:05.000000000 Z
232
+ proper_sort_index: 15
233
+ record_230301:
234
+ sort_key: M 000100A110D300 000 NO5
235
+ sort_key_display: M1.A11 D3 no.5
236
+ sort_key_type: lc
237
+ system_id: bib_294170
238
+ title: 'In silence to his memory : glee for four voices /'
239
+ creator: King, Wm. A. (William A.)
240
+ format:
241
+ measurement_page_numeric:
242
+ measurement_height_numeric:
243
+ shelfrank:
244
+ pub_date: '1834'
245
+ created_at: 2015-05-28 15:39:05.000000000 Z
246
+ proper_sort_index: 16
247
+ record_230302:
248
+ sort_key: M 000100A110D300 000 NO6
249
+ sort_key_display: M1.A11 D3 no.6
250
+ sort_key_type: lc
251
+ system_id: bib_294171
252
+ title: 'The three cheering stars : glee for four voices /'
253
+ creator: Dielman, Henry.
254
+ format:
255
+ measurement_page_numeric:
256
+ measurement_height_numeric:
257
+ shelfrank:
258
+ pub_date: '1834'
259
+ created_at: 2015-05-28 15:39:05.000000000 Z
260
+ proper_sort_index: 17
261
+ record_230287:
262
+ sort_key: M 000100A110D300 000 NO7
263
+ sort_key_display: M1.A11 D3 no.7
264
+ sort_key_type: lc
265
+ system_id: bib_294172
266
+ title: The butterfly, moth and bee /
267
+ creator: Barnett, John, 1802-1890.
268
+ format:
269
+ measurement_page_numeric:
270
+ measurement_height_numeric:
271
+ shelfrank:
272
+ pub_date: '1832'
273
+ created_at: 2015-05-28 15:39:05.000000000 Z
274
+ proper_sort_index: 18
275
+ record_230303:
276
+ sort_key: M 000100A110D300 000 NO8
277
+ sort_key_display: M1.A11 D3 no.8
278
+ sort_key_type: lc
279
+ system_id: bib_294173
280
+ title: 'The laughing trio : arranged from Martini''s Terzetto /'
281
+ creator: Martini, Giovanni Battista, 1706-1784.
282
+ format:
283
+ measurement_page_numeric:
284
+ measurement_height_numeric:
285
+ shelfrank:
286
+ pub_date: '1831'
287
+ created_at: 2015-05-28 15:39:05.000000000 Z
288
+ proper_sort_index: 19
289
+ record_235471:
290
+ sort_key: M 000100A120 000 000 VH4D9
291
+ sort_key_display: M1.A12 V H4 D9
292
+ sort_key_type: lc
293
+ system_id: bib_300464
294
+ title: The dying girl /
295
+ creator: Hewitt, John Hill, 1801-1890.
296
+ format:
297
+ measurement_page_numeric:
298
+ measurement_height_numeric:
299
+ shelfrank:
300
+ pub_date: '1853'
301
+ created_at: 2015-05-28 15:39:16.000000000 Z
302
+ proper_sort_index: 20
303
+ record_1729765:
304
+ sort_key: M 000100A130A292 000 1846
305
+ sort_key_display: M1.A13 A292 1846
306
+ sort_key_type: lc
307
+ system_id: bib_2264984
308
+ title: 'The Christian minstrel : a new system of musical notation : with a collection
309
+ of psalm tunes, anthe'
310
+ creator:
311
+ format:
312
+ measurement_page_numeric:
313
+ measurement_height_numeric:
314
+ shelfrank:
315
+ pub_date: '1862'
316
+ created_at: 2015-05-28 16:50:38.000000000 Z
317
+ proper_sort_index: 21
318
+ record_227482:
319
+ sort_key: M 000100A130H420
320
+ sort_key_display: M1.A13 H42
321
+ sort_key_type: lc
322
+ system_id: bib_291279
323
+ title: The dawning of music in Kentucky; or, The pleasures of harmony in the solitudes
324
+ of nature, opera pr
325
+ creator: Heinrich, Anthony Philip, 1781-1861.
326
+ format:
327
+ measurement_page_numeric:
328
+ measurement_height_numeric:
329
+ shelfrank:
330
+ pub_date: '1820'
331
+ created_at: 2015-05-28 15:38:57.000000000 Z
332
+ proper_sort_index: 22
333
+ record_241137:
334
+ sort_key: M 000100A130H887 000 OP43
335
+ sort_key_display: M1.A13 H887 op.43
336
+ sort_key_type: lc
337
+ system_id: bib_305671
338
+ title: 'Introduction & rondeau Suisse : for the piano forte : op. 43 /'
339
+ creator: Hu?nten, Franz, 1793-1878.
340
+ format:
341
+ measurement_page_numeric:
342
+ measurement_height_numeric:
343
+ shelfrank:
344
+ pub_date: '1832'
345
+ created_at: 2015-05-28 15:39:28.000000000 Z
346
+ proper_sort_index: 23
347
+ record_246801:
348
+ sort_key: M 000100A130T365 000 OP321856
349
+ sort_key_display: M1.A13 T365 op.32 1856
350
+ sort_key_type: lc
351
+ system_id: bib_310878
352
+ title: 'Andante : op. 32 /'
353
+ creator: Thalberg, Sigismond, 1812-1871.
354
+ format:
355
+ measurement_page_numeric:
356
+ measurement_height_numeric:
357
+ shelfrank:
358
+ pub_date: '1856'
359
+ created_at: 2015-05-28 15:39:40.000000000 Z
360
+ proper_sort_index: 24
361
+ record_1777434:
362
+ sort_key: M 000100A130Z995 000 1994QUARTO
363
+ sort_key_display: M1.A13 Z995 1994 QUARTO
364
+ sort_key_type: lc
365
+ system_id: bib_2335839
366
+ title: 'The Carusi family : a bibliography of musical works composed, arranged,
367
+ and published in Philadelph'
368
+ creator: ''
369
+ format:
370
+ measurement_page_numeric:
371
+ measurement_height_numeric:
372
+ shelfrank:
373
+ pub_date: '1994'
374
+ created_at: 2015-05-28 16:52:29.000000000 Z
375
+ proper_sort_index: 25
376
+ record_2037383:
377
+ sort_key: M 000100A150 000 000 VOL20NO26
378
+ sort_key_display: M1 .A15 vol. 20, no. 26
379
+ sort_key_type: lc
380
+ system_id: bib_3530236
381
+ title: "'Tis but a little faded flower : ballad /"
382
+ creator: ''
383
+ format:
384
+ measurement_page_numeric:
385
+ measurement_height_numeric:
386
+ shelfrank:
387
+ pub_date: '1860'
388
+ created_at: 2015-05-28 17:28:31.000000000 Z
389
+ proper_sort_index: 26
390
+ record_1995245:
391
+ sort_key: M 000100A150 000 000 VOL283NO2
392
+ sort_key_display: M1 .A15 vol. 283, no. 2
393
+ sort_key_type: lc
394
+ system_id: bib_3452083
395
+ title: 'Gaily, thro'' life wander : from the opera of La traviata = Libiamo ne lieti
396
+ calici /'
397
+ creator: ''
398
+ format:
399
+ measurement_page_numeric:
400
+ measurement_height_numeric:
401
+ shelfrank:
402
+ pub_date: '1855'
403
+ created_at: 2015-05-28 17:26:00.000000000 Z
404
+ proper_sort_index: 27
405
+ record_2027118:
406
+ sort_key: M 000100A150 000 000 VOL285NO11
407
+ sort_key_display: M1 .A15 vol. 285, no. 11
408
+ sort_key_type: lc
409
+ system_id: bib_3513999
410
+ title: 'Salve Maria : per soprano o mezzo soprano /'
411
+ creator: ''
412
+ format:
413
+ measurement_page_numeric:
414
+ measurement_height_numeric:
415
+ shelfrank:
416
+ pub_date: '1865'
417
+ created_at: 2015-05-28 17:27:56.000000000 Z
418
+ proper_sort_index: 28
419
+ record_2103224:
420
+ sort_key: M 000100A150 000 000 VOL33NO34
421
+ sort_key_display: M1 .A15 vol. 33, no. 34
422
+ sort_key_type: lc
423
+ system_id: bib_3840740
424
+ title: 'La prie?re d''une vierge = The maiden''s prayer : morceau de salon pour
425
+ piano /'
426
+ creator: ''
427
+ format:
428
+ measurement_page_numeric:
429
+ measurement_height_numeric:
430
+ shelfrank:
431
+ pub_date: '1859'
432
+ created_at: 2015-05-28 17:33:32.000000000 Z
433
+ proper_sort_index: 29
@@ -0,0 +1,106 @@
1
+ require 'test_helper'
2
+ #require 'rails_stackview/db_window_fetcher'
3
+
4
+ class DbWindowFetcherTest < ActiveSupport::TestCase
5
+ setup do
6
+ @center_sort_key = 'M 000100A110D300 000 NO3'
7
+ end
8
+
9
+ test "fetch around center" do
10
+ results = RailsStackview::DbWindowFetcher.new.fetch(
11
+ "origin_sort_key" => @center_sort_key, "query" => "[-5 TO 5]"
12
+ )
13
+
14
+ assert_length 11, results
15
+ assert_good_list_of_hashes results
16
+
17
+ assert_equal @center_sort_key, results[5]["sort_key"]
18
+
19
+ assert_sorted_by_sort_key results
20
+
21
+ assert results.all? {|h| h["sort_key_type"] == 'lc'}
22
+ end
23
+
24
+ test "fetch positive including" do
25
+ results = RailsStackview::DbWindowFetcher.new.fetch(
26
+ "origin_sort_key" => @center_sort_key, "query" => "[0 TO 10]"
27
+ )
28
+
29
+ assert_length 11, results
30
+ assert_good_list_of_hashes results
31
+
32
+ assert_equal @center_sort_key, results.first["sort_key"]
33
+
34
+ assert_sorted_by_sort_key results
35
+ end
36
+
37
+ test "fetch positive ahead" do
38
+ results = RailsStackview::DbWindowFetcher.new.fetch(
39
+ "origin_sort_key" => @center_sort_key, "query" => "[2 TO 12]"
40
+ )
41
+
42
+ assert_length 11, results
43
+ assert_good_list_of_hashes results
44
+
45
+ assert_sorted_by_sort_key results
46
+
47
+ assert results.none? {|h| h["sort_key"] <= @center_sort_key}, "Expected all sort_keys greater than #{@center_sort_key}"
48
+ end
49
+
50
+ test "fetch negative including" do
51
+ results = RailsStackview::DbWindowFetcher.new.fetch(
52
+ "origin_sort_key" => @center_sort_key, "query" => "[-10 TO 0]"
53
+ )
54
+
55
+ assert_length 11, results
56
+ assert_good_list_of_hashes results
57
+
58
+ assert_equal @center_sort_key, results.last["sort_key"]
59
+
60
+ assert_sorted_by_sort_key results
61
+ end
62
+
63
+ test "fetch negative behind" do
64
+ results = RailsStackview::DbWindowFetcher.new.fetch(
65
+ "origin_sort_key" => @center_sort_key, "query" => "[-12 TO -2]"
66
+ )
67
+
68
+ assert_length 11, results
69
+ assert_good_list_of_hashes results
70
+
71
+ assert_sorted_by_sort_key results
72
+
73
+ assert results.none? {|h| h["sort_key"] >= @center_sort_key}, "Expected all sort_keys less than #{@center_sort_key}"
74
+ end
75
+
76
+ test "fetch too far ahead" do
77
+ results = RailsStackview::DbWindowFetcher.new.fetch(
78
+ "origin_sort_key" => @center_sort_key, "query" => "[100 TO 110]"
79
+ )
80
+
81
+ assert_length 0, results
82
+ end
83
+
84
+ test "fetch too far behind" do
85
+ results = RailsStackview::DbWindowFetcher.new.fetch(
86
+ "origin_sort_key" => @center_sort_key, "query" => "[-110 TO -100]"
87
+ )
88
+
89
+ assert_length 0, results
90
+ end
91
+
92
+
93
+ def assert_sorted_by_sort_key(arr)
94
+ assert_equal arr, arr.sort_by {|h| h["sort_key"]}, "Expected #{arr} to be sorted by sort_key"
95
+ end
96
+
97
+ def assert_good_list_of_hashes(results)
98
+ assert_kind_of Array, results
99
+ results.each do |r|
100
+ assert_kind_of Hash, r
101
+ assert_present r["title"]
102
+ assert_kind_of Array, r["creator"]
103
+ end
104
+ end
105
+
106
+ end