alexandria-book-collection-manager 0.7.8 → 0.7.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (134) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby.yml +48 -53
  3. data/.rubocop.yml +18 -5
  4. data/.rubocop_todo.yml +31 -37
  5. data/.simplecov +2 -2
  6. data/CHANGELOG.md +37 -0
  7. data/ChangeLog.0 +19 -19
  8. data/INSTALL.md +3 -5
  9. data/README.md +0 -5
  10. data/Rakefile +14 -14
  11. data/alexandria-book-collection-manager.gemspec +35 -34
  12. data/doc/FAQ +2 -2
  13. data/lib/alexandria/about.rb +1 -1
  14. data/lib/alexandria/book_providers/bl_provider.rb +88 -0
  15. data/lib/alexandria/book_providers/loc_provider.rb +38 -0
  16. data/lib/alexandria/book_providers/sbn_provider.rb +108 -0
  17. data/lib/alexandria/book_providers/thalia_provider.rb +1 -1
  18. data/lib/alexandria/book_providers/web.rb +2 -2
  19. data/lib/alexandria/book_providers/worldcat.rb +9 -7
  20. data/lib/alexandria/book_providers/z3950_provider.rb +199 -0
  21. data/lib/alexandria/book_providers.rb +10 -25
  22. data/lib/alexandria/console.rb +2 -2
  23. data/lib/alexandria/default_preferences.rb +1 -1
  24. data/lib/alexandria/export_library.rb +14 -14
  25. data/lib/alexandria/image_fetcher.rb +25 -0
  26. data/lib/alexandria/import_library.rb +10 -10
  27. data/lib/alexandria/library_store.rb +4 -5
  28. data/lib/alexandria/models/book.rb +13 -0
  29. data/lib/alexandria/models/library.rb +15 -23
  30. data/lib/alexandria/preferences.rb +4 -6
  31. data/lib/alexandria/{book_providers/pseudomarc.rb → pseudo_marc_parser.rb} +2 -2
  32. data/lib/alexandria/scanners/cue_cat.rb +1 -1
  33. data/lib/alexandria/smart_library.rb +2 -2
  34. data/lib/alexandria/ui/about_dialog.rb +1 -1
  35. data/lib/alexandria/ui/acquire_dialog.rb +6 -9
  36. data/lib/alexandria/ui/alert_dialog.rb +2 -2
  37. data/lib/alexandria/ui/barcode_animation.rb +1 -1
  38. data/lib/alexandria/ui/book_properties_dialog_base.rb +5 -9
  39. data/lib/alexandria/ui/completion_models.rb +1 -5
  40. data/lib/alexandria/ui/conflict_while_copying_dialog.rb +1 -1
  41. data/lib/alexandria/ui/icons.rb +2 -2
  42. data/lib/alexandria/ui/init.rb +10 -4
  43. data/lib/alexandria/ui/listview.rb +1 -1
  44. data/lib/alexandria/ui/multi_drag_treeview.rb +1 -1
  45. data/lib/alexandria/ui/new_book_dialog.rb +11 -13
  46. data/lib/alexandria/ui/new_book_dialog_manual.rb +1 -1
  47. data/lib/alexandria/ui/preferences_dialog.rb +2 -2
  48. data/lib/alexandria/ui/provider_preferences_base_dialog.rb +1 -1
  49. data/lib/alexandria/ui/really_delete_dialog.rb +1 -1
  50. data/lib/alexandria/ui/ui_manager.rb +17 -25
  51. data/lib/alexandria/version.rb +1 -1
  52. data/lib/alexandria/web_themes.rb +1 -1
  53. data/lib/alexandria.rb +6 -5
  54. data/po/cs.po +90 -125
  55. data/po/cy.po +87 -125
  56. data/po/de.po +96 -125
  57. data/po/el.po +96 -125
  58. data/po/es.po +96 -125
  59. data/po/fr.po +90 -125
  60. data/po/ga.po +83 -124
  61. data/po/gl.po +90 -125
  62. data/po/it.po +90 -125
  63. data/po/ja.po +90 -125
  64. data/po/mk.po +96 -125
  65. data/po/nb.po +90 -125
  66. data/po/nl.po +107 -124
  67. data/po/pl.po +113 -124
  68. data/po/pt.po +90 -125
  69. data/po/pt_BR.po +90 -125
  70. data/po/ru.po +92 -124
  71. data/po/sk.po +90 -125
  72. data/po/sv.po +90 -125
  73. data/po/uk.po +90 -125
  74. data/po/zh_TW.po +90 -125
  75. data/schemas/alexandria.schemas +1 -1
  76. data/share/gnome/help/alexandria/C/adding-books.xml +3 -4
  77. data/share/gnome/help/alexandria/C/introduction.xml +0 -16
  78. data/share/gnome/help/alexandria/C/searching.xml +1 -4
  79. data/share/gnome/help/alexandria/C/settings.xml +0 -30
  80. data/share/gnome/help/alexandria/fr/alexandria.xml +4 -159
  81. data/share/gnome/help/alexandria/ja/adding-books.xml +1 -1
  82. data/share/gnome/help/alexandria/ja/introduction.xml +0 -15
  83. data/share/gnome/help/alexandria/ja/searching.xml +3 -7
  84. data/share/gnome/help/alexandria/ja/settings.xml +0 -27
  85. data/spec/alexandria/book_providers/bl_provider_spec.rb +13 -0
  86. data/spec/alexandria/book_providers/loc_provider_spec.rb +17 -0
  87. data/spec/alexandria/book_providers/sbn_provider_spec.rb +13 -0
  88. data/spec/alexandria/book_providers/thalia_provider_spec.rb +1 -1
  89. data/spec/alexandria/book_providers/world_cat_provider_spec.rb +22 -10
  90. data/spec/alexandria/book_providers_spec.rb +0 -81
  91. data/spec/alexandria/book_spec.rb +5 -3
  92. data/spec/alexandria/export_library_spec.rb +8 -8
  93. data/spec/alexandria/library_spec.rb +83 -51
  94. data/spec/alexandria/library_store_spec.rb +1 -1
  95. data/spec/alexandria/preferences_spec.rb +7 -7
  96. data/spec/alexandria/pseudo_marc_parser_spec.rb +71 -0
  97. data/spec/alexandria/scanners/cue_cat_spec.rb +11 -4
  98. data/spec/alexandria/smart_library_spec.rb +7 -5
  99. data/spec/alexandria/ui/about_dialog_spec.rb +1 -1
  100. data/spec/alexandria/ui/acquire_dialog_spec.rb +1 -1
  101. data/spec/alexandria/ui/alert_dialog_spec.rb +5 -3
  102. data/spec/alexandria/ui/bad_isbns_dialog_spec.rb +1 -1
  103. data/spec/alexandria/ui/book_properties_dialog_spec.rb +4 -4
  104. data/spec/alexandria/ui/confirm_erase_dialog_spec.rb +18 -2
  105. data/spec/alexandria/ui/conflict_while_copying_dialog_spec.rb +1 -1
  106. data/spec/alexandria/ui/error_dialog_spec.rb +13 -2
  107. data/spec/alexandria/ui/export_dialog_spec.rb +3 -3
  108. data/spec/alexandria/ui/iconview_spec.rb +1 -1
  109. data/spec/alexandria/ui/import_dialog_spec.rb +3 -3
  110. data/spec/alexandria/ui/keep_bad_isbn_dialog_spec.rb +1 -1
  111. data/spec/alexandria/ui/new_book_dialog_manual_spec.rb +4 -4
  112. data/spec/alexandria/ui/new_book_dialog_spec.rb +2 -2
  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 +1 -1
  116. data/spec/alexandria/ui/provider_preferences_dialog_spec.rb +2 -2
  117. data/spec/alexandria/ui/really_delete_dialog_spec.rb +1 -1
  118. data/spec/alexandria/ui/sidepane_manager_spec.rb +1 -1
  119. data/spec/alexandria/ui/skip_entry_dialog_spec.rb +18 -2
  120. data/spec/alexandria/ui/smart_library_properties_dialog_spec.rb +2 -2
  121. data/spec/alexandria/ui/ui_manager_spec.rb +83 -5
  122. data/spec/data/libraries/0.6.2/My Library/9780571147168.yaml +2 -0
  123. data/spec/spec_helper.rb +23 -32
  124. data/util/rake/fileinstall.rb +12 -12
  125. data/util/rake/gettextgenerate.rb +1 -1
  126. data/util/rake/omfgenerate.rb +1 -1
  127. metadata +73 -58
  128. data/lib/alexandria/book_providers/adlibris.rb +0 -191
  129. data/lib/alexandria/book_providers/amazon_aws.rb +0 -239
  130. data/lib/alexandria/book_providers/amazon_ecs_util.rb +0 -373
  131. data/lib/alexandria/book_providers/barnes_and_noble.rb +0 -209
  132. data/lib/alexandria/book_providers/proxis.rb +0 -176
  133. data/lib/alexandria/book_providers/siciliano.rb +0 -256
  134. data/lib/alexandria/book_providers/z3950.rb +0 -408
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 86ff53adf7e1792c32534b149370ab80a99a24c8a363273a1ca3d3f83e2c73c0
4
- data.tar.gz: 6a38d050f6cf13a9d86e0c387cdbe472442a02c33f74563f4902f4338deac228
3
+ metadata.gz: 829e1e63ffab2d61ef2a83a75ac56bf393e503f45ef4ba6d7914ce1c5a38e845
4
+ data.tar.gz: 5732456488a3f7ad93a3ec2d35c0011a2155f32496397740f3262bfb7dadd463
5
5
  SHA512:
6
- metadata.gz: fbd36ea7f9caaabff7979e3ab57471e27a6a1a5daa33ce140d4a8df590b07d91f4302267db64c601281f3513401e5726a1874dba622a4d9e72a361c7898c1284
7
- data.tar.gz: 87c17e9d9bc4c4bd057a1013068d034a48ca38e3fcd5784a743a1c1d971671165df4347bcb2aa710dd4a636ecc3d1bfdbee1f0bfe7a4eb7fccd7d4fb8acddd77
6
+ metadata.gz: 128ded6fe79d486802a8790f557cd0a94cd32f6345a996827b7acd8171067be0146f5bdeec10c015c331b2e6b73cfdff877295c3dbfde60d726b53c6241d941c
7
+ data.tar.gz: 87675903b9ef31770693a072e832b798d4512d5f0ce9aac59d0dab3421f8974919d1ce4b67673f2fa5841da8e35d665ea83c04928befaa6b7b305a102c89e917
@@ -2,13 +2,15 @@
2
2
  # run tests with Rake
3
3
  # For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby
4
4
 
5
- name: Ruby
5
+ name: CI
6
6
 
7
- on:
7
+ "on":
8
8
  push:
9
- branches: [ master ]
9
+ branches: [master]
10
10
  pull_request:
11
- branches: [ master ]
11
+ branches: [master]
12
+ schedule:
13
+ - cron: '16 4 12 * *'
12
14
 
13
15
  jobs:
14
16
  test:
@@ -17,61 +19,54 @@ jobs:
17
19
 
18
20
  strategy:
19
21
  matrix:
20
- ruby: [2.5, 2.6, 2.7]
22
+ ruby: [2.6, 2.7, "3.0", "3.1", "3.2.0-preview2"]
21
23
 
22
24
  steps:
23
- - uses: actions/checkout@v2
24
- - name: Install non-ruby dependencies
25
- run: |
26
- # Needed for gtk3 gem
27
- sudo apt-get install libgtk-3-dev
28
- # Needed for gstreamer gem
29
- sudo apt-get install libgstreamer1.0-dev
30
- # Needed for GooCanvas::Canvas widget
31
- sudo apt-get install libgoocanvas-2.0-dev
32
- # Needed for zoom gem
33
- sudo apt-get install libyaz-dev
34
- # Needed for intltool-merge executable
35
- sudo apt-get install intltool
36
- # Needed for gconftool-2 executable
37
- sudo apt-get install gconf2
38
- # Needed to provide A11y dbus service to silence warnings
39
- sudo apt-get install at-spi2-core
40
- # Needed to set up sound player pipeline
41
- sudo apt-get install gstreamer1.0-plugins-good
42
- # Needed to play sound
43
- sudo apt-get install pulseaudio
44
- # Provides xvfb-run
45
- sudo apt-get install xvfb
25
+ - uses: actions/checkout@v3
26
+ - name: Install non-ruby dependencies
27
+ run: |
28
+ sudo apt-get update
29
+ sudo apt-get install libgtk-3-dev # Needed for gtk3 gem
30
+ 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
+ sudo apt-get install libyaz-dev # Needed for zoom gem
33
+ sudo apt-get install intltool # Needed for intltool-merge executable
34
+ sudo apt-get install gconf2 # Needed for gconftool-2 executable
35
+ 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
38
+ 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
46
40
 
47
- - name: Set up Ruby
48
- uses: ruby/setup-ruby@v1
49
- with:
50
- ruby-version: ${{ matrix.ruby }}
51
- bundler-cache: true
52
- - name: Run unit tests
53
- run: xvfb-run bundle exec rake spec:unit
54
- - name: Run end-to-end tests in a dbus session
55
- run: xvfb-run dbus-run-session bundle exec rake spec:end_to_end
41
+ - name: Set up Ruby
42
+ uses: ruby/setup-ruby@v1
43
+ with:
44
+ ruby-version: ${{ matrix.ruby }}
45
+ bundler-cache: true
46
+ - name: Run unit tests
47
+ run: xvfb-run bundle exec rake spec:unit
48
+ - name: Run end-to-end tests in a dbus session
49
+ run: xvfb-run dbus-run-session bundle exec rake spec:end_to_end
56
50
 
57
51
  rubocop:
58
52
 
59
53
  runs-on: ubuntu-latest
60
54
 
61
55
  steps:
62
- - uses: actions/checkout@v2
63
- - name: Install non-ruby dependencies
64
- run: |
65
- # Needed for gtk3 gem
66
- sudo apt-get install libgtk-3-dev
67
- # Needed for gstreamer gem
68
- sudo apt-get install libgstreamer1.0-dev
69
- # Needed for zoom gem
70
- sudo apt-get install libyaz-dev
71
- - name: Set up Ruby
72
- uses: ruby/setup-ruby@v1
73
- with:
74
- ruby-version: 2.7
75
- bundler-cache: true
76
- - name: Run RuboCop
77
- run: bundle exec rubocop -P
56
+ - uses: actions/checkout@v3
57
+ - name: Install non-ruby dependencies
58
+ run: |
59
+ 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
66
+ - name: Set up Ruby
67
+ uses: ruby/setup-ruby@v1
68
+ with:
69
+ ruby-version: 2.7
70
+ bundler-cache: true
71
+ - name: Run RuboCop
72
+ run: bundle exec rubocop -P
data/.rubocop.yml CHANGED
@@ -1,7 +1,12 @@
1
1
  inherit_from: .rubocop_todo.yml
2
2
 
3
+ inherit_mode:
4
+ merge:
5
+ - Exclude
6
+
3
7
  require:
4
8
  - rubocop-performance
9
+ - rubocop-rake
5
10
  - rubocop-rspec
6
11
  - rubocop-i18n
7
12
 
@@ -9,24 +14,28 @@ AllCops:
9
14
  Exclude:
10
15
  - 'lib/alexandria/default_preferences.rb'
11
16
  - 'pkg/**/*'
12
- - 'vendor/bundle/**/*'
13
17
  NewCops: enable
14
- TargetRubyVersion: 2.5
18
+ TargetRubyVersion: 2.6
15
19
 
16
20
  # Choose GetText-style I18n cops
17
- GetText:
21
+ I18n/GetText:
18
22
  Enabled: true
19
23
  # Exclude non-user-facing code
20
24
  Exclude:
21
25
  - Rakefile
22
26
  - 'util/**/*'
23
27
  - 'spec/**/*'
24
- RailsI18n:
28
+ I18n/RailsI18n:
25
29
  Enabled: false
26
30
 
27
31
  # This code has a lot of pre-existing translations with percent-style
28
32
  # formatting. Maybe one day someone will re-do all of them ...
29
- GetText/DecorateStringFormattingUsingPercent:
33
+ I18n/GetText/DecorateStringFormattingUsingPercent:
34
+ Enabled: false
35
+
36
+ # Disable cop in disabled department explictly until
37
+ # https://github.com/rubocop-hq/rubocop/pull/9258 is merged.
38
+ I18n/RailsI18n/DecorateString:
30
39
  Enabled: false
31
40
 
32
41
  # Make BeginEndAlignment behavior match EndAlignment
@@ -63,6 +72,10 @@ Layout/SpaceBeforeBlockBraces:
63
72
  Lint/AmbiguousBlockAssociation:
64
73
  Enabled: false
65
74
 
75
+ # Assume the programmer knows precendence rules
76
+ Lint/AmbiguousOperatorPrecedence:
77
+ Enabled: false
78
+
66
79
  # Allow if (foo = get_foo) style
67
80
  Lint/AssignmentInCondition:
68
81
  AllowSafeAssignment: true
data/.rubocop_todo.yml CHANGED
@@ -1,17 +1,23 @@
1
1
  # This configuration was generated by
2
2
  # `rubocop --auto-gen-config --no-offense-counts --no-auto-gen-timestamp`
3
- # using RuboCop version 0.93.1.
3
+ # using RuboCop version 1.36.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: IgnoredMethods.
9
+ # Configuration parameters: IgnoreLiteralBranches, IgnoreConstantBranches.
10
+ Lint/DuplicateBranch:
11
+ Exclude:
12
+ - 'lib/alexandria/book_providers/sbn_provider.rb'
13
+ - 'util/rake/fileinstall.rb'
14
+
15
+ # Configuration parameters: AllowedMethods, AllowedPatterns, IgnoredMethods, CountRepeatedAttributes.
10
16
  Metrics/AbcSize:
11
- Max: 111
17
+ Max: 109
12
18
 
13
- # Configuration parameters: CountComments, CountAsOne, ExcludedMethods.
14
- # ExcludedMethods: refine
19
+ # Configuration parameters: CountComments, CountAsOne, ExcludedMethods, AllowedMethods, AllowedPatterns, IgnoredMethods, inherit_mode.
20
+ # AllowedMethods: refine
15
21
  Metrics/BlockLength:
16
22
  Max: 64
17
23
 
@@ -21,13 +27,13 @@ Metrics/BlockNesting:
21
27
 
22
28
  # Configuration parameters: CountComments, CountAsOne.
23
29
  Metrics/ClassLength:
24
- Max: 997
30
+ Max: 991
25
31
 
26
- # Configuration parameters: IgnoredMethods.
32
+ # Configuration parameters: AllowedMethods, AllowedPatterns, IgnoredMethods.
27
33
  Metrics/CyclomaticComplexity:
28
- Max: 27
34
+ Max: 21
29
35
 
30
- # Configuration parameters: CountComments, CountAsOne, ExcludedMethods.
36
+ # Configuration parameters: CountComments, CountAsOne, ExcludedMethods, AllowedMethods, AllowedPatterns, IgnoredMethods.
31
37
  Metrics/MethodLength:
32
38
  Max: 98
33
39
 
@@ -35,18 +41,14 @@ Metrics/MethodLength:
35
41
  Metrics/ModuleLength:
36
42
  Max: 361
37
43
 
38
- # Configuration parameters: CountKeywordArgs.
44
+ # Configuration parameters: CountKeywordArgs, MaxOptionalParameters.
39
45
  Metrics/ParameterLists:
40
46
  Max: 7
41
47
 
42
- # Configuration parameters: IgnoredMethods.
48
+ # Configuration parameters: AllowedMethods, AllowedPatterns, IgnoredMethods.
43
49
  Metrics/PerceivedComplexity:
44
50
  Max: 27
45
51
 
46
- Naming/BinaryOperatorParameterName:
47
- Exclude:
48
- - 'lib/alexandria/book_providers/amazon_ecs_util.rb'
49
-
50
52
  # Configuration parameters: ForbiddenDelimiters.
51
53
  # ForbiddenDelimiters: (?-mix:(^|\s)(EO[A-Z]{1}|END)(\s|$))
52
54
  Naming/HeredocDelimiterNaming:
@@ -63,31 +65,28 @@ Naming/HeredocDelimiterNaming:
63
65
  # MethodDefinitionMacros: define_method, define_singleton_method
64
66
  Naming/PredicateName:
65
67
  Exclude:
66
- - 'spec/**/*'
67
- - 'lib/alexandria/book_providers/amazon_ecs_util.rb'
68
68
  - 'lib/alexandria/ui/smart_library_properties_dialog_base.rb'
69
69
  - 'lib/alexandria/web_themes.rb'
70
70
 
71
- # Configuration parameters: CustomTransform, IgnoreMethods, SpecSuffixOnly.
71
+ # Configuration parameters: Include, CustomTransform, IgnoreMethods, SpecSuffixOnly.
72
+ # Include: **/*_spec*rb*, **/spec/**/*
72
73
  RSpec/FilePath:
73
74
  Exclude:
75
+ - 'spec/alexandria/console_spec.rb'
74
76
  - 'spec/alexandria/ui/iconview_spec.rb'
75
77
  - 'spec/alexandria/ui/sound_spec.rb'
76
78
 
77
- RSpec/MultipleExpectations:
78
- Max: 7
79
+ # This cop supports safe autocorrection (--autocorrect).
80
+ Rake/Desc:
81
+ Exclude:
82
+ - 'Rakefile'
83
+ - 'tasks/spec.rake'
79
84
 
80
- # Cop supports --auto-correct.
81
- # Configuration parameters: Strict, EnforcedStyle, AllowedExplicitMatchers.
82
- # SupportedStyles: inflected, explicit
83
- RSpec/PredicateMatcher:
85
+ Rake/DuplicateTask:
84
86
  Exclude:
85
- - 'spec/alexandria/export_library_spec.rb'
86
- - 'spec/alexandria/library_spec.rb'
87
- - 'spec/alexandria/library_store_spec.rb'
88
- - 'spec/alexandria/scanners/cue_cat_spec.rb'
87
+ - 'Rakefile'
89
88
 
90
- # Cop supports --auto-correct.
89
+ # This cop supports unsafe autocorrection (--autocorrect-all).
91
90
  # Configuration parameters: EnforcedStyle.
92
91
  # SupportedStyles: nested, compact
93
92
  Style/ClassAndModuleChildren:
@@ -97,7 +96,6 @@ Style/ClassAndModuleChildren:
97
96
 
98
97
  Style/ClassVars:
99
98
  Exclude:
100
- - 'lib/alexandria/book_providers/amazon_ecs_util.rb'
101
99
  - 'lib/alexandria/execution_queue.rb'
102
100
  - 'lib/alexandria/logging.rb'
103
101
  - 'lib/alexandria/models/library.rb'
@@ -106,16 +104,15 @@ Style/ClassVars:
106
104
  - 'lib/alexandria/ui/book_properties_dialog_base.rb'
107
105
  - 'lib/alexandria/ui/new_book_dialog.rb'
108
106
 
107
+ # Configuration parameters: AllowedConstants.
109
108
  Style/Documentation:
110
109
  Enabled: false
111
110
 
112
- # Configuration parameters: EnforcedStyle.
111
+ # This cop supports safe autocorrection (--autocorrect).
112
+ # Configuration parameters: EnforcedStyle, MaxUnannotatedPlaceholdersAllowed, AllowedMethods, AllowedPatterns, IgnoredMethods.
113
113
  # SupportedStyles: annotated, template, unannotated
114
114
  Style/FormatStringToken:
115
115
  Exclude:
116
- - 'lib/alexandria/ui/acquire_dialog.rb'
117
- - 'lib/alexandria/ui/dndable.rb'
118
- - 'lib/alexandria/ui/listview.rb'
119
116
  - 'lib/alexandria/ui/new_book_dialog.rb'
120
117
 
121
118
  # Configuration parameters: AllowedMethods.
@@ -123,10 +120,7 @@ Style/FormatStringToken:
123
120
  Style/OptionalBooleanParameter:
124
121
  Exclude:
125
122
  - 'lib/alexandria/book_providers.rb'
126
- - 'lib/alexandria/book_providers/barnes_and_noble.rb'
127
- - 'lib/alexandria/book_providers/siciliano.rb'
128
123
  - 'lib/alexandria/book_providers/worldcat.rb'
129
- - 'lib/alexandria/console.rb'
130
124
  - 'lib/alexandria/execution_queue.rb'
131
125
  - 'lib/alexandria/export_format.rb'
132
126
  - 'lib/alexandria/library_sort_order.rb'
data/.simplecov CHANGED
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  SimpleCov.start do
4
- add_group "Main", "lib"
5
- add_group "Specs", "spec"
4
+ add_group "Main", "lib/"
5
+ add_group "Specs", "spec/"
6
6
  enable_coverage :branch
7
7
  end
data/CHANGELOG.md CHANGED
@@ -1,5 +1,31 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.7.10 / 2022-10-14
4
+
5
+ * Loosen dependency on the marc gem
6
+ * Update dependency on the gtk3 and gstreamer gems
7
+ * Make Alexandria's own MARC parser handle nil records ([#198] by [mvz])
8
+ * Support upcoming Ruby 3.2
9
+
10
+ ## 0.7.9 / 2022-02-04
11
+
12
+ * Drop support for Ruby 2.5
13
+ * Support up to Ruby 3.1
14
+ * Fix crash when renaming a Library ([#112] by [mvz])
15
+ * Remove broken book data providers: Siciliano, AdLibris, Proxis and Barnes and
16
+ Noble ([#115] by [mvz])
17
+ * Remove Amazon provider ([#118] by [mvz])
18
+ * Remove references to obsolete MCE (Spanish Ministry of Culture) provider from
19
+ documentation ([#119] by [mvz])
20
+ * Use nokogiri instead of hpricot, which is no longer being maintained ([#120]
21
+ by [mvz])
22
+ * Filter out Library objects when loading Book from yaml ([#133] by [mvz])
23
+ * Fix selection update when added book does not match current filter ([#134] by
24
+ [mvz])
25
+ * Recognize negative integers in GConf settings (#136] by [mvz])
26
+ * Fix source for shared items to install ([#139] by [mvz])
27
+ * Various dependency updates
28
+
3
29
  ## 0.7.8 / 2020-11-29
4
30
 
5
31
  * Fix ThaliaProvider
@@ -111,10 +137,21 @@
111
137
 
112
138
  <!-- contributors -->
113
139
  [jrmhaig]: https://github.com/jrmhaig
140
+ [mvz]: https://github.com/mvz
114
141
  [piotrdrag]: https://github.com/piotrdrag
115
142
  [HappyFacade]: https://github.com/HappyFacade
116
143
 
117
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
118
155
  [#88]: https://github.com/mvz/alexandria-book-collection-manager/pull/88
119
156
  [#83]: https://github.com/mvz/alexandria-book-collection-manager/pull/83
120
157
  [#64]: https://github.com/mvz/alexandria-book-collection-manager/pull/64
data/ChangeLog.0 CHANGED
@@ -98,7 +98,7 @@
98
98
  - test of provider MCU: added test that bugs [#2533] and [#2518]
99
99
  are fixed
100
100
  - added test of SBN, LOC and BL, and grouped together tests of
101
- providers depending on optional libraries
101
+ providers depending on optional libraries
102
102
 
103
103
  * z3950.rb:
104
104
  - refactored
@@ -595,22 +595,22 @@
595
595
 
596
596
  2005-10-13 Laurent Sansonetti <lrz@gnome.org>
597
597
 
598
- * lib/alexandria/macui/Icons.rb,
599
- lib/alexandria/macui/ImportController.rb,
600
- lib/alexandria/macui/MainController.rb,
601
- lib/alexandria/macui/TableView.rb,
602
- lib/alexandria/macui/MainWindow.nib/info.nib,
603
- lib/alexandria/macui/MainWindow.nib/keyedobjects.nib:
604
-
605
- - Fixed the end of the import action ;
606
- - Double click on a row in the libraries table view will edit ;
607
- - Added ellipsis after action names in some popup menus ;
608
- - Set the vertical scrollbar as autohide in the libraries table view ;
609
- - Double click outside a row in the libraries table view will create a
610
- new library ;
611
- - Double click outside a row in the books table view or a cell in the
612
- books matrix will open the add book sheet ;
613
- - Some cleaning.
598
+ * lib/alexandria/macui/Icons.rb,
599
+ lib/alexandria/macui/ImportController.rb,
600
+ lib/alexandria/macui/MainController.rb,
601
+ lib/alexandria/macui/TableView.rb,
602
+ lib/alexandria/macui/MainWindow.nib/info.nib,
603
+ lib/alexandria/macui/MainWindow.nib/keyedobjects.nib:
604
+
605
+ - Fixed the end of the import action ;
606
+ - Double click on a row in the libraries table view will edit ;
607
+ - Added ellipsis after action names in some popup menus ;
608
+ - Set the vertical scrollbar as autohide in the libraries table view ;
609
+ - Double click outside a row in the libraries table view will create a
610
+ new library ;
611
+ - Double click outside a row in the books table view or a cell in the
612
+ books matrix will open the add book sheet ;
613
+ - Some cleaning.
614
614
 
615
615
  2005-10-02 Laurent Sansonetti <lrz@gnome.org>
616
616
 
@@ -642,7 +642,7 @@
642
642
 
643
643
  - Removed all scanning stuff ;
644
644
  - The libraries popup menu now display a "New Library" item that
645
- automatically generates a library then adds the books in it ;
645
+ automatically generates a library then adds the books in it ;
646
646
  - Fixed the help error transcient window.
647
647
 
648
648
  * lib/alexandria/library.rb:
@@ -3242,7 +3242,7 @@
3242
3242
  Use the 'clicked' signal instead of 'pressed' for
3243
3243
  Gtk::Button's.
3244
3244
 
3245
- * data/alexandria/glade/preferences_dialog.glade,
3245
+ * data/alexandria/glade/preferences_dialog.glade,
3246
3246
  lib/alexandria/ui/preferences_dialog.rb:
3247
3247
 
3248
3248
  - Removed the network proxy tab ;
data/INSTALL.md CHANGED
@@ -23,12 +23,10 @@ You should have GTK+ 3, and use Ruby-GNOME2 `~> 3.1.0`.
23
23
  is required for the internationalisation of the user interface.
24
24
  Requires version `~> 3.1`.
25
25
 
26
- ### Hpricot
26
+ ### Nokogiri
27
27
 
28
- Alexandria uses [hpricot](https://github.com/hpricot/hpricot) to
29
- parse the HTML from web pages for providers such as Siciliano.
30
- It is also used to parse the XML for the Amazon web
31
- service.
28
+ Alexandria uses [nokogiri](https://nokogiri.org/) to parse the HTML from web
29
+ pages for web-based providers.
32
30
 
33
31
  ## HTMLEntities
34
32
 
data/README.md CHANGED
@@ -41,11 +41,6 @@ keep track of books which are on loan.
41
41
 
42
42
  * retrieves and displays book information (sometimes with cover
43
43
  pictures) from several online libraries and bookshops, such as
44
- - Amazon
45
- - Proxis
46
- - AdLibris
47
- - Spanish Ministry of Culture
48
- - Livraria Siciliano
49
44
  - WorldCat
50
45
  - US Library of Congress
51
46
  - British Library
data/Rakefile CHANGED
@@ -15,12 +15,12 @@ require "omfgenerate"
15
15
 
16
16
  require_relative "lib/alexandria/version"
17
17
 
18
- stage_dir = ENV["DESTDIR"] || "tmp"
19
- prefix_dir = ENV["PREFIX"] || "/usr"
18
+ stage_dir = ENV.fetch("DESTDIR", "tmp")
19
+ prefix_dir = ENV.fetch("PREFIX", "/usr")
20
20
 
21
21
  PROJECT = "alexandria"
22
22
  PREFIX = prefix_dir
23
- share_dir = ENV["SHARE"] || "#{PREFIX}/share"
23
+ share_dir = ENV.fetch("SHARE", "#{PREFIX}/share")
24
24
  SHARE = share_dir
25
25
 
26
26
  GettextGenerateTask.new(PROJECT) do |g|
@@ -30,25 +30,25 @@ end
30
30
 
31
31
  OmfGenerateTask.new(PROJECT) do |o|
32
32
  o.gnome_helpfiles_dir = "#{SHARE}/gnome/help"
33
- o.generate_omf("data/omf/alexandria", "share/omf/alexandria/*.in")
33
+ o.generate_omf("share/omf/alexandria", "share/omf/alexandria/*.in")
34
34
  end
35
35
 
36
- SHARE_FILE_GLOBS = ["data/alexandria/**/*", "data/gnome/**/*.*",
37
- "data/locale/**/*.mo", "data/omf/**/*.omf",
38
- "data/sounds/**/*.ogg"].freeze # , 'data/menu/*']
36
+ SHARE_FILE_GLOBS = ["share/alexandria/**/*", "share/gnome/**/*.*",
37
+ "share/locale/**/*.mo", "share/omf/**/*.omf",
38
+ "share/sounds/**/*.ogg"].freeze # , 'share/menu/*']
39
39
 
40
- ICON_FILE_GLOBS = ["data/app-icon/**/*.png",
41
- "data/app-icon/scalable/*.svg"].freeze
40
+ ICON_FILE_GLOBS = ["share/app-icon/**/*.png",
41
+ "share/app-icon/scalable/*.svg"].freeze
42
42
 
43
- PIXMAP_GLOBS = "data/app-icon/32x32/*.xpm"
43
+ PIXMAP_GLOBS = "share/app-icon/32x32/*.xpm"
44
44
 
45
45
  def install_common(install_task)
46
46
  install_task.install_exe("bin", "bin/*", "#{PREFIX}/bin")
47
47
  install_task.install("lib", "lib/**/*.rb", install_task.rubylib)
48
48
 
49
- install_task.install("data", SHARE_FILE_GLOBS, SHARE)
49
+ install_task.install("share", SHARE_FILE_GLOBS, SHARE)
50
50
  install_task.install_icons(ICON_FILE_GLOBS, "#{SHARE}/icons")
51
- install_task.install("data/app-icon/32x32", PIXMAP_GLOBS, "#{SHARE}/pixmaps")
51
+ install_task.install("share/app-icon/32x32", PIXMAP_GLOBS, "#{SHARE}/pixmaps")
52
52
 
53
53
  install_task.install("", "schemas/alexandria.schemas", "#{SHARE}/gconf")
54
54
  install_task.install("", "alexandria.desktop", "#{SHARE}/applications")
@@ -123,7 +123,7 @@ file "lib/alexandria/default_preferences.rb" => ["Rakefile", SCHEMA_PATH] do |f|
123
123
  require "rexml/document"
124
124
  generated_lines = []
125
125
 
126
- doc = REXML::Document.new(IO.read(SCHEMA_PATH))
126
+ doc = REXML::Document.new(File.read(SCHEMA_PATH))
127
127
  doc.elements.each("gconfschemafile/schemalist/schema") do |element|
128
128
  default = element.elements["default"].text
129
129
 
@@ -202,7 +202,7 @@ Rake::PackageTask.new(PROJECT, Alexandria::DISPLAY_VERSION) do |p|
202
202
  "Rakefile", "util/**/*",
203
203
  "TODO.md", "alexandria.desktop",
204
204
  "alexandria.desktop.in",
205
- "bin/**/*", "data/**/*", "misc/**/*",
205
+ "bin/**/*", "share/**/*", "misc/**/*",
206
206
  "doc/**/*", "lib/**/*", "po/**/*",
207
207
  "schemas/**/*", "spec/**/*")
208
208
  end