alexandria-book-collection-manager 0.7.5 → 0.7.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (173) hide show
  1. checksums.yaml +4 -4
  2. data/.github/dependabot.yml +9 -0
  3. data/.github/workflows/ruby.yml +72 -0
  4. data/.gitignore +4 -1
  5. data/.rubocop.yml +65 -30
  6. data/.rubocop_todo.yml +49 -165
  7. data/.simplecov +5 -2
  8. data/CHANGELOG.md +64 -0
  9. data/ChangeLog.0 +19 -19
  10. data/INSTALL.md +26 -16
  11. data/README.md +31 -35
  12. data/Rakefile +18 -16
  13. data/alexandria-book-collection-manager.gemspec +35 -29
  14. data/doc/FAQ +2 -2
  15. data/doc/dependency_decisions.yml +22 -3
  16. data/lib/alexandria/about.rb +1 -1
  17. data/lib/alexandria/book_providers/bl_provider.rb +88 -0
  18. data/lib/alexandria/book_providers/douban.rb +2 -2
  19. data/lib/alexandria/book_providers/loc_provider.rb +38 -0
  20. data/lib/alexandria/book_providers/pseudomarc.rb +61 -71
  21. data/lib/alexandria/book_providers/sbn_provider.rb +108 -0
  22. data/lib/alexandria/book_providers/{thalia.rb → thalia_provider.rb} +37 -74
  23. data/lib/alexandria/book_providers/web.rb +2 -2
  24. data/lib/alexandria/book_providers/worldcat.rb +34 -38
  25. data/lib/alexandria/book_providers/z3950_provider.rb +199 -0
  26. data/lib/alexandria/book_providers.rb +48 -65
  27. data/lib/alexandria/default_preferences.rb +2 -1
  28. data/lib/alexandria/execution_queue.rb +13 -12
  29. data/lib/alexandria/export_library.rb +21 -22
  30. data/lib/alexandria/image_fetcher.rb +25 -0
  31. data/lib/alexandria/import_library.rb +46 -70
  32. data/lib/alexandria/import_library_csv.rb +16 -16
  33. data/lib/alexandria/library_sort_order.rb +3 -1
  34. data/lib/alexandria/library_store.rb +19 -20
  35. data/lib/alexandria/logging.rb +5 -9
  36. data/lib/alexandria/models/book.rb +15 -2
  37. data/lib/alexandria/models/library.rb +31 -35
  38. data/lib/alexandria/net.rb +1 -2
  39. data/lib/alexandria/preferences.rb +27 -33
  40. data/lib/alexandria/scanners/cue_cat.rb +6 -6
  41. data/lib/alexandria/scanners/keyboard.rb +1 -1
  42. data/lib/alexandria/scanners.rb +2 -2
  43. data/lib/alexandria/smart_library.rb +22 -26
  44. data/lib/alexandria/ui/about_dialog.rb +1 -1
  45. data/lib/alexandria/ui/acquire_dialog.rb +15 -19
  46. data/lib/alexandria/ui/alert_dialog.rb +36 -19
  47. data/lib/alexandria/ui/bad_isbns_dialog.rb +13 -9
  48. data/lib/alexandria/ui/barcode_animation.rb +6 -6
  49. data/lib/alexandria/ui/book_properties_dialog.rb +2 -3
  50. data/lib/alexandria/ui/book_properties_dialog_base.rb +35 -137
  51. data/lib/alexandria/ui/calendar_popup.rb +58 -0
  52. data/lib/alexandria/ui/callbacks.rb +144 -123
  53. data/lib/alexandria/ui/completion_models.rb +2 -6
  54. data/lib/alexandria/ui/confirm_erase_dialog.rb +1 -1
  55. data/lib/alexandria/ui/conflict_while_copying_dialog.rb +2 -2
  56. data/lib/alexandria/ui/error_dialog.rb +1 -1
  57. data/lib/alexandria/ui/export_dialog.rb +19 -18
  58. data/lib/alexandria/ui/icons.rb +34 -40
  59. data/lib/alexandria/ui/iconview_tooltips.rb +40 -53
  60. data/lib/alexandria/ui/import_dialog.rb +49 -48
  61. data/lib/alexandria/ui/init.rb +14 -12
  62. data/lib/alexandria/ui/keep_bad_isbn_dialog.rb +2 -2
  63. data/lib/alexandria/ui/libraries_combo.rb +10 -9
  64. data/lib/alexandria/ui/listview.rb +6 -7
  65. data/lib/alexandria/ui/main_app.rb +2 -2
  66. data/lib/alexandria/ui/multi_drag_treeview.rb +5 -7
  67. data/lib/alexandria/ui/new_book_dialog.rb +63 -65
  68. data/lib/alexandria/ui/new_book_dialog_manual.rb +1 -1
  69. data/lib/alexandria/ui/new_provider_dialog.rb +12 -11
  70. data/lib/alexandria/ui/new_smart_library_dialog.rb +39 -27
  71. data/lib/alexandria/ui/preferences_dialog.rb +25 -84
  72. data/lib/alexandria/ui/provider_preferences_base_dialog.rb +10 -6
  73. data/lib/alexandria/ui/provider_preferences_dialog.rb +5 -5
  74. data/lib/alexandria/ui/really_delete_dialog.rb +2 -2
  75. data/lib/alexandria/ui/sidepane_manager.rb +38 -38
  76. data/lib/alexandria/ui/skip_entry_dialog.rb +3 -2
  77. data/lib/alexandria/ui/smart_library_properties_dialog.rb +35 -36
  78. data/lib/alexandria/ui/smart_library_properties_dialog_base.rb +61 -244
  79. data/lib/alexandria/ui/smart_library_rule_box.rb +119 -0
  80. data/lib/alexandria/ui/sound.rb +4 -6
  81. data/lib/alexandria/ui/ui_manager.rb +80 -83
  82. data/lib/alexandria/ui.rb +7 -7
  83. data/lib/alexandria/version.rb +2 -2
  84. data/lib/alexandria/web_themes.rb +15 -15
  85. data/lib/alexandria.rb +2 -2
  86. data/po/cs.po +947 -865
  87. data/po/cy.po +913 -864
  88. data/po/de.po +961 -865
  89. data/po/el.po +956 -861
  90. data/po/es.po +952 -857
  91. data/po/fr.po +950 -865
  92. data/po/ga.po +866 -819
  93. data/po/gl.po +946 -861
  94. data/po/it.po +945 -858
  95. data/po/ja.po +921 -836
  96. data/po/mk.po +953 -858
  97. data/po/nb.po +932 -847
  98. data/po/nl.po +955 -849
  99. data/po/pl.po +999 -963
  100. data/po/pt.po +946 -850
  101. data/po/pt_BR.po +944 -859
  102. data/po/ru.po +959 -868
  103. data/po/sk.po +950 -863
  104. data/po/sv.po +944 -859
  105. data/po/uk.po +925 -846
  106. data/po/zh_TW.po +926 -841
  107. data/schemas/alexandria.schemas +1 -1
  108. data/share/alexandria/glade/main_app__builder.glade +6 -21
  109. data/share/gnome/help/alexandria/C/adding-books.xml +3 -4
  110. data/share/gnome/help/alexandria/C/introduction.xml +0 -16
  111. data/share/gnome/help/alexandria/C/searching.xml +1 -4
  112. data/share/gnome/help/alexandria/C/settings.xml +0 -30
  113. data/share/gnome/help/alexandria/C/smart-libraries.xml +2 -2
  114. data/share/gnome/help/alexandria/C/working-with-libraries.xml +1 -1
  115. data/share/gnome/help/alexandria/fr/alexandria.xml +5 -160
  116. data/share/gnome/help/alexandria/ja/adding-books.xml +1 -1
  117. data/share/gnome/help/alexandria/ja/introduction.xml +0 -15
  118. data/share/gnome/help/alexandria/ja/searching.xml +3 -7
  119. data/share/gnome/help/alexandria/ja/settings.xml +0 -27
  120. data/share/gnome/help/alexandria/ja/smart-libraries.xml +1 -1
  121. data/spec/alexandria/book_providers/bl_provider_spec.rb +13 -0
  122. data/spec/alexandria/book_providers/loc_provider_spec.rb +17 -0
  123. data/spec/alexandria/book_providers/sbn_provider_spec.rb +13 -0
  124. data/spec/alexandria/book_providers/thalia_provider_spec.rb +119 -0
  125. data/spec/alexandria/book_providers/world_cat_provider_spec.rb +160 -0
  126. data/spec/alexandria/book_providers_spec.rb +0 -154
  127. data/spec/alexandria/console_spec.rb +0 -5
  128. data/spec/alexandria/export_library_spec.rb +27 -38
  129. data/spec/alexandria/library_spec.rb +76 -46
  130. data/spec/alexandria/preferences_spec.rb +29 -3
  131. data/spec/alexandria/scanners/cue_cat_spec.rb +1 -1
  132. data/spec/alexandria/ui/about_dialog_spec.rb +1 -1
  133. data/spec/alexandria/ui/acquire_dialog_spec.rb +1 -1
  134. data/spec/alexandria/ui/alert_dialog_spec.rb +1 -1
  135. data/spec/alexandria/ui/bad_isbns_dialog_spec.rb +1 -1
  136. data/spec/alexandria/ui/book_properties_dialog_spec.rb +47 -5
  137. data/spec/alexandria/ui/confirm_erase_dialog_spec.rb +1 -1
  138. data/spec/alexandria/ui/conflict_while_copying_dialog_spec.rb +1 -1
  139. data/spec/alexandria/ui/error_dialog_spec.rb +1 -1
  140. data/spec/alexandria/ui/export_dialog_spec.rb +25 -4
  141. data/spec/alexandria/ui/icons_spec.rb +26 -0
  142. data/spec/alexandria/ui/iconview_spec.rb +1 -1
  143. data/spec/alexandria/ui/import_dialog_spec.rb +35 -3
  144. data/spec/alexandria/ui/keep_bad_isbn_dialog_spec.rb +1 -1
  145. data/spec/alexandria/ui/main_app_spec.rb +1 -1
  146. data/spec/alexandria/ui/new_book_dialog_manual_spec.rb +39 -3
  147. data/spec/alexandria/ui/new_provider_dialog_spec.rb +19 -3
  148. data/spec/alexandria/ui/new_smart_library_dialog_spec.rb +28 -3
  149. data/spec/alexandria/ui/preferences_dialog_spec.rb +2 -2
  150. data/spec/alexandria/ui/provider_preferences_dialog_spec.rb +23 -8
  151. data/spec/alexandria/ui/really_delete_dialog_spec.rb +1 -1
  152. data/spec/alexandria/ui/sidepane_manager_spec.rb +2 -2
  153. data/spec/alexandria/ui/skip_entry_dialog_spec.rb +1 -1
  154. data/spec/alexandria/ui/smart_library_properties_dialog_spec.rb +37 -6
  155. data/spec/alexandria/ui/ui_manager_spec.rb +116 -2
  156. data/spec/data/libraries/0.6.2/My Library/9780571147168.yaml +2 -0
  157. data/spec/end_to_end/basic_run_spec.rb +3 -8
  158. data/spec/fixtures/cover.jpg +0 -0
  159. data/spec/spec_helper.rb +47 -3
  160. data/tasks/spec.rake +3 -5
  161. data/util/rake/fileinstall.rb +16 -15
  162. data/util/rake/omfgenerate.rb +1 -1
  163. metadata +141 -52
  164. data/.travis.yml +0 -39
  165. data/lib/alexandria/book_providers/adlibris.rb +0 -196
  166. data/lib/alexandria/book_providers/amazon_aws.rb +0 -252
  167. data/lib/alexandria/book_providers/amazon_ecs_util.rb +0 -388
  168. data/lib/alexandria/book_providers/barnes_and_noble.rb +0 -209
  169. data/lib/alexandria/book_providers/proxis.rb +0 -175
  170. data/lib/alexandria/book_providers/siciliano.rb +0 -257
  171. data/lib/alexandria/book_providers/z3950.rb +0 -415
  172. data/spec/alexandria/ui/ui_utilities_spec.rb +0 -62
  173. data/spec/alexandria/utilities_spec.rb +0 -52
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 41c8eead00b7524b5b74feaa6ac01f063faaac747b83fccad928afa9d8b28b58
4
- data.tar.gz: 10fd8fa88a3deab629b885c31afae79984c5c706c5ae0bab4a41c7ddd35bf12a
3
+ metadata.gz: 680cc4d6ee5efa35b819f163452593c352c9323efcd06baad69458e46ac16dfc
4
+ data.tar.gz: a1153041ada7d8641d84d5b118209c05247d9651bcddc5f92164745f62f7289c
5
5
  SHA512:
6
- metadata.gz: 0710b1de59aadd9a781760b23b329f4369d42dbc4c77f1dc1f6fee5643a928cccb113390595ad675b766c865f4a8651ae290e1665bed32fb6af9b501d2a2bdec
7
- data.tar.gz: b8f0ec703fd44905365c9d66bb28ddb5b4b8e46f3bd26ad9762d99e2e7f66e7ab4634314ec4a06890e0a28fc0cbe752dde704bf03be9371bbc73c5931eb8a605
6
+ metadata.gz: c7b860e3c6726fcda6877d44a84d88a62daebdc768a4d4acc6756f2a712257b1eebc783a9a1f7d3ad81219c85f2b4c4a4a84d6e8cc4126bb6847109fa9da7020
7
+ data.tar.gz: 99e777a212dcad283f0e9722b2836b41c51442cb6153b5f76a0cd03ec87977733112bffc73899ca1c8081e32f68da50bace883b5c7eb0410174b8a0e05e2a6fe
@@ -0,0 +1,9 @@
1
+ # Documentation for all configuration options:
2
+ # https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
3
+
4
+ version: 2
5
+ updates:
6
+ - package-ecosystem: "bundler"
7
+ directory: "/"
8
+ schedule:
9
+ interval: "daily"
@@ -0,0 +1,72 @@
1
+ # This workflow will download a prebuilt Ruby version, install dependencies and
2
+ # run tests with Rake
3
+ # For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby
4
+
5
+ name: CI
6
+
7
+ on:
8
+ push:
9
+ branches: [ master ]
10
+ pull_request:
11
+ branches: [ master ]
12
+ schedule:
13
+ - cron: '16 4 12 * *'
14
+
15
+ jobs:
16
+ test:
17
+
18
+ runs-on: ubuntu-latest
19
+
20
+ strategy:
21
+ matrix:
22
+ ruby: [2.6, 2.7, "3.0", "3.1"]
23
+
24
+ steps:
25
+ - uses: actions/checkout@v2
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
40
+
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
50
+
51
+ rubocop:
52
+
53
+ runs-on: ubuntu-latest
54
+
55
+ steps:
56
+ - uses: actions/checkout@v2
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/.gitignore CHANGED
@@ -3,13 +3,16 @@ config.save
3
3
  alexandria.desktop
4
4
  alexandria.desktop.in.h
5
5
  .svn-authors
6
- lib/alexandria/default_preferences.rb
7
6
  Gemfile.lock
8
7
  .yardoc/
9
8
  share/locale/
10
9
  share/omf/alexandria/*.omf
10
+ spec/examples.txt
11
11
  pkg/
12
12
  coverage/
13
13
  tmp/
14
+ po/*.po~
15
+ po/*.mo
16
+ po/*.pot
14
17
  *.gem
15
18
  *.glade~
data/.rubocop.yml CHANGED
@@ -1,14 +1,46 @@
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
11
+ - rubocop-i18n
6
12
 
7
13
  AllCops:
8
14
  Exclude:
9
15
  - 'lib/alexandria/default_preferences.rb'
10
16
  - 'pkg/**/*'
11
- TargetRubyVersion: 2.5
17
+ NewCops: enable
18
+ TargetRubyVersion: 2.6
19
+
20
+ # Choose GetText-style I18n cops
21
+ I18n/GetText:
22
+ Enabled: true
23
+ # Exclude non-user-facing code
24
+ Exclude:
25
+ - Rakefile
26
+ - 'util/**/*'
27
+ - 'spec/**/*'
28
+ I18n/RailsI18n:
29
+ Enabled: false
30
+
31
+ # This code has a lot of pre-existing translations with percent-style
32
+ # formatting. Maybe one day someone will re-do all of them ...
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:
39
+ Enabled: false
40
+
41
+ # Make BeginEndAlignment behavior match EndAlignment
42
+ Layout/BeginEndAlignment:
43
+ EnforcedStyleAlignWith: begin
12
44
 
13
45
  Layout/HashAlignment:
14
46
  EnforcedColonStyle: key
@@ -40,17 +72,18 @@ Layout/SpaceBeforeBlockBraces:
40
72
  Lint/AmbiguousBlockAssociation:
41
73
  Enabled: false
42
74
 
75
+ # Assume the programmer knows precendence rules
76
+ Lint/AmbiguousOperatorPrecedence:
77
+ Enabled: false
78
+
43
79
  # Allow if (foo = get_foo) style
44
80
  Lint/AssignmentInCondition:
45
81
  AllowSafeAssignment: true
46
82
 
47
- # Activate new cops from RuboCop 0.81 and 0.82
48
- Lint/RaiseException:
49
- Enabled: true
50
- Layout/SpaceAroundMethodCallOperator:
51
- Enabled: true
52
- Lint/StructNewOverride:
53
- Enabled: true
83
+ # This cop's reach is too broad
84
+ # See https://github.com/rubocop-hq/rubocop/pull/8480
85
+ Lint/MissingSuper:
86
+ Enabled: false
54
87
 
55
88
  # Blocks in specs can be any size
56
89
  Metrics/BlockLength:
@@ -64,34 +97,38 @@ Naming/AccessorMethodName:
64
97
  Naming/RescuedExceptionsVariableName:
65
98
  PreferredName: ex
66
99
 
100
+ Performance/EndWith:
101
+ AutoCorrect: true
102
+
103
+ Performance/StartWith:
104
+ AutoCorrect: true
105
+
106
+ # End-to-end specs do not describe classes
107
+ RSpec/DescribeClass:
108
+ Exclude:
109
+ - 'spec/end_to_end/**/*_spec.rb'
110
+
111
+ RSpec/ExampleLength:
112
+ Max: 8
113
+ Exclude:
114
+ - 'spec/end_to_end/**/*_spec.rb'
115
+
67
116
  # Allow and/or for control flow only
68
117
  Style/AndOr:
69
118
  EnforcedStyle: conditionals
70
119
 
71
- # Activate new cop from RuboCop 0.82
72
- Style/ExponentialNotation:
73
- Enabled: true
74
-
75
120
  # Require at least two dependent lines before suggesting a guard clause
76
121
  Style/GuardClause:
77
122
  MinBodyLength: 2
78
123
 
79
- # Activate new cops from RuboCop 0.80
80
- Style/HashEachMethods:
81
- Enabled: true
82
- Style/HashTransformKeys:
83
- Enabled: true
84
- Style/HashTransformValues:
85
- Enabled: true
124
+ # Sometimes an if statement just looks better than next with a guard clause
125
+ Style/Next:
126
+ Enabled: false
86
127
 
87
128
  # Not all objects that handle #== 0 also handle #zero?
88
129
  Style/NumericPredicate:
89
130
  Enabled: false
90
131
 
91
- # Sometimes an if statement just looks better than next with a guard clause
92
- Style/Next:
93
- Enabled: false
94
-
95
132
  # Use older RuboCop default
96
133
  Style/PercentLiteralDelimiters:
97
134
  PreferredDelimiters:
@@ -105,6 +142,10 @@ Style/RedundantReturn:
105
142
  Style/SingleLineBlockParams:
106
143
  Enabled: false
107
144
 
145
+ # Allow all ways to construct strings for now
146
+ Style/StringConcatenation:
147
+ Enabled: false
148
+
108
149
  # Do not commit to use of interpolation
109
150
  Style/StringLiterals:
110
151
  EnforcedStyle: double_quotes
@@ -113,9 +154,7 @@ Style/StringLiterals:
113
154
  Style/SymbolArray:
114
155
  EnforcedStyle: brackets
115
156
 
116
- # Project-specific configuration goes here.
117
-
118
- # Accessors are only trivial if they match the ivar name.
157
+ # Accessors are only trivial if they match the ivar name
119
158
  Style/TrivialAccessors:
120
159
  ExactNameMatch: true
121
160
 
@@ -126,7 +165,3 @@ Style/TrailingCommaInArrayLiteral:
126
165
  # Alexandria uses regular arrays
127
166
  Style/WordArray:
128
167
  Enabled: false
129
-
130
- # Not all objects that handle #length also handle #empty?
131
- Style/ZeroLengthPredicate:
132
- Enabled: false
data/.rubocop_todo.yml CHANGED
@@ -1,87 +1,54 @@
1
1
  # This configuration was generated by
2
- # `rubocop --auto-gen-config`
3
- # on 2020-02-22 15:02:18 +0100 using RuboCop version 0.80.0.
2
+ # `rubocop --auto-gen-config --no-offense-counts --no-auto-gen-timestamp`
3
+ # using RuboCop version 1.24.1.
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
- # Offense count: 2
10
- Lint/IneffectiveAccessModifier:
9
+ # Configuration parameters: IgnoreLiteralBranches, IgnoreConstantBranches.
10
+ Lint/DuplicateBranch:
11
11
  Exclude:
12
- - 'lib/alexandria/logging.rb'
13
- - 'lib/alexandria/web_themes.rb'
14
-
15
- # Offense count: 1
16
- Lint/ShadowingOuterLocalVariable:
17
- Exclude:
18
- - 'lib/alexandria/ui/libraries_combo.rb'
19
-
20
- # Offense count: 1
21
- Lint/UriEscapeUnescape:
22
- Exclude:
23
- - 'lib/alexandria/book_providers/amazon_ecs_util.rb'
24
-
25
- # Offense count: 2
26
- # Configuration parameters: ContextCreatingMethods, MethodCreatingMethods.
27
- Lint/UselessAccessModifier:
28
- Exclude:
29
- - 'lib/alexandria/logging.rb'
12
+ - 'lib/alexandria/book_providers/sbn_provider.rb'
13
+ - 'util/rake/fileinstall.rb'
30
14
 
31
- # Offense count: 160
15
+ # Configuration parameters: IgnoredMethods, CountRepeatedAttributes.
32
16
  Metrics/AbcSize:
33
- Max: 159
17
+ Max: 111
34
18
 
35
- # Offense count: 21
36
- # Configuration parameters: CountComments, ExcludedMethods.
37
- # ExcludedMethods: refine
19
+ # Configuration parameters: CountComments, CountAsOne, ExcludedMethods, IgnoredMethods.
20
+ # IgnoredMethods: refine
38
21
  Metrics/BlockLength:
39
- Max: 67
22
+ Max: 64
40
23
 
41
- # Offense count: 8
42
24
  # Configuration parameters: CountBlocks.
43
25
  Metrics/BlockNesting:
44
26
  Max: 5
45
27
 
46
- # Offense count: 31
47
- # Configuration parameters: CountComments.
28
+ # Configuration parameters: CountComments, CountAsOne.
48
29
  Metrics/ClassLength:
49
- Max: 994
30
+ Max: 991
50
31
 
51
- # Offense count: 63
32
+ # Configuration parameters: IgnoredMethods.
52
33
  Metrics/CyclomaticComplexity:
53
34
  Max: 22
54
35
 
55
- # Offense count: 214
56
- # Configuration parameters: CountComments, ExcludedMethods.
36
+ # Configuration parameters: CountComments, CountAsOne, ExcludedMethods, IgnoredMethods.
57
37
  Metrics/MethodLength:
58
- Max: 113
38
+ Max: 98
59
39
 
60
- # Offense count: 1
61
- # Configuration parameters: CountComments.
40
+ # Configuration parameters: CountComments, CountAsOne.
62
41
  Metrics/ModuleLength:
63
- Max: 346
42
+ Max: 361
64
43
 
65
- # Offense count: 10
66
- # Configuration parameters: CountKeywordArgs.
44
+ # Configuration parameters: CountKeywordArgs, MaxOptionalParameters.
67
45
  Metrics/ParameterLists:
68
46
  Max: 7
69
47
 
70
- # Offense count: 61
48
+ # Configuration parameters: IgnoredMethods.
71
49
  Metrics/PerceivedComplexity:
72
- Max: 23
50
+ Max: 27
73
51
 
74
- # Offense count: 8
75
- Naming/BinaryOperatorParameterName:
76
- Exclude:
77
- - 'lib/alexandria/book_providers.rb'
78
- - 'lib/alexandria/book_providers/amazon_ecs_util.rb'
79
- - 'lib/alexandria/models/book.rb'
80
- - 'lib/alexandria/models/library.rb'
81
- - 'lib/alexandria/smart_library.rb'
82
- - 'lib/alexandria/ui/multi_drag_treeview.rb'
83
-
84
- # Offense count: 13
85
52
  # Configuration parameters: ForbiddenDelimiters.
86
53
  # ForbiddenDelimiters: (?-mix:(^|\s)(EO[A-Z]{1}|END)(\s|$))
87
54
  Naming/HeredocDelimiterNaming:
@@ -91,27 +58,6 @@ Naming/HeredocDelimiterNaming:
91
58
  - 'lib/alexandria/export_library.rb'
92
59
  - 'lib/alexandria/ui/about_dialog.rb'
93
60
 
94
- # Offense count: 2
95
- # Configuration parameters: EnforcedStyleForLeadingUnderscores.
96
- # SupportedStylesForLeadingUnderscores: disallowed, required, optional
97
- Naming/MemoizedInstanceVariableName:
98
- Exclude:
99
- - 'lib/alexandria/logging.rb'
100
-
101
- # Offense count: 10
102
- # Configuration parameters: MinNameLength, AllowNamesEndingInNumbers, AllowedNames, ForbiddenNames.
103
- # AllowedNames: io, id, to, by, on, in, at, ip, db, os, pp
104
- Naming/MethodParameterName:
105
- Exclude:
106
- - 'lib/alexandria/book_providers/amazon_ecs_util.rb'
107
- - 'lib/alexandria/book_providers/proxis.rb'
108
- - 'lib/alexandria/book_providers/pseudomarc.rb'
109
- - 'lib/alexandria/smart_library.rb'
110
- - 'lib/alexandria/ui/callbacks.rb'
111
- - 'lib/alexandria/ui/init.rb'
112
- - 'util/rake/fileinstall.rb'
113
-
114
- # Offense count: 4
115
61
  # Configuration parameters: NamePrefix, ForbiddenPrefixes, AllowedMethods, MethodDefinitionMacros.
116
62
  # NamePrefix: is_, has_, have_
117
63
  # ForbiddenPrefixes: is_, has_, have_
@@ -119,61 +65,20 @@ Naming/MethodParameterName:
119
65
  # MethodDefinitionMacros: define_method, define_singleton_method
120
66
  Naming/PredicateName:
121
67
  Exclude:
122
- - 'spec/**/*'
123
- - 'lib/alexandria/book_providers/amazon_ecs_util.rb'
124
68
  - 'lib/alexandria/ui/smart_library_properties_dialog_base.rb'
125
69
  - 'lib/alexandria/web_themes.rb'
126
70
 
127
- # Offense count: 1
128
- RSpec/DescribeClass:
129
- Exclude:
130
- - 'spec/end_to_end/basic_run_spec.rb'
131
-
132
- # Offense count: 17
133
- # Configuration parameters: Max.
134
- RSpec/ExampleLength:
135
- Exclude:
136
- - 'spec/alexandria/book_providers_spec.rb'
137
- - 'spec/alexandria/book_spec.rb'
138
- - 'spec/alexandria/console_spec.rb'
139
- - 'spec/alexandria/export_library_spec.rb'
140
- - 'spec/alexandria/library_spec.rb'
141
- - 'spec/alexandria/library_store_spec.rb'
142
- - 'spec/alexandria/ui/provider_preferences_dialog_spec.rb'
143
- - 'spec/alexandria/ui/smart_library_properties_dialog_spec.rb'
144
- - 'spec/end_to_end/basic_run_spec.rb'
145
-
146
- # Offense count: 1
147
- RSpec/ExpectInHook:
148
- Exclude:
149
- - 'spec/alexandria/export_library_spec.rb'
150
-
151
- # Offense count: 3
152
- # Configuration parameters: CustomTransform, IgnoreMethods.
71
+ # Configuration parameters: Include, CustomTransform, IgnoreMethods, SpecSuffixOnly.
72
+ # Include: **/*_spec*rb*, **/spec/**/*
153
73
  RSpec/FilePath:
154
74
  Exclude:
75
+ - 'spec/alexandria/console_spec.rb'
155
76
  - 'spec/alexandria/ui/iconview_spec.rb'
156
- - 'spec/alexandria/ui/sidepane_manager_spec.rb'
157
77
  - 'spec/alexandria/ui/sound_spec.rb'
158
78
 
159
- # Offense count: 11
160
- # Configuration parameters: AssignmentOnly.
161
- RSpec/InstanceVariable:
162
- Exclude:
163
- - 'spec/alexandria/export_library_spec.rb'
164
-
165
- # Offense count: 2
166
- RSpec/MultipleDescribes:
167
- Exclude:
168
- - 'spec/alexandria/ui/ui_utilities_spec.rb'
169
- - 'spec/alexandria/utilities_spec.rb'
170
-
171
- # Offense count: 13
172
- # Configuration parameters: AggregateFailuresByDefault.
173
79
  RSpec/MultipleExpectations:
174
- Max: 11
80
+ Max: 7
175
81
 
176
- # Offense count: 34
177
82
  # Cop supports --auto-correct.
178
83
  # Configuration parameters: Strict, EnforcedStyle, AllowedExplicitMatchers.
179
84
  # SupportedStyles: inflected, explicit
@@ -184,21 +89,26 @@ RSpec/PredicateMatcher:
184
89
  - 'spec/alexandria/library_store_spec.rb'
185
90
  - 'spec/alexandria/scanners/cue_cat_spec.rb'
186
91
 
187
- # Offense count: 8
188
92
  # Cop supports --auto-correct.
189
- # Configuration parameters: AutoCorrect, EnforcedStyle.
93
+ Rake/Desc:
94
+ Exclude:
95
+ - 'Rakefile'
96
+ - 'tasks/spec.rake'
97
+
98
+ Rake/DuplicateTask:
99
+ Exclude:
100
+ - 'Rakefile'
101
+
102
+ # Cop supports --auto-correct.
103
+ # Configuration parameters: EnforcedStyle.
190
104
  # SupportedStyles: nested, compact
191
105
  Style/ClassAndModuleChildren:
192
106
  Exclude:
193
- - 'lib/alexandria/ui/icons.rb'
194
- - 'lib/alexandria/ui/import_dialog.rb'
195
107
  - 'lib/alexandria/ui/init.rb'
196
108
  - 'lib/alexandria/ui/provider_preferences_base_dialog.rb'
197
109
 
198
- # Offense count: 17
199
110
  Style/ClassVars:
200
111
  Exclude:
201
- - 'lib/alexandria/book_providers/amazon_ecs_util.rb'
202
112
  - 'lib/alexandria/execution_queue.rb'
203
113
  - 'lib/alexandria/logging.rb'
204
114
  - 'lib/alexandria/models/library.rb'
@@ -207,52 +117,26 @@ Style/ClassVars:
207
117
  - 'lib/alexandria/ui/book_properties_dialog_base.rb'
208
118
  - 'lib/alexandria/ui/new_book_dialog.rb'
209
119
 
210
- # Offense count: 11
211
- Style/CommentedKeyword:
212
- Exclude:
213
- - 'lib/alexandria/book_providers.rb'
214
- - 'lib/alexandria/book_providers/barnes_and_noble.rb'
215
- - 'lib/alexandria/book_providers/worldcat.rb'
216
- - 'lib/alexandria/ui/new_book_dialog.rb'
217
- - 'util/rake/fileinstall.rb'
218
-
219
- # Offense count: 112
120
+ # Configuration parameters: AllowedConstants.
220
121
  Style/Documentation:
221
122
  Enabled: false
222
123
 
223
- # Offense count: 2
224
- Style/DoubleNegation:
225
- Exclude:
226
- - 'lib/alexandria/ui/import_dialog.rb'
227
- - 'lib/alexandria/ui/listview.rb'
228
-
229
- # Offense count: 10
230
- # Configuration parameters: EnforcedStyle.
124
+ # Configuration parameters: EnforcedStyle, MaxUnannotatedPlaceholdersAllowed, IgnoredMethods.
231
125
  # SupportedStyles: annotated, template, unannotated
232
126
  Style/FormatStringToken:
233
127
  Exclude:
234
- - 'lib/alexandria/ui/acquire_dialog.rb'
235
- - 'lib/alexandria/ui/dndable.rb'
236
- - 'lib/alexandria/ui/listview.rb'
237
128
  - 'lib/alexandria/ui/new_book_dialog.rb'
238
129
 
239
- # Offense count: 27
240
- # Configuration parameters: MinBodyLength.
241
- Style/GuardClause:
242
- Enabled: false
243
-
244
- # Offense count: 2
245
- Style/IdenticalConditionalBranches:
246
- Exclude:
247
- - 'lib/alexandria/book_providers/amazon_aws.rb'
248
-
249
- # Offense count: 1
250
- Style/MethodMissingSuper:
251
- Exclude:
252
- - 'lib/alexandria/preferences.rb'
253
-
254
- # Offense count: 2
255
- Style/MissingRespondToMissing:
130
+ # Configuration parameters: AllowedMethods.
131
+ # AllowedMethods: respond_to_missing?
132
+ Style/OptionalBooleanParameter:
256
133
  Exclude:
257
134
  - 'lib/alexandria/book_providers.rb'
258
- - 'lib/alexandria/preferences.rb'
135
+ - 'lib/alexandria/book_providers/worldcat.rb'
136
+ - 'lib/alexandria/console.rb'
137
+ - 'lib/alexandria/execution_queue.rb'
138
+ - 'lib/alexandria/export_format.rb'
139
+ - 'lib/alexandria/library_sort_order.rb'
140
+ - 'lib/alexandria/models/library.rb'
141
+ - 'lib/alexandria/ui/ui_manager.rb'
142
+ - 'util/rake/fileinstall.rb'
data/.simplecov CHANGED
@@ -1,4 +1,7 @@
1
+ # frozen_string_literal: true
2
+
1
3
  SimpleCov.start do
2
- track_files 'lib/**/*.rb'
3
- add_filter '/spec/'
4
+ add_group "Main", "lib"
5
+ add_group "Specs", "spec"
6
+ enable_coverage :branch
4
7
  end
data/CHANGELOG.md CHANGED
@@ -1,5 +1,53 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.7.9 / 2022-02-04
4
+
5
+ * Drop support for Ruby 2.5
6
+ * Support up to Ruby 3.1
7
+ * Fix crash when renaming a Library ([#112] by [mvz])
8
+ * Remove broken book data providers: Siciliano, AdLibris, Proxis and Barnes and
9
+ Noble ([#115] by [mvz])
10
+ * Remove Amazon provider ([#118] by [mvz])
11
+ * Remove references to obsolete MCE (Spanish Ministry of Culture) provider from
12
+ documentation ([#119] by [mvz])
13
+ * Use nokogiri instead of hpricot, which is no longer being maintained ([#120]
14
+ by [mvz])
15
+ * Filter out Library objects when loading Book from yaml ([#133] by [mvz])
16
+ * Fix selection update when added book does not match current filter ([#134] by
17
+ [mvz])
18
+ * Recognize negative integers in GConf settings (#136] by [mvz])
19
+ * Fix source for shared items to install ([#139] by [mvz])
20
+ * Various dependency updates
21
+
22
+ ## 0.7.8 / 2020-11-29
23
+
24
+ * Fix ThaliaProvider
25
+ * Avoid warnings for calendar popup
26
+ * Make Rename menu item work
27
+ * Fix crash when changing covers
28
+ * Make alerts show alert details if available
29
+
30
+ ## 0.7.7 / 2020-11-15
31
+
32
+ * Update Polish translation ([#88] by [Piotr Drąg][piotrdrag])
33
+ * Fix hiding of progress bar of import dialog
34
+ * Fix calendar popups in Smart Library and Book Properties dialogs
35
+ * Fix crashes when activating Export and Import menu items
36
+
37
+ ## 0.7.6 / 2020-11-01
38
+
39
+ * Make more strings translatable with help from rubocop-i18n
40
+ * Code quality and testing infrastructure improvements
41
+ * Update Polish translation ([#51] and [#64], by [Piotr Drąg][piotrdrag])
42
+ * Update Dutch translation
43
+ * Make several dialogs that stopped appearing appear again
44
+ * Remove ability to enable and disable providers through a pop-up menu
45
+ * Fix New Library functionality
46
+ * Update dependencies on gtk3, gstreamer, and psych
47
+ * Fix issues in preferences, smart library dialog, and book selection
48
+ * Improve installation instructions
49
+ * Improve README ([#83] by [Happy][HappyFacade])
50
+
3
51
  ## 0.7.5 / 2020-05-11
4
52
 
5
53
  * Avoid crash when opening Import dialog
@@ -82,7 +130,23 @@
82
130
 
83
131
  <!-- contributors -->
84
132
  [jrmhaig]: https://github.com/jrmhaig
133
+ [mvz]: https://github.com/mvz
134
+ [piotrdrag]: https://github.com/piotrdrag
135
+ [HappyFacade]: https://github.com/HappyFacade
85
136
 
86
137
  <!-- issues and pull requests -->
138
+ [#139]: https://github.com/mvz/alexandria-book-collection-manager/pull/139
139
+ [#136]: https://github.com/mvz/alexandria-book-collection-manager/pull/136
140
+ [#134]: https://github.com/mvz/alexandria-book-collection-manager/pull/134
141
+ [#133]: https://github.com/mvz/alexandria-book-collection-manager/pull/133
142
+ [#120]: https://github.com/mvz/alexandria-book-collection-manager/pull/120
143
+ [#119]: https://github.com/mvz/alexandria-book-collection-manager/pull/119
144
+ [#118]: https://github.com/mvz/alexandria-book-collection-manager/pull/118
145
+ [#115]: https://github.com/mvz/alexandria-book-collection-manager/pull/115
146
+ [#112]: https://github.com/mvz/alexandria-book-collection-manager/pull/112
147
+ [#88]: https://github.com/mvz/alexandria-book-collection-manager/pull/88
148
+ [#83]: https://github.com/mvz/alexandria-book-collection-manager/pull/83
149
+ [#64]: https://github.com/mvz/alexandria-book-collection-manager/pull/64
150
+ [#51]: https://github.com/mvz/alexandria-book-collection-manager/pull/51
87
151
  [#23]: https://github.com/mvz/alexandria-book-collection-manager/pull/23
88
152
  [#19]: https://github.com/mvz/alexandria-book-collection-manager/issues/19