alexandria-book-collection-manager 0.7.9 → 0.7.11

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 (129) hide show
  1. checksums.yaml +4 -4
  2. data/.github/dependabot.yml +5 -1
  3. data/.github/workflows/ruby.yml +36 -22
  4. data/.rubocop.yml +12 -3
  5. data/.rubocop_todo.yml +35 -47
  6. data/.simplecov +2 -2
  7. data/CHANGELOG.md +71 -24
  8. data/Gemfile +0 -6
  9. data/Rakefile +5 -5
  10. data/alexandria-book-collection-manager.gemspec +24 -21
  11. data/bin/rake +28 -0
  12. data/bin/rspec +28 -0
  13. data/doc/dependency_decisions.yml +32 -26
  14. data/{bin → exe}/alexandria +1 -3
  15. data/lib/alexandria/about.rb +1 -0
  16. data/lib/alexandria/book_providers/bl_provider.rb +4 -6
  17. data/lib/alexandria/book_providers/{douban.rb → douban_provider.rb} +1 -1
  18. data/lib/alexandria/book_providers/loc_provider.rb +2 -6
  19. data/lib/alexandria/book_providers/sbn_provider.rb +2 -12
  20. data/lib/alexandria/book_providers/thalia_provider.rb +5 -6
  21. data/lib/alexandria/book_providers/{web.rb → website_based_provider.rb} +20 -1
  22. data/lib/alexandria/book_providers/{worldcat.rb → world_cat_provider.rb} +3 -4
  23. data/lib/alexandria/book_providers/z3950_provider.rb +25 -27
  24. data/lib/alexandria/book_providers.rb +14 -10
  25. data/lib/alexandria/config.rb +2 -2
  26. data/lib/alexandria/console.rb +12 -10
  27. data/lib/alexandria/export_format.rb +3 -2
  28. data/lib/alexandria/export_library.rb +35 -40
  29. data/lib/alexandria/import_library.rb +3 -4
  30. data/lib/alexandria/import_library_csv.rb +2 -2
  31. data/lib/alexandria/library_collection.rb +1 -1
  32. data/lib/alexandria/library_store.rb +20 -15
  33. data/lib/alexandria/logging.rb +22 -21
  34. data/lib/alexandria/models/book.rb +1 -2
  35. data/lib/alexandria/models/library.rb +7 -8
  36. data/lib/alexandria/preferences.rb +7 -19
  37. data/lib/alexandria/{book_providers/pseudomarc.rb → pseudo_marc_parser.rb} +2 -2
  38. data/lib/alexandria/scanners/cue_cat.rb +5 -9
  39. data/lib/alexandria/scanners/{keyboard.rb → keyboard_wedge.rb} +3 -3
  40. data/lib/alexandria/scanners.rb +2 -2
  41. data/lib/alexandria/smart_library.rb +9 -5
  42. data/lib/alexandria/ui/acquire_dialog.rb +42 -45
  43. data/lib/alexandria/ui/alert_dialog.rb +3 -3
  44. data/lib/alexandria/ui/barcode_animation.rb +3 -3
  45. data/lib/alexandria/ui/book_properties_dialog.rb +9 -9
  46. data/lib/alexandria/ui/book_properties_dialog_base.rb +13 -14
  47. data/lib/alexandria/ui/builder_base.rb +1 -1
  48. data/lib/alexandria/ui/callbacks.rb +8 -7
  49. data/lib/alexandria/ui/confirm_erase_dialog.rb +1 -0
  50. data/lib/alexandria/ui/conflict_while_copying_dialog.rb +1 -0
  51. data/lib/alexandria/ui/export_dialog.rb +1 -0
  52. data/lib/alexandria/ui/{iconview.rb → icon_view_manager.rb} +1 -0
  53. data/lib/alexandria/ui/icons.rb +2 -2
  54. data/lib/alexandria/ui/iconview_tooltips.rb +1 -1
  55. data/lib/alexandria/ui/init.rb +10 -4
  56. data/lib/alexandria/ui/keep_bad_isbn_dialog.rb +1 -0
  57. data/lib/alexandria/ui/libraries_combo.rb +1 -0
  58. data/lib/alexandria/ui/listview.rb +2 -0
  59. data/lib/alexandria/ui/main_app.rb +3 -1
  60. data/lib/alexandria/ui/multi_drag_treeview.rb +0 -2
  61. data/lib/alexandria/ui/new_book_dialog.rb +15 -20
  62. data/lib/alexandria/ui/new_book_dialog_manual.rb +7 -7
  63. data/lib/alexandria/ui/new_provider_dialog.rb +1 -0
  64. data/lib/alexandria/ui/new_smart_library_dialog.rb +2 -1
  65. data/lib/alexandria/ui/preferences_dialog.rb +4 -4
  66. data/lib/alexandria/ui/provider_preferences_dialog.rb +1 -0
  67. data/lib/alexandria/ui/really_delete_dialog.rb +1 -0
  68. data/lib/alexandria/ui/sidepane_manager.rb +49 -48
  69. data/lib/alexandria/ui/skip_entry_dialog.rb +1 -0
  70. data/lib/alexandria/ui/smart_library_properties_dialog.rb +1 -0
  71. data/lib/alexandria/ui/smart_library_properties_dialog_base.rb +2 -1
  72. data/lib/alexandria/ui/{sound.rb → sound_effects_player.rb} +3 -0
  73. data/lib/alexandria/ui/ui_manager.rb +194 -143
  74. data/lib/alexandria/ui.rb +1 -0
  75. data/lib/alexandria/version.rb +1 -1
  76. data/lib/alexandria/web_themes.rb +1 -1
  77. data/lib/alexandria.rb +6 -5
  78. data/po/Makefile +1 -1
  79. data/po/it.po +64 -82
  80. data/spec/alexandria/book_providers/bl_provider_spec.rb +11 -2
  81. data/spec/alexandria/book_providers/douban_provider_spec.rb +17 -0
  82. data/spec/alexandria/book_providers/loc_provider_spec.rb +10 -2
  83. data/spec/alexandria/book_providers/sbn_provider_spec.rb +10 -2
  84. data/spec/alexandria/book_providers/thalia_provider_spec.rb +9 -1
  85. data/spec/alexandria/book_providers/world_cat_provider_spec.rb +30 -10
  86. data/spec/alexandria/book_providers/z3950_provider_spec.rb +22 -0
  87. data/spec/alexandria/book_spec.rb +5 -3
  88. data/spec/alexandria/console_spec.rb +1 -1
  89. data/spec/alexandria/export_library_spec.rb +65 -19
  90. data/spec/alexandria/library_collection_spec.rb +24 -0
  91. data/spec/alexandria/library_spec.rb +68 -53
  92. data/spec/alexandria/library_store_spec.rb +33 -1
  93. data/spec/alexandria/preferences_spec.rb +7 -7
  94. data/spec/alexandria/pseudo_marc_parser_spec.rb +71 -0
  95. data/spec/alexandria/scanners/cue_cat_spec.rb +11 -4
  96. data/spec/alexandria/scanners/keyboard_wedge_spec.rb +47 -0
  97. data/spec/alexandria/smart_library_spec.rb +7 -5
  98. data/spec/alexandria/ui/about_dialog_spec.rb +2 -2
  99. data/spec/alexandria/ui/acquire_dialog_spec.rb +8 -3
  100. data/spec/alexandria/ui/alert_dialog_spec.rb +6 -4
  101. data/spec/alexandria/ui/bad_isbns_dialog_spec.rb +2 -2
  102. data/spec/alexandria/ui/book_properties_dialog_spec.rb +5 -5
  103. data/spec/alexandria/ui/confirm_erase_dialog_spec.rb +19 -3
  104. data/spec/alexandria/ui/conflict_while_copying_dialog_spec.rb +2 -2
  105. data/spec/alexandria/ui/error_dialog_spec.rb +14 -3
  106. data/spec/alexandria/ui/export_dialog_spec.rb +6 -6
  107. data/spec/alexandria/ui/{iconview_spec.rb → icon_view_manager_spec.rb} +2 -2
  108. data/spec/alexandria/ui/import_dialog_spec.rb +3 -3
  109. data/spec/alexandria/ui/keep_bad_isbn_dialog_spec.rb +2 -2
  110. data/spec/alexandria/ui/main_app_spec.rb +0 -2
  111. data/spec/alexandria/ui/new_book_dialog_manual_spec.rb +5 -5
  112. data/spec/alexandria/ui/new_book_dialog_spec.rb +7 -4
  113. data/spec/alexandria/ui/new_provider_dialog_spec.rb +3 -3
  114. data/spec/alexandria/ui/new_smart_library_dialog_spec.rb +9 -7
  115. data/spec/alexandria/ui/preferences_dialog_spec.rb +2 -2
  116. data/spec/alexandria/ui/provider_preferences_dialog_spec.rb +22 -7
  117. data/spec/alexandria/ui/really_delete_dialog_spec.rb +2 -2
  118. data/spec/alexandria/ui/sidepane_manager_spec.rb +2 -2
  119. data/spec/alexandria/ui/skip_entry_dialog_spec.rb +19 -3
  120. data/spec/alexandria/ui/smart_library_properties_dialog_spec.rb +2 -2
  121. data/spec/alexandria/ui/ui_manager_spec.rb +7 -5
  122. data/spec/end_to_end/basic_run_spec.rb +2 -1
  123. data/spec/spec_helper.rb +26 -33
  124. data/tasks/setup.rb +1 -1
  125. data/util/rake/fileinstall.rb +12 -13
  126. data/util/rake/gettextgenerate.rb +1 -1
  127. data/util/rake/omfgenerate.rb +1 -1
  128. metadata +97 -64
  129. /data/spec/alexandria/ui/{sound_spec.rb → sound_effects_player_spec.rb} +0 -0
data/spec/spec_helper.rb CHANGED
@@ -7,7 +7,6 @@
7
7
  require "rspec"
8
8
  require "alexandria"
9
9
  require "webmock/rspec"
10
- require "pry"
11
10
 
12
11
  LIBDIR = File.expand_path("data/libraries", __dir__)
13
12
  TESTDIR = File.join(LIBDIR, "test")
@@ -20,45 +19,38 @@ def an_artist_of_the_floating_world
20
19
  "Paperback")
21
20
  end
22
21
 
23
- def assert_correct_search_result(provider, query,
24
- search_type = Alexandria::BookProviders::SEARCH_BY_ISBN)
25
- begin
26
- results = provider.instance.search(query, search_type)
27
- rescue SocketError
28
- skip "Service is offline"
29
- end
30
-
31
- expect(results).to be_instance_of(Array), "Results are not an array for #{provider}"
32
- expect(results).not_to be_empty, "Results are empty for #{provider}"
22
+ RSpec::Matchers.define :have_correct_search_result_for do |query|
23
+ match(notify_expectation_failures: true) do |provider|
24
+ begin
25
+ results = provider.instance.search(query, Alexandria::BookProviders::SEARCH_BY_ISBN)
26
+ rescue SocketError
27
+ skip "Service is offline"
28
+ rescue Alexandria::BookProviders::ConnectionError
29
+ skip "Connection failed"
30
+ end
33
31
 
34
- if search_type == Alexandria::BookProviders::SEARCH_BY_ISBN
35
- expect(results.length).to be <= 2, "Results are greater than 2 for #{provider}"
32
+ expect(results).to be_instance_of(Array)
33
+ expect(results).not_to be_empty
34
+ expect(results.length).to be <= 2
36
35
 
37
- book = results.first
36
+ book, cover_url = *results
38
37
 
39
- expect(book).to be_instance_of(Alexandria::Book),
40
- "Result is not a Book for #{provider}"
38
+ expect(book).to be_instance_of(Alexandria::Book)
41
39
 
42
40
  canonical_query = Alexandria::Library.canonicalise_ean(query)
43
41
  canonical_result = Alexandria::Library.canonicalise_ean(book.isbn)
44
- expect(canonical_query)
45
- .to eq(canonical_result),
46
- "Result's isbn #{book.isbn} is not equivalent" \
47
- " to the requested isbn #{query} for #{provider}"
48
-
49
- if results.length == 2
50
- cover_url = results.last
51
- if cover_url
52
- expect(cover_url)
53
- .to be_instance_of(String),
54
- "Unexpected cover_url #{cover_url.inspect} for #{provider}"
55
- end
56
- end
57
- else
58
- expect(results.first.first)
59
- .to be_instance_of(Alexandria::Book), "Result item is not a Book for #{provider}"
42
+ expect(canonical_result).to eq(canonical_query)
43
+
44
+ expect(cover_url).to be_instance_of(String) if cover_url
45
+
46
+ true
47
+ end
48
+ end
49
+
50
+ RSpec::Matchers.define :be_an_existing_file do
51
+ match do |filename|
52
+ File.exist? filename
60
53
  end
61
- results
62
54
  end
63
55
 
64
56
  Alexandria::UI::Icons.init
@@ -71,6 +63,7 @@ RSpec.configure do |config|
71
63
 
72
64
  config.before do
73
65
  FileUtils.rm_rf(TESTDIR)
66
+ Alexandria.log.level = Logger::DEBUG if ENV["DEBUG"]
74
67
  end
75
68
 
76
69
  config.after do
data/tasks/setup.rb CHANGED
@@ -28,5 +28,5 @@ require "rake/clean"
28
28
 
29
29
  # Load the other rake files in the tasks folder
30
30
  tasks_dir = __dir__
31
- rakefiles = Dir.glob(File.join(tasks_dir, "*.rake")).sort
31
+ rakefiles = Dir.glob(File.join(tasks_dir, "*.rake"))
32
32
  import(*rakefiles)
@@ -29,7 +29,6 @@
29
29
 
30
30
  require "fileutils"
31
31
  require "pathname"
32
- require "set"
33
32
  require "rake/tasklib"
34
33
 
35
34
  # A file installer task, capable of installing into the system
@@ -77,10 +76,10 @@ class FileInstallTask < Rake::TaskLib
77
76
  # of the @file_groups list
78
77
  def make_tasks
79
78
  tasknames = {}
80
- tasknames[:install] = "install_#{@taskname}".intern
81
- tasknames[:uninstall] = "uninstall_#{@taskname}".intern
82
- tasknames[:uninstall_files] = "uninstall_#{@taskname}_files".intern
83
- tasknames[:uninstall_dirs] = "uninstall_#{@taskname}_dirs".intern
79
+ tasknames[:install] = :"install_#{@taskname}"
80
+ tasknames[:uninstall] = :"uninstall_#{@taskname}"
81
+ tasknames[:uninstall_files] = :"uninstall_#{@taskname}_files"
82
+ tasknames[:uninstall_dirs] = :"uninstall_#{@taskname}_dirs"
84
83
 
85
84
  # INSTALL TASK
86
85
 
@@ -171,14 +170,14 @@ class FileInstallTask < Rake::TaskLib
171
170
  def calculate_ruby_dir
172
171
  ruby_prefix = RbConfig::CONFIG["prefix"]
173
172
 
174
- ruby_libdir = if @install_to_rubylibdir
175
- RbConfig::CONFIG["rubylibdir"]
176
- else
177
- RbConfig::CONFIG["sitelibdir"]
178
- end
179
- ruby_libdir = ENV["RUBYLIBDIR"] if ENV.key?("RUBYLIBDIR")
173
+ ruby_libdir = ENV.fetch("RUBYLIBDIR", nil)
174
+ ruby_libdir ||= if @install_to_rubylibdir
175
+ RbConfig::CONFIG["rubylibdir"]
176
+ else
177
+ RbConfig::CONFIG["sitelibdir"]
178
+ end
180
179
 
181
- @prefix = ENV["PREFIX"] || ruby_prefix
180
+ @prefix = ENV.fetch("PREFIX", ruby_prefix)
182
181
  if @prefix == ruby_prefix
183
182
  @rubylib = ruby_libdir
184
183
  elsif ruby_libdir.index(ruby_prefix).zero?
@@ -197,7 +196,7 @@ class FileInstallTask < Rake::TaskLib
197
196
  part.gsub!("*", "[^\\/]*")
198
197
  part.gsub!("?", "[^\\/]")
199
198
  end
200
- pattern = real_parts.join("([^\/]+\/)*")
199
+ pattern = real_parts.join("([^/]+/)*")
201
200
  /(#{pattern})/
202
201
  end
203
202
 
@@ -54,7 +54,7 @@ class GettextGenerateTask < Rake::TaskLib
54
54
  # create MO files
55
55
  rule(/\.mo$/ => [->(dest) { source_file(dest) }]) do |t|
56
56
  dest_dir = File.dirname(t.name)
57
- FileUtils.makedirs(dest_dir) unless FileTest.exists?(dest_dir)
57
+ FileUtils.makedirs(dest_dir)
58
58
  puts "Generating #{t.name}"
59
59
  result = system("msgfmt #{t.source} -o #{t.name}")
60
60
  raise "msgfmt failed for #{t.source}" unless result
@@ -68,7 +68,7 @@ class OmfGenerateTask < Rake::TaskLib
68
68
  path = File.join(@gnome_helpfiles_dir, @projectname,
69
69
  locale_for(t.name), "#{@projectname}.xml")
70
70
  data = File.read(t.source)
71
- data.sub!(/PATH_TO_DOC_FILE/, path)
71
+ data.sub!("PATH_TO_DOC_FILE", path)
72
72
  puts "Generating #{t.name}..."
73
73
  File.open(t.name, "w") { |io| io.puts data }
74
74
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: alexandria-book-collection-manager
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.9
4
+ version: 0.7.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexander McCormmach
@@ -25,11 +25,38 @@ authors:
25
25
  - Takayuki Kusano
26
26
  - Timothy Malone
27
27
  - Zachary P. Landau
28
- autorequire:
29
- bindir: bin
28
+ bindir: exe
30
29
  cert_chain: []
31
- date: 2022-02-04 00:00:00.000000000 Z
30
+ date: 1980-01-02 00:00:00.000000000 Z
32
31
  dependencies:
32
+ - !ruby/object:Gem::Dependency
33
+ name: alexandria-zoom
34
+ requirement: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - "~>"
37
+ - !ruby/object:Gem::Version
38
+ version: 0.6.0
39
+ type: :runtime
40
+ prerelease: false
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ requirements:
43
+ - - "~>"
44
+ - !ruby/object:Gem::Version
45
+ version: 0.6.0
46
+ - !ruby/object:Gem::Dependency
47
+ name: csv
48
+ requirement: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - "~>"
51
+ - !ruby/object:Gem::Version
52
+ version: '3.2'
53
+ type: :runtime
54
+ prerelease: false
55
+ version_requirements: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - "~>"
58
+ - !ruby/object:Gem::Version
59
+ version: '3.2'
33
60
  - !ruby/object:Gem::Dependency
34
61
  name: gettext
35
62
  requirement: !ruby/object:Gem::Requirement
@@ -50,28 +77,28 @@ dependencies:
50
77
  requirements:
51
78
  - - "~>"
52
79
  - !ruby/object:Gem::Version
53
- version: 3.5.0
80
+ version: 4.3.0
54
81
  type: :runtime
55
82
  prerelease: false
56
83
  version_requirements: !ruby/object:Gem::Requirement
57
84
  requirements:
58
85
  - - "~>"
59
86
  - !ruby/object:Gem::Version
60
- version: 3.5.0
87
+ version: 4.3.0
61
88
  - !ruby/object:Gem::Dependency
62
89
  name: gtk3
63
90
  requirement: !ruby/object:Gem::Requirement
64
91
  requirements:
65
92
  - - "~>"
66
93
  - !ruby/object:Gem::Version
67
- version: 3.5.0
94
+ version: 4.3.0
68
95
  type: :runtime
69
96
  prerelease: false
70
97
  version_requirements: !ruby/object:Gem::Requirement
71
98
  requirements:
72
99
  - - "~>"
73
100
  - !ruby/object:Gem::Version
74
- version: 3.5.0
101
+ version: 4.3.0
75
102
  - !ruby/object:Gem::Dependency
76
103
  name: htmlentities
77
104
  requirement: !ruby/object:Gem::Requirement
@@ -101,87 +128,75 @@ dependencies:
101
128
  - !ruby/object:Gem::Version
102
129
  version: '3.0'
103
130
  - !ruby/object:Gem::Dependency
104
- name: marc
131
+ name: logger
105
132
  requirement: !ruby/object:Gem::Requirement
106
133
  requirements:
107
- - - ">="
108
- - !ruby/object:Gem::Version
109
- version: '1.0'
110
- - - "<"
134
+ - - "~>"
111
135
  - !ruby/object:Gem::Version
112
- version: '1.2'
136
+ version: '1.7'
113
137
  type: :runtime
114
138
  prerelease: false
115
139
  version_requirements: !ruby/object:Gem::Requirement
116
140
  requirements:
117
- - - ">="
118
- - !ruby/object:Gem::Version
119
- version: '1.0'
120
- - - "<"
141
+ - - "~>"
121
142
  - !ruby/object:Gem::Version
122
- version: '1.2'
143
+ version: '1.7'
123
144
  - !ruby/object:Gem::Dependency
124
- name: nokogiri
145
+ name: marc
125
146
  requirement: !ruby/object:Gem::Requirement
126
147
  requirements:
127
148
  - - "~>"
128
149
  - !ruby/object:Gem::Version
129
- version: '1.11'
150
+ version: '1.3'
130
151
  type: :runtime
131
152
  prerelease: false
132
153
  version_requirements: !ruby/object:Gem::Requirement
133
154
  requirements:
134
155
  - - "~>"
135
156
  - !ruby/object:Gem::Version
136
- version: '1.11'
157
+ version: '1.3'
137
158
  - !ruby/object:Gem::Dependency
138
- name: psych
159
+ name: nokogiri
139
160
  requirement: !ruby/object:Gem::Requirement
140
161
  requirements:
141
- - - ">="
142
- - !ruby/object:Gem::Version
143
- version: '3.2'
144
- - - "<"
162
+ - - "~>"
145
163
  - !ruby/object:Gem::Version
146
- version: '4.1'
164
+ version: '1.11'
147
165
  type: :runtime
148
166
  prerelease: false
149
167
  version_requirements: !ruby/object:Gem::Requirement
150
168
  requirements:
151
- - - ">="
152
- - !ruby/object:Gem::Version
153
- version: '3.2'
154
- - - "<"
169
+ - - "~>"
155
170
  - !ruby/object:Gem::Version
156
- version: '4.1'
171
+ version: '1.11'
157
172
  - !ruby/object:Gem::Dependency
158
- name: zoom
173
+ name: observer
159
174
  requirement: !ruby/object:Gem::Requirement
160
175
  requirements:
161
176
  - - "~>"
162
177
  - !ruby/object:Gem::Version
163
- version: 0.5.0
178
+ version: 0.1.2
164
179
  type: :runtime
165
180
  prerelease: false
166
181
  version_requirements: !ruby/object:Gem::Requirement
167
182
  requirements:
168
183
  - - "~>"
169
184
  - !ruby/object:Gem::Version
170
- version: 0.5.0
185
+ version: 0.1.2
171
186
  - !ruby/object:Gem::Dependency
172
187
  name: gnome_app_driver
173
188
  requirement: !ruby/object:Gem::Requirement
174
189
  requirements:
175
190
  - - "~>"
176
191
  - !ruby/object:Gem::Version
177
- version: 0.3.0
192
+ version: 0.3.2
178
193
  type: :development
179
194
  prerelease: false
180
195
  version_requirements: !ruby/object:Gem::Requirement
181
196
  requirements:
182
197
  - - "~>"
183
198
  - !ruby/object:Gem::Version
184
- version: 0.3.0
199
+ version: 0.3.2
185
200
  - !ruby/object:Gem::Dependency
186
201
  name: rake
187
202
  requirement: !ruby/object:Gem::Requirement
@@ -216,70 +231,84 @@ dependencies:
216
231
  requirements:
217
232
  - - "~>"
218
233
  - !ruby/object:Gem::Version
219
- version: '1.25'
234
+ version: '1.79'
220
235
  type: :development
221
236
  prerelease: false
222
237
  version_requirements: !ruby/object:Gem::Requirement
223
238
  requirements:
224
239
  - - "~>"
225
240
  - !ruby/object:Gem::Version
226
- version: '1.25'
241
+ version: '1.79'
227
242
  - !ruby/object:Gem::Dependency
228
243
  name: rubocop-i18n
229
244
  requirement: !ruby/object:Gem::Requirement
230
245
  requirements:
231
246
  - - "~>"
232
247
  - !ruby/object:Gem::Version
233
- version: '3.0'
248
+ version: '3.2'
234
249
  type: :development
235
250
  prerelease: false
236
251
  version_requirements: !ruby/object:Gem::Requirement
237
252
  requirements:
238
253
  - - "~>"
239
254
  - !ruby/object:Gem::Version
240
- version: '3.0'
255
+ version: '3.2'
241
256
  - !ruby/object:Gem::Dependency
242
257
  name: rubocop-performance
243
258
  requirement: !ruby/object:Gem::Requirement
244
259
  requirements:
245
260
  - - "~>"
246
261
  - !ruby/object:Gem::Version
247
- version: '1.13'
262
+ version: '1.25'
248
263
  type: :development
249
264
  prerelease: false
250
265
  version_requirements: !ruby/object:Gem::Requirement
251
266
  requirements:
252
267
  - - "~>"
253
268
  - !ruby/object:Gem::Version
254
- version: '1.13'
269
+ version: '1.25'
255
270
  - !ruby/object:Gem::Dependency
256
271
  name: rubocop-rake
257
272
  requirement: !ruby/object:Gem::Requirement
258
273
  requirements:
259
274
  - - "~>"
260
275
  - !ruby/object:Gem::Version
261
- version: 0.6.0
276
+ version: 0.7.1
262
277
  type: :development
263
278
  prerelease: false
264
279
  version_requirements: !ruby/object:Gem::Requirement
265
280
  requirements:
266
281
  - - "~>"
267
282
  - !ruby/object:Gem::Version
268
- version: 0.6.0
283
+ version: 0.7.1
269
284
  - !ruby/object:Gem::Dependency
270
285
  name: rubocop-rspec
271
286
  requirement: !ruby/object:Gem::Requirement
272
287
  requirements:
273
288
  - - "~>"
274
289
  - !ruby/object:Gem::Version
275
- version: '2.7'
290
+ version: '3.6'
291
+ type: :development
292
+ prerelease: false
293
+ version_requirements: !ruby/object:Gem::Requirement
294
+ requirements:
295
+ - - "~>"
296
+ - !ruby/object:Gem::Version
297
+ version: '3.6'
298
+ - !ruby/object:Gem::Dependency
299
+ name: simplecov
300
+ requirement: !ruby/object:Gem::Requirement
301
+ requirements:
302
+ - - "~>"
303
+ - !ruby/object:Gem::Version
304
+ version: 0.22.0
276
305
  type: :development
277
306
  prerelease: false
278
307
  version_requirements: !ruby/object:Gem::Requirement
279
308
  requirements:
280
309
  - - "~>"
281
310
  - !ruby/object:Gem::Version
282
- version: '2.7'
311
+ version: 0.22.0
283
312
  - !ruby/object:Gem::Dependency
284
313
  name: webmock
285
314
  requirement: !ruby/object:Gem::Requirement
@@ -294,7 +323,6 @@ dependencies:
294
323
  - - "~>"
295
324
  - !ruby/object:Gem::Version
296
325
  version: '3.9'
297
- description:
298
326
  email:
299
327
  - matijs@matijs.net
300
328
  executables:
@@ -323,7 +351,8 @@ files:
323
351
  - TODO.md
324
352
  - alexandria-book-collection-manager.gemspec
325
353
  - alexandria.desktop.in
326
- - bin/alexandria
354
+ - bin/rake
355
+ - bin/rspec
327
356
  - doc/AUTHORS
328
357
  - doc/BUGS
329
358
  - doc/FAQ
@@ -332,17 +361,17 @@ files:
332
361
  - doc/alexandria.1
333
362
  - doc/cuecat_support.rdoc
334
363
  - doc/dependency_decisions.yml
364
+ - exe/alexandria
335
365
  - lib/alexandria.rb
336
366
  - lib/alexandria/about.rb
337
367
  - lib/alexandria/book_providers.rb
338
368
  - lib/alexandria/book_providers/bl_provider.rb
339
- - lib/alexandria/book_providers/douban.rb
369
+ - lib/alexandria/book_providers/douban_provider.rb
340
370
  - lib/alexandria/book_providers/loc_provider.rb
341
- - lib/alexandria/book_providers/pseudomarc.rb
342
371
  - lib/alexandria/book_providers/sbn_provider.rb
343
372
  - lib/alexandria/book_providers/thalia_provider.rb
344
- - lib/alexandria/book_providers/web.rb
345
- - lib/alexandria/book_providers/worldcat.rb
373
+ - lib/alexandria/book_providers/website_based_provider.rb
374
+ - lib/alexandria/book_providers/world_cat_provider.rb
346
375
  - lib/alexandria/book_providers/z3950_provider.rb
347
376
  - lib/alexandria/config.rb
348
377
  - lib/alexandria/console.rb
@@ -361,9 +390,10 @@ files:
361
390
  - lib/alexandria/models/library.rb
362
391
  - lib/alexandria/net.rb
363
392
  - lib/alexandria/preferences.rb
393
+ - lib/alexandria/pseudo_marc_parser.rb
364
394
  - lib/alexandria/scanners.rb
365
395
  - lib/alexandria/scanners/cue_cat.rb
366
- - lib/alexandria/scanners/keyboard.rb
396
+ - lib/alexandria/scanners/keyboard_wedge.rb
367
397
  - lib/alexandria/smart_library.rb
368
398
  - lib/alexandria/ui.rb
369
399
  - lib/alexandria/ui/about_dialog.rb
@@ -383,8 +413,8 @@ files:
383
413
  - lib/alexandria/ui/dndable.rb
384
414
  - lib/alexandria/ui/error_dialog.rb
385
415
  - lib/alexandria/ui/export_dialog.rb
416
+ - lib/alexandria/ui/icon_view_manager.rb
386
417
  - lib/alexandria/ui/icons.rb
387
- - lib/alexandria/ui/iconview.rb
388
418
  - lib/alexandria/ui/iconview_tooltips.rb
389
419
  - lib/alexandria/ui/import_dialog.rb
390
420
  - lib/alexandria/ui/init.rb
@@ -407,7 +437,7 @@ files:
407
437
  - lib/alexandria/ui/smart_library_properties_dialog.rb
408
438
  - lib/alexandria/ui/smart_library_properties_dialog_base.rb
409
439
  - lib/alexandria/ui/smart_library_rule_box.rb
410
- - lib/alexandria/ui/sound.rb
440
+ - lib/alexandria/ui/sound_effects_player.rb
411
441
  - lib/alexandria/ui/ui_manager.rb
412
442
  - lib/alexandria/undo_manager.rb
413
443
  - lib/alexandria/version.rb
@@ -566,18 +596,23 @@ files:
566
596
  - share/sounds/alexandria/scanning.ogg
567
597
  - share/sounds/alexandria/scanning.wav
568
598
  - spec/alexandria/book_providers/bl_provider_spec.rb
599
+ - spec/alexandria/book_providers/douban_provider_spec.rb
569
600
  - spec/alexandria/book_providers/loc_provider_spec.rb
570
601
  - spec/alexandria/book_providers/sbn_provider_spec.rb
571
602
  - spec/alexandria/book_providers/thalia_provider_spec.rb
572
603
  - spec/alexandria/book_providers/world_cat_provider_spec.rb
604
+ - spec/alexandria/book_providers/z3950_provider_spec.rb
573
605
  - spec/alexandria/book_providers_spec.rb
574
606
  - spec/alexandria/book_spec.rb
575
607
  - spec/alexandria/console_spec.rb
576
608
  - spec/alexandria/export_library_spec.rb
609
+ - spec/alexandria/library_collection_spec.rb
577
610
  - spec/alexandria/library_spec.rb
578
611
  - spec/alexandria/library_store_spec.rb
579
612
  - spec/alexandria/preferences_spec.rb
613
+ - spec/alexandria/pseudo_marc_parser_spec.rb
580
614
  - spec/alexandria/scanners/cue_cat_spec.rb
615
+ - spec/alexandria/scanners/keyboard_wedge_spec.rb
581
616
  - spec/alexandria/smart_library_spec.rb
582
617
  - spec/alexandria/ui/about_dialog_spec.rb
583
618
  - spec/alexandria/ui/acquire_dialog_spec.rb
@@ -588,8 +623,8 @@ files:
588
623
  - spec/alexandria/ui/conflict_while_copying_dialog_spec.rb
589
624
  - spec/alexandria/ui/error_dialog_spec.rb
590
625
  - spec/alexandria/ui/export_dialog_spec.rb
626
+ - spec/alexandria/ui/icon_view_manager_spec.rb
591
627
  - spec/alexandria/ui/icons_spec.rb
592
- - spec/alexandria/ui/iconview_spec.rb
593
628
  - spec/alexandria/ui/import_dialog_spec.rb
594
629
  - spec/alexandria/ui/keep_bad_isbn_dialog_spec.rb
595
630
  - spec/alexandria/ui/main_app_spec.rb
@@ -603,7 +638,7 @@ files:
603
638
  - spec/alexandria/ui/sidepane_manager_spec.rb
604
639
  - spec/alexandria/ui/skip_entry_dialog_spec.rb
605
640
  - spec/alexandria/ui/smart_library_properties_dialog_spec.rb
606
- - spec/alexandria/ui/sound_spec.rb
641
+ - spec/alexandria/ui/sound_effects_player_spec.rb
607
642
  - spec/alexandria/ui/ui_manager_spec.rb
608
643
  - spec/data/isbns.txt
609
644
  - spec/data/libraries/0.6.1-noisbn/My Library/0201398257.yaml
@@ -632,10 +667,9 @@ files:
632
667
  - util/rake/omfgenerate.rb
633
668
  homepage: http://www.github.com/mvz/alexandria-book-collection-manager
634
669
  licenses:
635
- - GPL-2.0+
670
+ - GPL-2.0-or-later
636
671
  metadata:
637
672
  rubygems_mfa_required: 'true'
638
- post_install_message:
639
673
  rdoc_options:
640
674
  - "--main"
641
675
  - README.md
@@ -645,15 +679,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
645
679
  requirements:
646
680
  - - ">="
647
681
  - !ruby/object:Gem::Version
648
- version: 2.6.0
682
+ version: 3.2.0
649
683
  required_rubygems_version: !ruby/object:Gem::Requirement
650
684
  requirements:
651
685
  - - ">="
652
686
  - !ruby/object:Gem::Version
653
687
  version: '0'
654
688
  requirements: []
655
- rubygems_version: 3.3.3
656
- signing_key:
689
+ rubygems_version: 4.0.3
657
690
  specification_version: 4
658
691
  summary: GNOME application for managing collections of books
659
692
  test_files: []