alexandria-book-collection-manager 0.7.10 → 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 (114) hide show
  1. checksums.yaml +4 -4
  2. data/.github/dependabot.yml +5 -1
  3. data/.github/workflows/ruby.yml +33 -19
  4. data/.rubocop.yml +12 -3
  5. data/.rubocop_todo.yml +30 -29
  6. data/CHANGELOG.md +64 -25
  7. data/Gemfile +0 -6
  8. data/Rakefile +2 -2
  9. data/alexandria-book-collection-manager.gemspec +20 -17
  10. data/bin/rake +28 -0
  11. data/bin/rspec +28 -0
  12. data/doc/dependency_decisions.yml +32 -26
  13. data/{bin → exe}/alexandria +1 -3
  14. data/lib/alexandria/about.rb +1 -0
  15. data/lib/alexandria/book_providers/bl_provider.rb +4 -6
  16. data/lib/alexandria/book_providers/{douban.rb → douban_provider.rb} +1 -1
  17. data/lib/alexandria/book_providers/loc_provider.rb +2 -6
  18. data/lib/alexandria/book_providers/sbn_provider.rb +2 -12
  19. data/lib/alexandria/book_providers/thalia_provider.rb +5 -6
  20. data/lib/alexandria/book_providers/{web.rb → website_based_provider.rb} +20 -1
  21. data/lib/alexandria/book_providers/{worldcat.rb → world_cat_provider.rb} +3 -4
  22. data/lib/alexandria/book_providers/z3950_provider.rb +24 -26
  23. data/lib/alexandria/book_providers.rb +14 -10
  24. data/lib/alexandria/config.rb +2 -2
  25. data/lib/alexandria/console.rb +12 -10
  26. data/lib/alexandria/export_format.rb +3 -2
  27. data/lib/alexandria/export_library.rb +31 -36
  28. data/lib/alexandria/import_library.rb +3 -4
  29. data/lib/alexandria/import_library_csv.rb +2 -2
  30. data/lib/alexandria/library_collection.rb +1 -1
  31. data/lib/alexandria/library_store.rb +19 -14
  32. data/lib/alexandria/logging.rb +22 -21
  33. data/lib/alexandria/models/book.rb +1 -2
  34. data/lib/alexandria/models/library.rb +5 -6
  35. data/lib/alexandria/preferences.rb +7 -19
  36. data/lib/alexandria/pseudo_marc_parser.rb +1 -1
  37. data/lib/alexandria/scanners/cue_cat.rb +5 -9
  38. data/lib/alexandria/scanners/{keyboard.rb → keyboard_wedge.rb} +3 -3
  39. data/lib/alexandria/scanners.rb +2 -2
  40. data/lib/alexandria/smart_library.rb +7 -3
  41. data/lib/alexandria/ui/acquire_dialog.rb +42 -45
  42. data/lib/alexandria/ui/alert_dialog.rb +1 -1
  43. data/lib/alexandria/ui/barcode_animation.rb +3 -3
  44. data/lib/alexandria/ui/book_properties_dialog.rb +9 -9
  45. data/lib/alexandria/ui/book_properties_dialog_base.rb +10 -11
  46. data/lib/alexandria/ui/builder_base.rb +1 -1
  47. data/lib/alexandria/ui/callbacks.rb +8 -7
  48. data/lib/alexandria/ui/confirm_erase_dialog.rb +1 -0
  49. data/lib/alexandria/ui/conflict_while_copying_dialog.rb +1 -0
  50. data/lib/alexandria/ui/export_dialog.rb +1 -0
  51. data/lib/alexandria/ui/{iconview.rb → icon_view_manager.rb} +1 -0
  52. data/lib/alexandria/ui/iconview_tooltips.rb +1 -1
  53. data/lib/alexandria/ui/keep_bad_isbn_dialog.rb +1 -0
  54. data/lib/alexandria/ui/libraries_combo.rb +1 -0
  55. data/lib/alexandria/ui/listview.rb +2 -0
  56. data/lib/alexandria/ui/main_app.rb +3 -1
  57. data/lib/alexandria/ui/multi_drag_treeview.rb +0 -2
  58. data/lib/alexandria/ui/new_book_dialog.rb +15 -20
  59. data/lib/alexandria/ui/new_book_dialog_manual.rb +7 -7
  60. data/lib/alexandria/ui/new_provider_dialog.rb +1 -0
  61. data/lib/alexandria/ui/new_smart_library_dialog.rb +2 -1
  62. data/lib/alexandria/ui/preferences_dialog.rb +4 -4
  63. data/lib/alexandria/ui/provider_preferences_dialog.rb +1 -0
  64. data/lib/alexandria/ui/really_delete_dialog.rb +1 -0
  65. data/lib/alexandria/ui/sidepane_manager.rb +49 -48
  66. data/lib/alexandria/ui/skip_entry_dialog.rb +1 -0
  67. data/lib/alexandria/ui/smart_library_properties_dialog.rb +1 -0
  68. data/lib/alexandria/ui/smart_library_properties_dialog_base.rb +2 -1
  69. data/lib/alexandria/ui/{sound.rb → sound_effects_player.rb} +3 -0
  70. data/lib/alexandria/ui/ui_manager.rb +192 -141
  71. data/lib/alexandria/ui.rb +1 -0
  72. data/lib/alexandria/version.rb +1 -1
  73. data/po/Makefile +1 -1
  74. data/po/it.po +64 -82
  75. data/spec/alexandria/book_providers/bl_provider_spec.rb +10 -1
  76. data/spec/alexandria/book_providers/douban_provider_spec.rb +17 -0
  77. data/spec/alexandria/book_providers/loc_provider_spec.rb +8 -0
  78. data/spec/alexandria/book_providers/sbn_provider_spec.rb +9 -1
  79. data/spec/alexandria/book_providers/thalia_provider_spec.rb +8 -0
  80. data/spec/alexandria/book_providers/world_cat_provider_spec.rb +8 -0
  81. data/spec/alexandria/book_providers/z3950_provider_spec.rb +22 -0
  82. data/spec/alexandria/console_spec.rb +1 -1
  83. data/spec/alexandria/export_library_spec.rb +57 -11
  84. data/spec/alexandria/library_collection_spec.rb +24 -0
  85. data/spec/alexandria/library_spec.rb +2 -1
  86. data/spec/alexandria/library_store_spec.rb +32 -0
  87. data/spec/alexandria/scanners/keyboard_wedge_spec.rb +47 -0
  88. data/spec/alexandria/ui/about_dialog_spec.rb +1 -1
  89. data/spec/alexandria/ui/acquire_dialog_spec.rb +8 -3
  90. data/spec/alexandria/ui/alert_dialog_spec.rb +1 -1
  91. data/spec/alexandria/ui/bad_isbns_dialog_spec.rb +1 -1
  92. data/spec/alexandria/ui/book_properties_dialog_spec.rb +1 -1
  93. data/spec/alexandria/ui/confirm_erase_dialog_spec.rb +1 -1
  94. data/spec/alexandria/ui/conflict_while_copying_dialog_spec.rb +1 -1
  95. data/spec/alexandria/ui/error_dialog_spec.rb +1 -1
  96. data/spec/alexandria/ui/export_dialog_spec.rb +3 -3
  97. data/spec/alexandria/ui/{iconview_spec.rb → icon_view_manager_spec.rb} +1 -1
  98. data/spec/alexandria/ui/keep_bad_isbn_dialog_spec.rb +1 -1
  99. data/spec/alexandria/ui/main_app_spec.rb +0 -2
  100. data/spec/alexandria/ui/new_book_dialog_manual_spec.rb +1 -1
  101. data/spec/alexandria/ui/new_book_dialog_spec.rb +6 -3
  102. data/spec/alexandria/ui/preferences_dialog_spec.rb +1 -1
  103. data/spec/alexandria/ui/provider_preferences_dialog_spec.rb +22 -7
  104. data/spec/alexandria/ui/really_delete_dialog_spec.rb +1 -1
  105. data/spec/alexandria/ui/sidepane_manager_spec.rb +1 -1
  106. data/spec/alexandria/ui/skip_entry_dialog_spec.rb +1 -1
  107. data/spec/alexandria/ui/ui_manager_spec.rb +2 -2
  108. data/spec/end_to_end/basic_run_spec.rb +2 -1
  109. data/spec/spec_helper.rb +4 -2
  110. data/tasks/setup.rb +1 -1
  111. data/util/rake/fileinstall.rb +5 -6
  112. data/util/rake/omfgenerate.rb +1 -1
  113. metadata +93 -61
  114. /data/spec/alexandria/ui/{sound_spec.rb → sound_effects_player_spec.rb} +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 829e1e63ffab2d61ef2a83a75ac56bf393e503f45ef4ba6d7914ce1c5a38e845
4
- data.tar.gz: 5732456488a3f7ad93a3ec2d35c0011a2155f32496397740f3262bfb7dadd463
3
+ metadata.gz: 17f6d9c171483c9cf0ebe22448f55b811b7d7bc9f25bbcf27795c63d91364069
4
+ data.tar.gz: cf81a5fd962eb54938899f648b18e13ea7f5510549ca4dd815da8a87d17349d1
5
5
  SHA512:
6
- metadata.gz: 128ded6fe79d486802a8790f557cd0a94cd32f6345a996827b7acd8171067be0146f5bdeec10c015c331b2e6b73cfdff877295c3dbfde60d726b53c6241d941c
7
- data.tar.gz: 87675903b9ef31770693a072e832b798d4512d5f0ce9aac59d0dab3421f8974919d1ce4b67673f2fa5841da8e35d665ea83c04928befaa6b7b305a102c89e917
6
+ metadata.gz: b6c228918d92f7d0dd73264117a2113cd99e02b29756327dd6031354a6fc6b12c7bc8e2fc9410665b028732d712bee15127790c9657c933fcdd6547425acfaf7
7
+ data.tar.gz: f4429a9e61993d90cf967d8c924f0c152512e713e92ed5fd955b32ca087946f1609e60965d1ccc8d9c1baf8838138618a93bbddb2a3bcdff87a92a471b86df4a
@@ -6,4 +6,8 @@ updates:
6
6
  - package-ecosystem: "bundler"
7
7
  directory: "/"
8
8
  schedule:
9
- interval: "daily"
9
+ interval: "weekly"
10
+ - package-ecosystem: "github-actions"
11
+ directory: "/"
12
+ schedule:
13
+ interval: "monthly"
@@ -9,64 +9,78 @@ name: CI
9
9
  branches: [master]
10
10
  pull_request:
11
11
  branches: [master]
12
- schedule:
13
- - cron: '16 4 12 * *'
12
+ workflow_dispatch:
14
13
 
15
14
  jobs:
16
15
  test:
17
16
 
18
- runs-on: ubuntu-latest
17
+ runs-on: ubuntu-22.04
19
18
 
20
19
  strategy:
20
+ fail-fast: false
21
21
  matrix:
22
- ruby: [2.6, 2.7, "3.0", "3.1", "3.2.0-preview2"]
22
+ ruby: ["3.2", "3.3", "3.4", "4.0"]
23
23
 
24
24
  steps:
25
- - uses: actions/checkout@v3
25
+ - uses: actions/checkout@v6
26
+
26
27
  - name: Install non-ruby dependencies
27
28
  run: |
28
29
  sudo apt-get update
30
+
31
+ sudo apt-get remove libunwind-14-dev # Prevent conflict with libunwind-dev, needed by libgstreamer1.0-dev
32
+
29
33
  sudo apt-get install libgtk-3-dev # Needed for gtk3 gem
30
34
  sudo apt-get install libgstreamer1.0-dev # Needed for gstreamer gem
31
- sudo apt-get install libgoocanvas-2.0-dev # Needed for GooCanvas::Canvas widget
32
35
  sudo apt-get install libyaz-dev # Needed for zoom gem
36
+
37
+ sudo apt-get install libgoocanvas-2.0-dev # Needed for GooCanvas::Canvas widget
33
38
  sudo apt-get install intltool # Needed for intltool-merge executable
34
39
  sudo apt-get install gconf2 # Needed for gconftool-2 executable
35
40
  sudo apt-get install at-spi2-core # Needed to provide A11y dbus service to silence warnings
36
- sudo apt-get install gstreamer1.0-plugins-good # Needed to set up sound player pipeline
37
- sudo apt-get install pulseaudio # Needed to play sound
41
+
42
+ # Set up sound
43
+ sudo apt-get install gir1.2-gst-plugins-base-1.0 # Needed for GstAudio-1.0.typelib
44
+ sudo apt-get install gstreamer1.0-plugins-good # Needed to set up sound player pipeline
45
+ sudo apt-get install pulseaudio # Needed to play sound
46
+
38
47
  sudo apt-get install xvfb # Provides xvfb-run
39
- sudo apt-get install yaru-theme-icon # Needed to avoid warnings about missing icons on Ubuntu 20.04
48
+ sudo apt-get install yaru-theme-icon # Needed to avoid warnings about missing icons
40
49
 
41
50
  - name: Set up Ruby
42
51
  uses: ruby/setup-ruby@v1
43
52
  with:
44
53
  ruby-version: ${{ matrix.ruby }}
45
54
  bundler-cache: true
55
+
46
56
  - name: Run unit tests
47
57
  run: xvfb-run bundle exec rake spec:unit
58
+
48
59
  - name: Run end-to-end tests in a dbus session
49
60
  run: xvfb-run dbus-run-session bundle exec rake spec:end_to_end
50
61
 
51
- rubocop:
62
+ lint:
52
63
 
53
- runs-on: ubuntu-latest
64
+ runs-on: ubuntu-22.04
54
65
 
55
66
  steps:
56
- - uses: actions/checkout@v3
67
+ - uses: actions/checkout@v6
68
+
57
69
  - name: Install non-ruby dependencies
58
70
  run: |
59
71
  sudo apt-get update
60
- # Needed for gtk3 gem
61
- sudo apt-get install libgtk-3-dev
62
- # Needed for gstreamer gem
63
- sudo apt-get install libgstreamer1.0-dev
64
- # Needed for zoom gem
65
- sudo apt-get install libyaz-dev
72
+
73
+ sudo apt-get remove libunwind-14-dev # Prevent conflict with libunwind-dev, needed by libgstreamer1.0-dev
74
+
75
+ sudo apt-get install libgtk-3-dev # Needed for gtk3 gem
76
+ sudo apt-get install libgstreamer1.0-dev # Needed for gstreamer gem
77
+ sudo apt-get install libyaz-dev # Needed for zoom gem
78
+
66
79
  - name: Set up Ruby
67
80
  uses: ruby/setup-ruby@v1
68
81
  with:
69
- ruby-version: 2.7
82
+ ruby-version: "3.3"
70
83
  bundler-cache: true
84
+
71
85
  - name: Run RuboCop
72
86
  run: bundle exec rubocop -P
data/.rubocop.yml CHANGED
@@ -4,7 +4,7 @@ inherit_mode:
4
4
  merge:
5
5
  - Exclude
6
6
 
7
- require:
7
+ plugins:
8
8
  - rubocop-performance
9
9
  - rubocop-rake
10
10
  - rubocop-rspec
@@ -15,7 +15,11 @@ AllCops:
15
15
  - 'lib/alexandria/default_preferences.rb'
16
16
  - 'pkg/**/*'
17
17
  NewCops: enable
18
- TargetRubyVersion: 2.6
18
+ TargetRubyVersion: 3.2
19
+
20
+ # Put development dependencies in the gemspec so rubygems.org knows about them
21
+ Gemspec/DevelopmentDependencies:
22
+ EnforcedStyle: gemspec
19
23
 
20
24
  # Choose GetText-style I18n cops
21
25
  I18n/GetText:
@@ -23,8 +27,9 @@ I18n/GetText:
23
27
  # Exclude non-user-facing code
24
28
  Exclude:
25
29
  - Rakefile
26
- - 'util/**/*'
30
+ - 'bin/*'
27
31
  - 'spec/**/*'
32
+ - 'util/**/*'
28
33
  I18n/RailsI18n:
29
34
  Enabled: false
30
35
 
@@ -93,6 +98,10 @@ Metrics/BlockLength:
93
98
  Naming/AccessorMethodName:
94
99
  Enabled: false
95
100
 
101
+ # Most methods that return a boolean are not predicate methods
102
+ Naming/PredicateMethod:
103
+ Enabled: false
104
+
96
105
  # Avoid one-letter exception variable name
97
106
  Naming/RescuedExceptionsVariableName:
98
107
  PreferredName: ex
data/.rubocop_todo.yml CHANGED
@@ -1,81 +1,73 @@
1
1
  # This configuration was generated by
2
2
  # `rubocop --auto-gen-config --no-offense-counts --no-auto-gen-timestamp`
3
- # using RuboCop version 1.36.0.
3
+ # using RuboCop version 1.76.0.
4
4
  # The point is for the user to remove these configuration records
5
5
  # one by one as the offenses are removed from the code base.
6
6
  # Note that changes in the inspected code, or installation of new
7
7
  # versions of RuboCop, may require this file to be generated again.
8
8
 
9
- # Configuration parameters: IgnoreLiteralBranches, IgnoreConstantBranches.
9
+ # Configuration parameters: IgnoreLiteralBranches, IgnoreConstantBranches, IgnoreDuplicateElseBranch.
10
10
  Lint/DuplicateBranch:
11
11
  Exclude:
12
12
  - 'lib/alexandria/book_providers/sbn_provider.rb'
13
13
  - 'util/rake/fileinstall.rb'
14
14
 
15
- # Configuration parameters: AllowedMethods, AllowedPatterns, IgnoredMethods, CountRepeatedAttributes.
15
+ # Configuration parameters: AllowedMethods, AllowedPatterns, CountRepeatedAttributes.
16
16
  Metrics/AbcSize:
17
- Max: 109
17
+ Max: 101
18
18
 
19
- # Configuration parameters: CountComments, CountAsOne, ExcludedMethods, AllowedMethods, AllowedPatterns, IgnoredMethods, inherit_mode.
19
+ # Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns, inherit_mode.
20
20
  # AllowedMethods: refine
21
21
  Metrics/BlockLength:
22
- Max: 64
22
+ Max: 57
23
23
 
24
- # Configuration parameters: CountBlocks.
24
+ # Configuration parameters: CountBlocks, CountModifierForms.
25
25
  Metrics/BlockNesting:
26
26
  Max: 5
27
27
 
28
28
  # Configuration parameters: CountComments, CountAsOne.
29
29
  Metrics/ClassLength:
30
- Max: 991
30
+ Max: 430
31
31
 
32
- # Configuration parameters: AllowedMethods, AllowedPatterns, IgnoredMethods.
32
+ # Configuration parameters: AllowedMethods, AllowedPatterns.
33
33
  Metrics/CyclomaticComplexity:
34
34
  Max: 21
35
35
 
36
- # Configuration parameters: CountComments, CountAsOne, ExcludedMethods, AllowedMethods, AllowedPatterns, IgnoredMethods.
36
+ # Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns.
37
37
  Metrics/MethodLength:
38
38
  Max: 98
39
39
 
40
40
  # Configuration parameters: CountComments, CountAsOne.
41
41
  Metrics/ModuleLength:
42
- Max: 361
42
+ Max: 362
43
43
 
44
44
  # Configuration parameters: CountKeywordArgs, MaxOptionalParameters.
45
45
  Metrics/ParameterLists:
46
46
  Max: 7
47
47
 
48
- # Configuration parameters: AllowedMethods, AllowedPatterns, IgnoredMethods.
48
+ # Configuration parameters: AllowedMethods, AllowedPatterns.
49
49
  Metrics/PerceivedComplexity:
50
50
  Max: 27
51
51
 
52
52
  # Configuration parameters: ForbiddenDelimiters.
53
- # ForbiddenDelimiters: (?-mix:(^|\s)(EO[A-Z]{1}|END)(\s|$))
53
+ # ForbiddenDelimiters: (?i-mx:(^|\s)(EO[A-Z]{1}|END)(\s|$))
54
54
  Naming/HeredocDelimiterNaming:
55
55
  Exclude:
56
56
  - 'Rakefile'
57
- - 'bin/alexandria'
57
+ - 'exe/alexandria'
58
58
  - 'lib/alexandria/export_library.rb'
59
59
  - 'lib/alexandria/ui/about_dialog.rb'
60
60
 
61
- # Configuration parameters: NamePrefix, ForbiddenPrefixes, AllowedMethods, MethodDefinitionMacros.
62
- # NamePrefix: is_, has_, have_
63
- # ForbiddenPrefixes: is_, has_, have_
61
+ # Configuration parameters: NamePrefix, ForbiddenPrefixes, AllowedMethods, MethodDefinitionMacros, UseSorbetSigs.
62
+ # NamePrefix: is_, has_, have_, does_
63
+ # ForbiddenPrefixes: is_, has_, have_, does_
64
64
  # AllowedMethods: is_a?
65
65
  # MethodDefinitionMacros: define_method, define_singleton_method
66
- Naming/PredicateName:
66
+ Naming/PredicatePrefix:
67
67
  Exclude:
68
68
  - 'lib/alexandria/ui/smart_library_properties_dialog_base.rb'
69
69
  - 'lib/alexandria/web_themes.rb'
70
70
 
71
- # Configuration parameters: Include, CustomTransform, IgnoreMethods, SpecSuffixOnly.
72
- # Include: **/*_spec*rb*, **/spec/**/*
73
- RSpec/FilePath:
74
- Exclude:
75
- - 'spec/alexandria/console_spec.rb'
76
- - 'spec/alexandria/ui/iconview_spec.rb'
77
- - 'spec/alexandria/ui/sound_spec.rb'
78
-
79
71
  # This cop supports safe autocorrection (--autocorrect).
80
72
  Rake/Desc:
81
73
  Exclude:
@@ -87,8 +79,10 @@ Rake/DuplicateTask:
87
79
  - 'Rakefile'
88
80
 
89
81
  # This cop supports unsafe autocorrection (--autocorrect-all).
90
- # Configuration parameters: EnforcedStyle.
82
+ # Configuration parameters: EnforcedStyle, EnforcedStyleForClasses, EnforcedStyleForModules.
91
83
  # SupportedStyles: nested, compact
84
+ # SupportedStylesForClasses: ~, nested, compact
85
+ # SupportedStylesForModules: ~, nested, compact
92
86
  Style/ClassAndModuleChildren:
93
87
  Exclude:
94
88
  - 'lib/alexandria/ui/init.rb'
@@ -109,18 +103,25 @@ Style/Documentation:
109
103
  Enabled: false
110
104
 
111
105
  # This cop supports safe autocorrection (--autocorrect).
112
- # Configuration parameters: EnforcedStyle, MaxUnannotatedPlaceholdersAllowed, AllowedMethods, AllowedPatterns, IgnoredMethods.
106
+ # Configuration parameters: EnforcedStyle, MaxUnannotatedPlaceholdersAllowed, Mode, AllowedMethods, AllowedPatterns.
113
107
  # SupportedStyles: annotated, template, unannotated
114
108
  Style/FormatStringToken:
115
109
  Exclude:
116
110
  - 'lib/alexandria/ui/new_book_dialog.rb'
117
111
 
112
+ # This cop supports unsafe autocorrection (--autocorrect-all).
113
+ # Configuration parameters: AllowedReceivers.
114
+ # AllowedReceivers: Thread.current
115
+ Style/HashEachMethods:
116
+ Exclude:
117
+ - 'lib/alexandria/ui/new_book_dialog.rb'
118
+
118
119
  # Configuration parameters: AllowedMethods.
119
120
  # AllowedMethods: respond_to_missing?
120
121
  Style/OptionalBooleanParameter:
121
122
  Exclude:
122
123
  - 'lib/alexandria/book_providers.rb'
123
- - 'lib/alexandria/book_providers/worldcat.rb'
124
+ - 'lib/alexandria/book_providers/world_cat_provider.rb'
124
125
  - 'lib/alexandria/execution_queue.rb'
125
126
  - 'lib/alexandria/export_format.rb'
126
127
  - 'lib/alexandria/library_sort_order.rb'
data/CHANGELOG.md CHANGED
@@ -1,5 +1,40 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.7.11 / 2026-01-10
4
+
5
+ * Support Ruby 3.2 through 4.0
6
+ ([#216], [#235], [#213], [#252], [#255], [#264], [#278] and [#284] by [mvz])
7
+ * Update Italian translation ([#272] by [albanobattistella])
8
+ * Remove broken or obsolete online book viewing URLs ([#207] by [mvz])
9
+ * Improve KeyboardWedge scanner ([#231] by [mvz])
10
+ * Prevent Nokogiri's custom libxml memory management breaking Gtk+ widget
11
+ ([#247] by [mvz])
12
+ * Replace zoom with alexandria-zoom ([#224] by [mvz])
13
+ * Update gstreamer and gtk3 dependencies ([#219], [#244] and [#275] by [mvz])
14
+ * Loosen, simplify and update marc version requirement ([#266] by [mvz])
15
+
16
+ [albanobattistella]: https://github.com/albanobattistella
17
+
18
+ [#207]: https://github.com/mvz/alexandria-book-collection-manager/pull/207
19
+ [#213]: https://github.com/mvz/alexandria-book-collection-manager/pull/213
20
+ [#216]: https://github.com/mvz/alexandria-book-collection-manager/pull/216
21
+ [#219]: https://github.com/mvz/alexandria-book-collection-manager/pull/219
22
+ [#224]: https://github.com/mvz/alexandria-book-collection-manager/pull/224
23
+ [#231]: https://github.com/mvz/alexandria-book-collection-manager/pull/231
24
+ [#235]: https://github.com/mvz/alexandria-book-collection-manager/pull/235
25
+ [#244]: https://github.com/mvz/alexandria-book-collection-manager/pull/244
26
+ [#247]: https://github.com/mvz/alexandria-book-collection-manager/pull/247
27
+ [#252]: https://github.com/mvz/alexandria-book-collection-manager/pull/252
28
+ [#255]: https://github.com/mvz/alexandria-book-collection-manager/pull/255
29
+ [#264]: https://github.com/mvz/alexandria-book-collection-manager/pull/264
30
+ [#266]: https://github.com/mvz/alexandria-book-collection-manager/pull/266
31
+ [#270]: https://github.com/mvz/alexandria-book-collection-manager/pull/270
32
+ [#271]: https://github.com/mvz/alexandria-book-collection-manager/pull/271
33
+ [#272]: https://github.com/mvz/alexandria-book-collection-manager/pull/272
34
+ [#275]: https://github.com/mvz/alexandria-book-collection-manager/pull/275
35
+ [#278]: https://github.com/mvz/alexandria-book-collection-manager/pull/278
36
+ [#284]: https://github.com/mvz/alexandria-book-collection-manager/pull/284
37
+
3
38
  ## 0.7.10 / 2022-10-14
4
39
 
5
40
  * Loosen dependency on the marc gem
@@ -7,6 +42,8 @@
7
42
  * Make Alexandria's own MARC parser handle nil records ([#198] by [mvz])
8
43
  * Support upcoming Ruby 3.2
9
44
 
45
+ [#198]: https://github.com/mvz/alexandria-book-collection-manager/pull/198
46
+
10
47
  ## 0.7.9 / 2022-02-04
11
48
 
12
49
  * Drop support for Ruby 2.5
@@ -26,6 +63,18 @@
26
63
  * Fix source for shared items to install ([#139] by [mvz])
27
64
  * Various dependency updates
28
65
 
66
+ [mvz]: https://github.com/mvz
67
+
68
+ [#139]: https://github.com/mvz/alexandria-book-collection-manager/pull/139
69
+ [#136]: https://github.com/mvz/alexandria-book-collection-manager/pull/136
70
+ [#134]: https://github.com/mvz/alexandria-book-collection-manager/pull/134
71
+ [#133]: https://github.com/mvz/alexandria-book-collection-manager/pull/133
72
+ [#120]: https://github.com/mvz/alexandria-book-collection-manager/pull/120
73
+ [#119]: https://github.com/mvz/alexandria-book-collection-manager/pull/119
74
+ [#118]: https://github.com/mvz/alexandria-book-collection-manager/pull/118
75
+ [#115]: https://github.com/mvz/alexandria-book-collection-manager/pull/115
76
+ [#112]: https://github.com/mvz/alexandria-book-collection-manager/pull/112
77
+
29
78
  ## 0.7.8 / 2020-11-29
30
79
 
31
80
  * Fix ThaliaProvider
@@ -41,6 +90,8 @@
41
90
  * Fix calendar popups in Smart Library and Book Properties dialogs
42
91
  * Fix crashes when activating Export and Import menu items
43
92
 
93
+ [#88]: https://github.com/mvz/alexandria-book-collection-manager/pull/88
94
+
44
95
  ## 0.7.6 / 2020-11-01
45
96
 
46
97
  * Make more strings translatable with help from rubocop-i18n
@@ -55,6 +106,13 @@
55
106
  * Improve installation instructions
56
107
  * Improve README ([#83] by [Happy][HappyFacade])
57
108
 
109
+ [piotrdrag]: https://github.com/piotrdrag
110
+ [HappyFacade]: https://github.com/HappyFacade
111
+
112
+ [#83]: https://github.com/mvz/alexandria-book-collection-manager/pull/83
113
+ [#64]: https://github.com/mvz/alexandria-book-collection-manager/pull/64
114
+ [#51]: https://github.com/mvz/alexandria-book-collection-manager/pull/51
115
+
58
116
  ## 0.7.5 / 2020-05-11
59
117
 
60
118
  * Avoid crash when opening Import dialog
@@ -67,10 +125,13 @@
67
125
 
68
126
  * Drop support for Ruby 2.3
69
127
  * Avoid passing nil to Gtk method #visible=, which expects a boolean
70
- ([#22], by [Joseph Haig][jrmhaig])
128
+ ([#23], by [Joseph Haig][jrmhaig])
71
129
  * Update dependencies on gtk3 and gstreamer to 3.4.1
72
130
  * Fix WorldCat provider to use https
73
131
 
132
+ [jrmhaig]: https://github.com/jrmhaig
133
+ [#23]: https://github.com/mvz/alexandria-book-collection-manager/pull/23
134
+
74
135
  ## 0.7.3 / 2019-02-27
75
136
 
76
137
  * Remove DeaStore provider since the site is no longer online
@@ -84,6 +145,8 @@
84
145
  * Fix setup of default scanner when no scanner is configured
85
146
  * Update `YAML.safe_load` calls to new API, silencing deprecation warnings
86
147
 
148
+ [#19]: https://github.com/mvz/alexandria-book-collection-manager/issues/19
149
+
87
150
  ## 0.7.2 / 2018-03-18
88
151
 
89
152
  * Update dependencies
@@ -134,27 +197,3 @@
134
197
  * Amazon queries now use a Associate Tag, a new requirement of
135
198
  Amazon's Product Advertising API. Thanks to Stephen McCamant for
136
199
  providing the patch.
137
-
138
- <!-- contributors -->
139
- [jrmhaig]: https://github.com/jrmhaig
140
- [mvz]: https://github.com/mvz
141
- [piotrdrag]: https://github.com/piotrdrag
142
- [HappyFacade]: https://github.com/HappyFacade
143
-
144
- <!-- issues and pull requests -->
145
- [#198]: https://github.com/mvz/alexandria-book-collection-manager/pull/198
146
- [#139]: https://github.com/mvz/alexandria-book-collection-manager/pull/139
147
- [#136]: https://github.com/mvz/alexandria-book-collection-manager/pull/136
148
- [#134]: https://github.com/mvz/alexandria-book-collection-manager/pull/134
149
- [#133]: https://github.com/mvz/alexandria-book-collection-manager/pull/133
150
- [#120]: https://github.com/mvz/alexandria-book-collection-manager/pull/120
151
- [#119]: https://github.com/mvz/alexandria-book-collection-manager/pull/119
152
- [#118]: https://github.com/mvz/alexandria-book-collection-manager/pull/118
153
- [#115]: https://github.com/mvz/alexandria-book-collection-manager/pull/115
154
- [#112]: https://github.com/mvz/alexandria-book-collection-manager/pull/112
155
- [#88]: https://github.com/mvz/alexandria-book-collection-manager/pull/88
156
- [#83]: https://github.com/mvz/alexandria-book-collection-manager/pull/83
157
- [#64]: https://github.com/mvz/alexandria-book-collection-manager/pull/64
158
- [#51]: https://github.com/mvz/alexandria-book-collection-manager/pull/51
159
- [#23]: https://github.com/mvz/alexandria-book-collection-manager/pull/23
160
- [#19]: https://github.com/mvz/alexandria-book-collection-manager/issues/19
data/Gemfile CHANGED
@@ -4,9 +4,3 @@ source "https://rubygems.org"
4
4
 
5
5
  # The gem's dependencies are specified in the gemspec
6
6
  gemspec
7
-
8
- group :development, :test do
9
- gem "pry"
10
- gem "simplecov"
11
- gem "yard", "~> 0.9.5"
12
- end
data/Rakefile CHANGED
@@ -43,7 +43,7 @@ ICON_FILE_GLOBS = ["share/app-icon/**/*.png",
43
43
  PIXMAP_GLOBS = "share/app-icon/32x32/*.xpm"
44
44
 
45
45
  def install_common(install_task)
46
- install_task.install_exe("bin", "bin/*", "#{PREFIX}/bin")
46
+ install_task.install_exe("exe", "exe/*", "#{PREFIX}/bin")
47
47
  install_task.install("lib", "lib/**/*.rb", install_task.rubylib)
48
48
 
49
49
  install_task.install("share", SHARE_FILE_GLOBS, SHARE)
@@ -148,7 +148,7 @@ file "lib/alexandria/default_preferences.rb" => ["Rakefile", SCHEMA_PATH] do |f|
148
148
  end
149
149
  default = ary.inspect
150
150
  else
151
- default = convert_with_type(default, type).inspect.to_s
151
+ default = convert_with_type(default, type).inspect
152
152
  end
153
153
 
154
154
  generated_lines << varname.inspect + " => " + default
@@ -31,39 +31,42 @@ Gem::Specification.new do |spec|
31
31
  spec.email = ["matijs@matijs.net"]
32
32
 
33
33
  spec.summary = "GNOME application for managing collections of books"
34
-
35
34
  spec.homepage = "http://www.github.com/mvz/alexandria-book-collection-manager"
36
- spec.license = "GPL-2.0+"
37
35
 
38
- spec.required_ruby_version = ">= 2.6.0"
36
+ spec.license = "GPL-2.0-or-later"
37
+ spec.required_ruby_version = ">= 3.2.0"
39
38
 
40
39
  spec.metadata["rubygems_mfa_required"] = "true"
41
40
 
42
41
  spec.files = `git ls-files -z`.split("\0") |
43
42
  ["lib/alexandria/default_preferences.rb"]
43
+ spec.bindir = "exe"
44
44
 
45
45
  spec.executables = ["alexandria"]
46
46
 
47
47
  spec.require_paths = ["lib"]
48
48
  spec.rdoc_options = ["--main", "README.md"]
49
49
 
50
- spec.add_runtime_dependency "gettext", ["~> 3.1"]
51
- spec.add_runtime_dependency "gstreamer", ["~> 4.0.2"]
52
- spec.add_runtime_dependency "gtk3", ["~> 4.0.2"]
53
- spec.add_runtime_dependency "htmlentities", ["~> 4.3"]
54
- spec.add_runtime_dependency "image_size", ["~> 3.0"]
55
- spec.add_runtime_dependency "marc", ">= 1.0", "< 1.3"
56
- spec.add_runtime_dependency "nokogiri", ["~> 1.11"]
57
- spec.add_runtime_dependency "psych", ">= 3.2", "< 4.1"
58
- spec.add_runtime_dependency "zoom", ["~> 0.5.0"]
50
+ spec.add_dependency "alexandria-zoom", ["~> 0.6.0"]
51
+ spec.add_dependency "csv", "~> 3.2"
52
+ spec.add_dependency "gettext", ["~> 3.1"]
53
+ spec.add_dependency "gstreamer", "~> 4.3.0"
54
+ spec.add_dependency "gtk3", "~> 4.3.0"
55
+ spec.add_dependency "htmlentities", ["~> 4.3"]
56
+ spec.add_dependency "image_size", ["~> 3.0"]
57
+ spec.add_dependency "logger", "~> 1.7"
58
+ spec.add_dependency "marc", "~> 1.3"
59
+ spec.add_dependency "nokogiri", ["~> 1.11"]
60
+ spec.add_dependency "observer", "~> 0.1.2"
59
61
 
60
62
  spec.add_development_dependency "gnome_app_driver", "~> 0.3.2"
61
63
  spec.add_development_dependency "rake", ["~> 13.0"]
62
64
  spec.add_development_dependency "rspec", ["~> 3.0"]
63
- spec.add_development_dependency "rubocop", "~> 1.32"
64
- spec.add_development_dependency "rubocop-i18n", ["~> 3.0"]
65
- spec.add_development_dependency "rubocop-performance", "~> 1.13"
66
- spec.add_development_dependency "rubocop-rake", "~> 0.6.0"
67
- spec.add_development_dependency "rubocop-rspec", "~> 2.7"
65
+ spec.add_development_dependency "rubocop", "~> 1.79"
66
+ spec.add_development_dependency "rubocop-i18n", "~> 3.2"
67
+ spec.add_development_dependency "rubocop-performance", "~> 1.25"
68
+ spec.add_development_dependency "rubocop-rake", "~> 0.7.1"
69
+ spec.add_development_dependency "rubocop-rspec", "~> 3.6"
70
+ spec.add_development_dependency "simplecov", "~> 0.22.0"
68
71
  spec.add_development_dependency "webmock", "~> 3.9"
69
72
  end
data/bin/rake ADDED
@@ -0,0 +1,28 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ #
5
+ # This file was generated by Bundler.
6
+ #
7
+ # The application 'rake' is installed as part of a gem, and
8
+ # this file is here to facilitate running it.
9
+ #
10
+
11
+ ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../Gemfile", __dir__)
12
+
13
+ bundle_binstub = File.expand_path("bundle", __dir__)
14
+
15
+ if File.file?(bundle_binstub)
16
+ if File.read(bundle_binstub, 300).include?("This file was generated by Bundler")
17
+ load(bundle_binstub)
18
+ else
19
+ abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.\n" \
20
+ "Replace `bin/bundle` by running `bundle binstubs bundler --force`, " \
21
+ "then run this command again.")
22
+ end
23
+ end
24
+
25
+ require "rubygems"
26
+ require "bundler/setup"
27
+
28
+ load Gem.bin_path("rake", "rake")
data/bin/rspec ADDED
@@ -0,0 +1,28 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ #
5
+ # This file was generated by Bundler.
6
+ #
7
+ # The application 'rspec' is installed as part of a gem, and
8
+ # this file is here to facilitate running it.
9
+ #
10
+
11
+ ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../Gemfile", __dir__)
12
+
13
+ bundle_binstub = File.expand_path("bundle", __dir__)
14
+
15
+ if File.file?(bundle_binstub)
16
+ if File.read(bundle_binstub, 300).include?("This file was generated by Bundler")
17
+ load(bundle_binstub)
18
+ else
19
+ abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.\n" \
20
+ "Replace `bin/bundle` by running `bundle binstubs bundler --force`, " \
21
+ "then run this command again.")
22
+ end
23
+ end
24
+
25
+ require "rubygems"
26
+ require "bundler/setup"
27
+
28
+ load Gem.bin_path("rspec-core", "rspec")