alexandria-book-collection-manager 0.6.9.pre1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +10 -0
- data/.rubocop.yml +68 -0
- data/.rubocop_todo.yml +200 -0
- data/CHANGELOG.md +23 -0
- data/COPYING +339 -0
- data/ChangeLog.0 +3598 -0
- data/Gemfile +9 -0
- data/INSTALL.rdoc +156 -0
- data/PACKAGING +36 -0
- data/README.md +88 -0
- data/RELEASE_CHECKLIST +18 -0
- data/Rakefile +264 -0
- data/TODO +24 -0
- data/alexandria-book-collection-manager.gemspec +35 -0
- data/alexandria.desktop.in +10 -0
- data/bin/alexandria +82 -0
- data/doc/AUTHORS +60 -0
- data/doc/BUGS +31 -0
- data/doc/FAQ +369 -0
- data/doc/HACKING +19 -0
- data/doc/NEWS +341 -0
- data/doc/alexandria.1 +120 -0
- data/doc/cuecat_support.rdoc +67 -0
- data/lib/alexandria.rb +85 -0
- data/lib/alexandria/about.rb +82 -0
- data/lib/alexandria/book_providers.rb +411 -0
- data/lib/alexandria/book_providers/adlibris.rb +235 -0
- data/lib/alexandria/book_providers/amazon_aws.rb +261 -0
- data/lib/alexandria/book_providers/amazon_ecs_util.rb +405 -0
- data/lib/alexandria/book_providers/barnes_and_noble.rb +229 -0
- data/lib/alexandria/book_providers/bol_it.rb +162 -0
- data/lib/alexandria/book_providers/deastore.rb +277 -0
- data/lib/alexandria/book_providers/douban.rb +135 -0
- data/lib/alexandria/book_providers/ibs_it.rb +149 -0
- data/lib/alexandria/book_providers/mcu.rb +177 -0
- data/lib/alexandria/book_providers/proxis.rb +205 -0
- data/lib/alexandria/book_providers/pseudomarc.rb +185 -0
- data/lib/alexandria/book_providers/renaud.rb +142 -0
- data/lib/alexandria/book_providers/siciliano.rb +271 -0
- data/lib/alexandria/book_providers/thalia.rb +197 -0
- data/lib/alexandria/book_providers/web.rb +59 -0
- data/lib/alexandria/book_providers/webster_it.rb +173 -0
- data/lib/alexandria/book_providers/worldcat.rb +251 -0
- data/lib/alexandria/book_providers/z3950.rb +422 -0
- data/lib/alexandria/config.rb +8 -0
- data/lib/alexandria/console.rb +31 -0
- data/lib/alexandria/execution_queue.rb +96 -0
- data/lib/alexandria/export_library.rb +536 -0
- data/lib/alexandria/import_library.rb +316 -0
- data/lib/alexandria/import_library_csv.rb +270 -0
- data/lib/alexandria/logging.rb +159 -0
- data/lib/alexandria/models/book.rb +72 -0
- data/lib/alexandria/models/library.rb +714 -0
- data/lib/alexandria/net.rb +53 -0
- data/lib/alexandria/preferences.rb +324 -0
- data/lib/alexandria/scanners.rb +42 -0
- data/lib/alexandria/scanners/cuecat.rb +118 -0
- data/lib/alexandria/scanners/keyboard.rb +57 -0
- data/lib/alexandria/smart_library.rb +525 -0
- data/lib/alexandria/ui.rb +53 -0
- data/lib/alexandria/ui/builder_base.rb +43 -0
- data/lib/alexandria/ui/callbacks.rb +389 -0
- data/lib/alexandria/ui/completion_models.rb +228 -0
- data/lib/alexandria/ui/dialogs/about_dialog.rb +59 -0
- data/lib/alexandria/ui/dialogs/acquire_dialog.rb +640 -0
- data/lib/alexandria/ui/dialogs/alert_dialog.rb +68 -0
- data/lib/alexandria/ui/dialogs/bad_isbns_dialog.rb +43 -0
- data/lib/alexandria/ui/dialogs/barcode_animation.rb +159 -0
- data/lib/alexandria/ui/dialogs/book_properties_dialog.rb +210 -0
- data/lib/alexandria/ui/dialogs/book_properties_dialog_base.rb +432 -0
- data/lib/alexandria/ui/dialogs/export_dialog.rb +172 -0
- data/lib/alexandria/ui/dialogs/import_dialog.rb +205 -0
- data/lib/alexandria/ui/dialogs/misc_dialogs.rb +85 -0
- data/lib/alexandria/ui/dialogs/new_book_dialog.rb +639 -0
- data/lib/alexandria/ui/dialogs/new_book_dialog_manual.rb +153 -0
- data/lib/alexandria/ui/dialogs/new_smart_library_dialog.rb +67 -0
- data/lib/alexandria/ui/dialogs/preferences_dialog.rb +587 -0
- data/lib/alexandria/ui/dialogs/smart_library_properties_dialog.rb +56 -0
- data/lib/alexandria/ui/dialogs/smart_library_properties_dialog_base.rb +432 -0
- data/lib/alexandria/ui/dndable.rb +81 -0
- data/lib/alexandria/ui/gtk_thread_help.rb +88 -0
- data/lib/alexandria/ui/icons.rb +100 -0
- data/lib/alexandria/ui/iconview.rb +91 -0
- data/lib/alexandria/ui/iconview_tooltips.rb +162 -0
- data/lib/alexandria/ui/init.rb +93 -0
- data/lib/alexandria/ui/libraries_combo.rb +75 -0
- data/lib/alexandria/ui/listview.rb +310 -0
- data/lib/alexandria/ui/main_app.rb +67 -0
- data/lib/alexandria/ui/multi_drag_treeview.rb +150 -0
- data/lib/alexandria/ui/sidepane.rb +194 -0
- data/lib/alexandria/ui/sound.rb +107 -0
- data/lib/alexandria/ui/ui_manager.rb +1308 -0
- data/lib/alexandria/undo_manager.rb +78 -0
- data/lib/alexandria/utils.rb +30 -0
- data/lib/alexandria/version.rb +24 -0
- data/lib/alexandria/web_themes.rb +75 -0
- data/misc/sounds/README +15 -0
- data/misc/sounds/bad_scan.csd +62 -0
- data/misc/sounds/good_scan.csd +61 -0
- data/misc/sounds/scanning.csd +46 -0
- data/po/ChangeLog +488 -0
- data/po/Makefile +44 -0
- data/po/README +29 -0
- data/po/commit-po +72 -0
- data/po/cs.po +1437 -0
- data/po/cy.po +1521 -0
- data/po/de.po +1400 -0
- data/po/el.po +1379 -0
- data/po/es.po +1376 -0
- data/po/fr.po +1420 -0
- data/po/ga.po +1359 -0
- data/po/gl.po +1397 -0
- data/po/it.po +1406 -0
- data/po/ja.po +1355 -0
- data/po/mk.po +1373 -0
- data/po/nb.po +1386 -0
- data/po/nl.po +1405 -0
- data/po/pl.po +1373 -0
- data/po/pt.po +1398 -0
- data/po/pt_BR.po +1409 -0
- data/po/ru.po +1372 -0
- data/po/sk.po +1380 -0
- data/po/sv.po +1402 -0
- data/po/uk.po +1423 -0
- data/po/zh_TW.po +1394 -0
- data/schemas/alexandria.schemas +300 -0
- data/share/alexandria/glade/acquire_dialog__builder.glade +201 -0
- data/share/alexandria/glade/book_properties_dialog__builder.glade +910 -0
- data/share/alexandria/glade/main_app__builder.glade +229 -0
- data/share/alexandria/glade/new_book_dialog__builder.glade +379 -0
- data/share/alexandria/glade/preferences_dialog__builder.glade +733 -0
- data/share/alexandria/icons/alexandria.png +0 -0
- data/share/alexandria/icons/alexandria_small.png +0 -0
- data/share/alexandria/icons/book.png +0 -0
- data/share/alexandria/icons/book_icon.png +0 -0
- data/share/alexandria/icons/book_small.png +0 -0
- data/share/alexandria/icons/cuecat.png +0 -0
- data/share/alexandria/icons/cuecat_inactive.png +0 -0
- data/share/alexandria/icons/favorite_tag.png +0 -0
- data/share/alexandria/icons/less.png +0 -0
- data/share/alexandria/icons/library.png +0 -0
- data/share/alexandria/icons/library_small.png +0 -0
- data/share/alexandria/icons/lookup.png +0 -0
- data/share/alexandria/icons/more.png +0 -0
- data/share/alexandria/icons/no_cover.png +0 -0
- data/share/alexandria/icons/smart_library.png +0 -0
- data/share/alexandria/icons/smart_library_small.png +0 -0
- data/share/alexandria/icons/star_set.png +0 -0
- data/share/alexandria/icons/star_unset.png +0 -0
- data/share/alexandria/icons/view_as_icons.png +0 -0
- data/share/alexandria/icons/view_as_list.png +0 -0
- data/share/alexandria/ui/menus.xml +91 -0
- data/share/alexandria/ui/popups.xml +91 -0
- data/share/alexandria/web-themes/clean/clean.css +85 -0
- data/share/alexandria/web-themes/clean/preview.jpg +0 -0
- data/share/alexandria/web-themes/list/list.css +105 -0
- data/share/alexandria/web-themes/list/preview.jpg +0 -0
- data/share/app-icon/16x16/alexandria.png +0 -0
- data/share/app-icon/16x16/alexandria.svg +263 -0
- data/share/app-icon/22x22/alexandria.png +0 -0
- data/share/app-icon/22x22/alexandria.svg +465 -0
- data/share/app-icon/24x24/alexandria.png +0 -0
- data/share/app-icon/32x32/alexandria.png +0 -0
- data/share/app-icon/32x32/alexandria.svg +813 -0
- data/share/app-icon/32x32/alexandria.xpm +241 -0
- data/share/app-icon/48x48/alexandria.png +0 -0
- data/share/app-icon/scalable/alexandria.svg +700 -0
- data/share/gnome/help/alexandria/C/about.xml +44 -0
- data/share/gnome/help/alexandria/C/adding-books.xml +339 -0
- data/share/gnome/help/alexandria/C/alexandria.xml +185 -0
- data/share/gnome/help/alexandria/C/bugs.xml +18 -0
- data/share/gnome/help/alexandria/C/editing-book-properties.xml +124 -0
- data/share/gnome/help/alexandria/C/exporting.xml +81 -0
- data/share/gnome/help/alexandria/C/figures/adding_books_acquire_from_scanner_process.png +0 -0
- data/share/gnome/help/alexandria/C/figures/adding_books_add_by_isbn.png +0 -0
- data/share/gnome/help/alexandria/C/figures/adding_books_isbn_import.png +0 -0
- data/share/gnome/help/alexandria/C/figures/adding_books_manual_details.png +0 -0
- data/share/gnome/help/alexandria/C/figures/adding_books_rename_library_after_import.png +0 -0
- data/share/gnome/help/alexandria/C/figures/adding_books_search_results.png +0 -0
- data/share/gnome/help/alexandria/C/figures/editing_book_properties_info.png +0 -0
- data/share/gnome/help/alexandria/C/figures/editing_book_properties_loaning.png +0 -0
- data/share/gnome/help/alexandria/C/figures/exporting_information_html.png +0 -0
- data/share/gnome/help/alexandria/C/figures/getting_started_first_launched.png +0 -0
- data/share/gnome/help/alexandria/C/figures/searching_filtering_views_list_view.png +0 -0
- data/share/gnome/help/alexandria/C/figures/searching_filtering_views_list_view_search.png +0 -0
- data/share/gnome/help/alexandria/C/figures/settings_providers_new_z3950.png +0 -0
- data/share/gnome/help/alexandria/C/figures/smart_libraries_new_smart_library.png +0 -0
- data/share/gnome/help/alexandria/C/figures/working_with_libraries_library_pane.png +0 -0
- data/share/gnome/help/alexandria/C/getting-started.xml +154 -0
- data/share/gnome/help/alexandria/C/gnu-fdl-1.2.xml +543 -0
- data/share/gnome/help/alexandria/C/introduction.xml +142 -0
- data/share/gnome/help/alexandria/C/searching.xml +90 -0
- data/share/gnome/help/alexandria/C/settings.xml +140 -0
- data/share/gnome/help/alexandria/C/smart-libraries.xml +160 -0
- data/share/gnome/help/alexandria/C/working-with-libraries.xml +76 -0
- data/share/gnome/help/alexandria/ChangeLog +99 -0
- data/share/gnome/help/alexandria/fr/alexandria.xml +2292 -0
- data/share/gnome/help/alexandria/fr/figures/alexandria_add_button.png +0 -0
- data/share/gnome/help/alexandria/fr/figures/alexandria_add_by_isbn_1.png +0 -0
- data/share/gnome/help/alexandria/fr/figures/alexandria_add_by_search_1.png +0 -0
- data/share/gnome/help/alexandria/fr/figures/alexandria_add_manually.png +0 -0
- data/share/gnome/help/alexandria/fr/figures/alexandria_add_z3950.png +0 -0
- data/share/gnome/help/alexandria/fr/figures/alexandria_close_button.png +0 -0
- data/share/gnome/help/alexandria/fr/figures/alexandria_edit_info.png +0 -0
- data/share/gnome/help/alexandria/fr/figures/alexandria_export_web_page.png +0 -0
- data/share/gnome/help/alexandria/fr/figures/alexandria_importing.png +0 -0
- data/share/gnome/help/alexandria/fr/figures/alexandria_library_pane.png +0 -0
- data/share/gnome/help/alexandria/fr/figures/alexandria_list_view.png +0 -0
- data/share/gnome/help/alexandria/fr/figures/alexandria_list_view_search.png +0 -0
- data/share/gnome/help/alexandria/fr/figures/alexandria_loaning.png +0 -0
- data/share/gnome/help/alexandria/fr/figures/alexandria_main_window.png +0 -0
- data/share/gnome/help/alexandria/fr/figures/alexandria_remove_button.png +0 -0
- data/share/gnome/help/alexandria/ja/about.xml +33 -0
- data/share/gnome/help/alexandria/ja/adding-books.xml +314 -0
- data/share/gnome/help/alexandria/ja/alexandria.xml +172 -0
- data/share/gnome/help/alexandria/ja/bugs.xml +11 -0
- data/share/gnome/help/alexandria/ja/editing-book-properties.xml +100 -0
- data/share/gnome/help/alexandria/ja/exporting.xml +98 -0
- data/share/gnome/help/alexandria/ja/figures/adding_books_acquire_from_scanner_process.png +0 -0
- data/share/gnome/help/alexandria/ja/figures/adding_books_add_by_isbn.png +0 -0
- data/share/gnome/help/alexandria/ja/figures/adding_books_isbn_import.png +0 -0
- data/share/gnome/help/alexandria/ja/figures/adding_books_manual_details.png +0 -0
- data/share/gnome/help/alexandria/ja/figures/adding_books_rename_library_after_import.png +0 -0
- data/share/gnome/help/alexandria/ja/figures/adding_books_search_results.png +0 -0
- data/share/gnome/help/alexandria/ja/figures/editing_book_properties_info.png +0 -0
- data/share/gnome/help/alexandria/ja/figures/editing_book_properties_loaning.png +0 -0
- data/share/gnome/help/alexandria/ja/figures/exporting_information_html.png +0 -0
- data/share/gnome/help/alexandria/ja/figures/getting_started_first_launched.png +0 -0
- data/share/gnome/help/alexandria/ja/figures/searching_filtering_views_list_view.png +0 -0
- data/share/gnome/help/alexandria/ja/figures/searching_filtering_views_list_view_search.png +0 -0
- data/share/gnome/help/alexandria/ja/figures/settings_providers_new_z3950.png +0 -0
- data/share/gnome/help/alexandria/ja/figures/smart_libraries_new_smart_library.png +0 -0
- data/share/gnome/help/alexandria/ja/figures/working_with_libraries_library_pane.png +0 -0
- data/share/gnome/help/alexandria/ja/getting-started.xml +144 -0
- data/share/gnome/help/alexandria/ja/gnu-fdl-1.2.xml +541 -0
- data/share/gnome/help/alexandria/ja/introduction.xml +134 -0
- data/share/gnome/help/alexandria/ja/searching.xml +104 -0
- data/share/gnome/help/alexandria/ja/settings.xml +129 -0
- data/share/gnome/help/alexandria/ja/smart-libraries.xml +140 -0
- data/share/gnome/help/alexandria/ja/working-with-libraries.xml +88 -0
- data/share/menu/alexandria +7 -0
- data/share/omf/alexandria/alexandria-C.omf.in +27 -0
- data/share/omf/alexandria/alexandria-fr.omf.in +30 -0
- data/share/sounds/alexandria/bad_scan.ogg +0 -0
- data/share/sounds/alexandria/bad_scan.wav +0 -0
- data/share/sounds/alexandria/good_scan.ogg +0 -0
- data/share/sounds/alexandria/good_scan.wav +0 -0
- data/share/sounds/alexandria/scanning.ogg +0 -0
- data/share/sounds/alexandria/scanning.wav +0 -0
- data/spec/alexandria/library_spec.rb +205 -0
- data/spec/alexandria/preferences_spec.rb +22 -0
- data/spec/alexandria/scanners/cuecat_spec.rb +68 -0
- data/spec/alexandria/smart_library_spec.rb +22 -0
- data/spec/alexandria/ui/dialogs_spec.rb +90 -0
- data/spec/alexandria/ui/iconview_spec.rb +27 -0
- data/spec/alexandria/ui/listview_spec.rb +28 -0
- data/spec/alexandria/ui/main_app_spec.rb +48 -0
- data/spec/alexandria/ui/sidepane_spec.rb +27 -0
- data/spec/alexandria/ui/ui_manager_spec.rb +26 -0
- data/spec/alexandria/ui/ui_utilities_spec.rb +60 -0
- data/spec/alexandria/utilities_spec.rb +50 -0
- data/spec/data/libraries/0.6.1-noisbn/My Library/0201398257.yaml +10 -0
- data/spec/data/libraries/0.6.1-noisbn/My Library/1565920007.yaml +10 -0
- data/spec/data/libraries/0.6.1/My Library/0192812173.yaml +9 -0
- data/spec/data/libraries/0.6.1/My Library/0201398257.cover +0 -0
- data/spec/data/libraries/0.6.1/My Library/0201398257.yaml +10 -0
- data/spec/data/libraries/0.6.1/My Library/1565920007.yaml +10 -0
- data/spec/data/libraries/0.6.2/My Library/9780140266146.cover +0 -0
- data/spec/data/libraries/0.6.2/My Library/9780140266146.yaml +16 -0
- data/spec/data/libraries/0.6.2/My Library/9780140278781.cover +0 -0
- data/spec/data/libraries/0.6.2/My Library/9780140278781.yaml +21 -0
- data/spec/data/libraries/0.6.2/My Library/9780571147168.cover +0 -0
- data/spec/data/libraries/0.6.2/My Library/9780571147168.yaml +20 -0
- data/spec/data/libraries/0.6.2/My Library/9780575079038.cover +0 -0
- data/spec/data/libraries/0.6.2/My Library/9780575079038.yaml +20 -0
- data/spec/data/libraries/0.6.2/My Library/9780755322800.cover +0 -0
- data/spec/data/libraries/0.6.2/My Library/9780755322800.yaml +20 -0
- data/spec/spec_helper.rb +46 -0
- data/tasks/rdoc.rake +6 -0
- data/tasks/setup.rb +30 -0
- data/tasks/spec.rake +29 -0
- data/tasks/test.rake +38 -0
- data/test/application_test.rb +39 -0
- data/test/book_test.rb +34 -0
- data/test/data/isbns.txt +3 -0
- data/test/isbn_test.rb +68 -0
- data/test/providers_test.rb +254 -0
- data/test/test_helper.rb +42 -0
- data/util/rake/fileinstall.rb +313 -0
- data/util/rake/gettextgenerate.rb +158 -0
- data/util/rake/omfgenerate.rb +79 -0
- metadata +452 -0
data/Gemfile
ADDED
data/INSTALL.rdoc
ADDED
@@ -0,0 +1,156 @@
|
|
1
|
+
= Installing Alexandria
|
2
|
+
|
3
|
+
Alexandria is written in Ruby with a GTK+2/GNOME user-interface. It
|
4
|
+
currently only runs on UNIX-style systems, such as GNU/Linux.
|
5
|
+
|
6
|
+
Alexandria is not an easy project to build from scratch. Apart from
|
7
|
+
Ruby and GNOME, it has a lot of dependencies; however, many of these
|
8
|
+
are now optional as detailed below. Once the dependencies have been
|
9
|
+
installed, building and installing Alexandria is relatively
|
10
|
+
straightforward.
|
11
|
+
|
12
|
+
[Also note that there are pre-built packages for some distros, such as
|
13
|
+
Fedora and Ubuntu.]
|
14
|
+
|
15
|
+
== Dependencies
|
16
|
+
|
17
|
+
The {Ruby-GNOME2}[http://ruby-gnome2.sourceforge.jp/] user-interface
|
18
|
+
involves a number of packages:
|
19
|
+
|
20
|
+
* <tt>ruby-gtk2</tt>
|
21
|
+
* <tt>ruby-goocanvas</tt>
|
22
|
+
* <tt>ruby-gst</tt>
|
23
|
+
* <tt>ruby-pango</tt>
|
24
|
+
|
25
|
+
You should have GTK+ >= 2.22.0, and use Ruby-GNOME2 >= 0.16.0.
|
26
|
+
|
27
|
+
<tt>ruby-gettext</tt>[http://ponx.s5.xrea.com/hiki/ruby-gettext.html]
|
28
|
+
is required for the internationalisation of the user interface.
|
29
|
+
Requires version 1.7.0 or higher.
|
30
|
+
|
31
|
+
=== Hpricot
|
32
|
+
|
33
|
+
Alexandria uses +hpricot+[http://code.whytheluckystiff.net/hpricot] to
|
34
|
+
parse the HTML from web pages for providers such as DeaStore and
|
35
|
+
Siciliano. It is also used to parse the XML for the Amazon web
|
36
|
+
service. You can install the +hpricot+ package natively or as a
|
37
|
+
ruby gem.
|
38
|
+
|
39
|
+
== HTMLEntities
|
40
|
+
|
41
|
+
This is used by all website-based providers except MCU.
|
42
|
+
+htmlentities+[http://htmlentities.rubyforge.org/] is used to
|
43
|
+
provide more flexible HTML parsing.
|
44
|
+
|
45
|
+
== Build Dependencies
|
46
|
+
|
47
|
+
=== Ruby Dependencies
|
48
|
+
|
49
|
+
+rake+[http://rake.rubyforge.org] is required to build Alexandria from
|
50
|
+
the project +Rakefile+.
|
51
|
+
|
52
|
+
You also need +rubygems+[http://www.rubygems.org/] and
|
53
|
+
+rspec+[http://rspec.rubyforge.org/] to run the RSpec test suite.
|
54
|
+
|
55
|
+
=== Native Dependencies
|
56
|
+
|
57
|
+
The +gettext+[http://www.gnu.org/software/gettext] package is needed
|
58
|
+
to generate the binary +mo+ files used by <tt>ruby-gettext</tt> at
|
59
|
+
runtime. You also need the
|
60
|
+
+intltool+[http://www.freedesktop.org/wiki/Software/intltool] package
|
61
|
+
to merge translations into generated files (and to extract
|
62
|
+
translatable string from xml files during development).
|
63
|
+
|
64
|
+
Note that these files are pre-generated in tar.gz releases, so you'll
|
65
|
+
only need them if you're building from the SVN version, or want to
|
66
|
+
change the translations.
|
67
|
+
|
68
|
+
== Optional Dependencies
|
69
|
+
|
70
|
+
=== Ruby/ZOOM and Yaz
|
71
|
+
|
72
|
+
For Z39.50 support and and the <b>Library of Congress</b> and
|
73
|
+
<b>British Library</b> book providers you will need
|
74
|
+
<tt>ruby-zoom</tt>[http://ruby-zoom.rubyforge.org], which in turn
|
75
|
+
requires the non-Ruby package +yaz+[http://www.indexdata.dk/yaz].
|
76
|
+
|
77
|
+
Note that if you install the recent Ruby/ZOOM as the +zoom+ gem, you
|
78
|
+
will also need to install the +marc+ gem. (Older implementations of
|
79
|
+
ruby-zoom contained their own implementation of MARC.)
|
80
|
+
|
81
|
+
The Z39.50 Object-Orientation Model (ZOOM) is an international
|
82
|
+
standard for communication between computer systems, particularly
|
83
|
+
libraries and information-related systems.
|
84
|
+
|
85
|
+
=== image_size
|
86
|
+
|
87
|
+
You will need
|
88
|
+
<tt>image_size</tt>[http://rubyforge.org/projects/imagesize/] for
|
89
|
+
optimizing the cover images in exported libraries.
|
90
|
+
|
91
|
+
=== Revolution
|
92
|
+
|
93
|
+
If you want to auto-complete the names of people you loan books to
|
94
|
+
from your Evolution contacts database, you can install
|
95
|
+
+revolution+[ http://revolution.rubyforge.org/].
|
96
|
+
|
97
|
+
== Build and Install
|
98
|
+
|
99
|
+
To build Alexandria from a subversion checkout, go to the base project
|
100
|
+
directory (where the Rakefile and this INSTALL file are located) and
|
101
|
+
issue the command
|
102
|
+
rake build
|
103
|
+
If you have downloaded a source package, this step will not usually be
|
104
|
+
necessary.
|
105
|
+
|
106
|
+
You must have root priveledges to install, so use +su+
|
107
|
+
su -c 'rake install'
|
108
|
+
or +sudo+
|
109
|
+
sudo rake install
|
110
|
+
|
111
|
+
Now you can check the version of the installed Alexandria
|
112
|
+
alexandria --version
|
113
|
+
|
114
|
+
To launch Alexandria, simply use
|
115
|
+
alexandria
|
116
|
+
|
117
|
+
If you wish to see more output on the console, you can use
|
118
|
+
alexandria --debug
|
119
|
+
|
120
|
+
=== Staged installation for making packages
|
121
|
+
|
122
|
+
When building a binary package (such as a deb or rpm) you will want to
|
123
|
+
"install" Alexandria into a specified directory instead of the root
|
124
|
+
filesystem. You should specify this as the DESTDIR environment variable
|
125
|
+
and use the +install_package_staging+ task instead of +install+
|
126
|
+
|
127
|
+
DESTDIR=debian/alexandria rake install_package_staging
|
128
|
+
|
129
|
+
If your distribution uses a specific directory to install Ruby
|
130
|
+
packages, you should also set the RUBYLIBDIR.
|
131
|
+
|
132
|
+
=== Installing in the home directory
|
133
|
+
|
134
|
+
If you want to install Alexandria in your home directory, you should
|
135
|
+
specify the PREFIX, SHARE and RUBYLIBDIR envrionment variables, and
|
136
|
+
use the +install_package+ task instead of +install+.
|
137
|
+
|
138
|
+
PREFIX=$HOME SHARE=$HOME/.share RUBYLIBDIR=$HOME/.rubylib rake install_package
|
139
|
+
|
140
|
+
This will install the +alexandria+ program into +$HOME/bin+ (which you
|
141
|
+
should add to your +PATH+), and the ruby files to your
|
142
|
+
+$HOME/.rubylib+ which you should add to your +RUBYLIBDIR+ environment
|
143
|
+
variable.
|
144
|
+
|
145
|
+
=== Uninstalling
|
146
|
+
|
147
|
+
To uninstall, simply run
|
148
|
+
|
149
|
+
sudo rake uninstall
|
150
|
+
|
151
|
+
(or +rake uninstall_package+ if you installed in your home directory).
|
152
|
+
|
153
|
+
If you specified any of the environment variables PREFIX, SHARE,
|
154
|
+
RUBYLIBDIR and DESTDIR during the installation, you should use the
|
155
|
+
same variables during uninstallation (or rake won't know where to look
|
156
|
+
for the files it has to remove).
|
data/PACKAGING
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
#!/bin/sh
|
2
|
+
# This is just to provide clues for packaging. Not ready to be run as a script.
|
3
|
+
|
4
|
+
cd alexandria
|
5
|
+
rake package
|
6
|
+
# sometimes I have to run 'rake docs' before this works properly.
|
7
|
+
# this creates tarball in pkg/ (doesn't contain everything yet)
|
8
|
+
|
9
|
+
mkdir /tmp/build-alexandria-deb
|
10
|
+
mv pkg/alexandria-0.6.4.tar.gz /tmp/build-alexandria-deb/alexandria-0.6.4.orig.tar.gz
|
11
|
+
cd /tmp/build-alexandria-deb
|
12
|
+
tar zxf alexandria-0.6.4.orig.tar.gz
|
13
|
+
cd alexandria-0.6.4
|
14
|
+
|
15
|
+
# this is where we build the deb packages from a pristine source tree
|
16
|
+
# (Note: as a first step 'rake clobber' is automaticallly run, making
|
17
|
+
# the source tree even more pristine...)
|
18
|
+
|
19
|
+
|
20
|
+
cp -a ~/software/projects/alexandria/svn/trunk/debian-gnusense/ ./debian
|
21
|
+
# NOW edit the files in debian/ as needed
|
22
|
+
|
23
|
+
dpkg-buildpackage -d -rfakeroot
|
24
|
+
# you will be prompted for your GnuPG passphrase twice (it takes your
|
25
|
+
# key id from the e-mail address of the most recent change in
|
26
|
+
# debian/changelog)
|
27
|
+
|
28
|
+
cd ..
|
29
|
+
ls -l
|
30
|
+
|
31
|
+
# this should give you:
|
32
|
+
# a source tarball: alexandria_0.6.4-1.tar.gz
|
33
|
+
# a source code description: alexandria_0.6.4-1.dsc
|
34
|
+
# a binary deb: alexandria_0.6.4-1_all.deb
|
35
|
+
# a changes file: alexandria_0.6.4-1_i386.changes
|
36
|
+
#
|
data/README.md
ADDED
@@ -0,0 +1,88 @@
|
|
1
|
+
# Alexandria
|
2
|
+
|
3
|
+
Alexandria is a GNOME application for managing collections of books.
|
4
|
+
|
5
|
+
Alexandria is written in Ruby, and is free software, distributed under
|
6
|
+
the terms of the GNU General Public License, version 2 or later. See
|
7
|
+
the file COPYING for more information.
|
8
|
+
|
9
|
+
What is Alexandria?
|
10
|
+
===================
|
11
|
+
|
12
|
+
Alexandria is an application for managing a personal book library.
|
13
|
+
Its main recommending feature is its clean, intuitive interface.
|
14
|
+
Alexandria is able to retrieve book information and cover images from
|
15
|
+
a wide variety of online data sources. It also features extensive
|
16
|
+
import and export options, a loan interface, and smart libraries.
|
17
|
+
Alexandria is written in Ruby using ruby-gnome2.
|
18
|
+
|
19
|
+
Where can I get it?
|
20
|
+
===================
|
21
|
+
|
22
|
+
An experimental gem release can be installed by running
|
23
|
+
|
24
|
+
gem install alexandria-book-collection-manager
|
25
|
+
|
26
|
+
Alternatively, download the source from the github repository at
|
27
|
+
http://www.github.com/mvz/alexandria-book-collection-manager and follow the
|
28
|
+
installation instructions.
|
29
|
+
|
30
|
+
Where can I find out more?
|
31
|
+
==========================
|
32
|
+
|
33
|
+
For source code and bug reporting, see the repository on github at
|
34
|
+
http://www.github.com/mvz/alexandria-book-collection-manager.
|
35
|
+
|
36
|
+
## Features
|
37
|
+
|
38
|
+
Alexandria is a simple program designed to allow individuals to keep a
|
39
|
+
catalogue of their book collection. In addition, it enables users to
|
40
|
+
keep track of books which are on loan.
|
41
|
+
|
42
|
+
* retrieves and displays book information (sometimes with cover
|
43
|
+
pictures) from several online libraries and bookshops, such as
|
44
|
+
o Amazon
|
45
|
+
o Proxis
|
46
|
+
o DeaStore
|
47
|
+
o AdLibris
|
48
|
+
o Spanish Ministry of Culture
|
49
|
+
o Livraria Siciliano
|
50
|
+
o WorldCat
|
51
|
+
o US Library of Congress
|
52
|
+
o British Library
|
53
|
+
* allows books to be added and updated by hand
|
54
|
+
* enables searches either by ISBN, title, author or keyword
|
55
|
+
* supports the Z39.50 standard and allow you to manage your own
|
56
|
+
sources (e.g. university libraries)
|
57
|
+
* saves data using the plain-text YAML format
|
58
|
+
* can import and export data into ONIX, Tellico, ISBN-list
|
59
|
+
and GoodReads CSV formats
|
60
|
+
* can export XHTML web pages of your libraries, themable with CSS
|
61
|
+
* allows marking your books as loaned, each with the loan-date and
|
62
|
+
the name of the person who has borrowed them
|
63
|
+
* features a HIG-compliant user interface
|
64
|
+
* shows books in different views (standard list or icons list),
|
65
|
+
that can be filtered and/or sorted
|
66
|
+
* handles book rating and notes
|
67
|
+
* supports CueCat and standard "keyboard wedge" barcode readers
|
68
|
+
* includes translations for several languages
|
69
|
+
* is documented in a complete manual (at the moment only in
|
70
|
+
English and Japanese)
|
71
|
+
|
72
|
+
Alexandria is not without problems. See doc/BUGS for a summary of issues.
|
73
|
+
|
74
|
+
## Installation
|
75
|
+
|
76
|
+
There are full instructions for installing Alexandria from source in the
|
77
|
+
file INSTALL, including information about all the dependencies.
|
78
|
+
|
79
|
+
If you are installing on a Debian-based system, things should be
|
80
|
+
easier as the dependencies can be handled automatically.
|
81
|
+
|
82
|
+
To run the program, just type
|
83
|
+
alexandria
|
84
|
+
or, to get verbose debugging information,
|
85
|
+
alexandria --debug
|
86
|
+
|
87
|
+
If you are running GNOME, Alexandria should appear under the
|
88
|
+
'Applications > Office' menu.
|
data/RELEASE_CHECKLIST
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
String-freeze (1 week before the release)
|
2
|
+
- Mail translators (see AUTHORS for e-mail addresses) with the latest .pot
|
3
|
+
file merged with their latest translation work.
|
4
|
+
|
5
|
+
Release
|
6
|
+
- Update NEWS with the announcement and commit ;
|
7
|
+
- Update README with the list of features) ;
|
8
|
+
- Tag the ChangeLog (=== Alexandria X.Y.Z ===) and commit ;
|
9
|
+
- Create the tarball release (make_release.sh "X.Y.Z") ;
|
10
|
+
- Check if the tarball is OK ;
|
11
|
+
- Upload the tarball in rubyforge.org ;
|
12
|
+
- Update the web site (features list, download link, eventually
|
13
|
+
screenshots..) ;
|
14
|
+
- Wait for Debian and Mandrake packages ;
|
15
|
+
- Mail the announcement to alexandria-list@rubyforge.org,
|
16
|
+
ruby-talk@ruby-lang.org and gnome-announce-list@gnome.org ;
|
17
|
+
- Update related pages at RAA, Freshmeat and GnomeFiles ;
|
18
|
+
- Open a beer.
|
data/Rakefile
ADDED
@@ -0,0 +1,264 @@
|
|
1
|
+
# -*- ruby -*-
|
2
|
+
#--
|
3
|
+
# Copyright (C) 2009 Cathal Mc Ginley
|
4
|
+
# Copyright (C) 2011, 2014 Matijs van Zuijlen
|
5
|
+
#
|
6
|
+
# This file is part of the Alexandria build system.
|
7
|
+
#
|
8
|
+
# Permission is hereby granted, free of charge, to any person obtaining
|
9
|
+
# a copy of this software and associated documentation files (the
|
10
|
+
# "Software"), to deal in the Software without restriction, including
|
11
|
+
# without limitation the rights to use, copy, modify, merge, publish,
|
12
|
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
13
|
+
# permit persons to whom the Software is furnished to do so, subject to
|
14
|
+
# the following conditions:
|
15
|
+
#
|
16
|
+
# The above copyright notice and this permission notice shall be
|
17
|
+
# included in all copies or substantial portions of the Software.
|
18
|
+
#
|
19
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
20
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
21
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
22
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
23
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
24
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
25
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
26
|
+
#++
|
27
|
+
|
28
|
+
load 'tasks/setup.rb'
|
29
|
+
|
30
|
+
require 'rake/packagetask'
|
31
|
+
|
32
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), 'util/rake'))
|
33
|
+
require 'fileinstall'
|
34
|
+
require 'gettextgenerate'
|
35
|
+
require 'omfgenerate'
|
36
|
+
|
37
|
+
require_relative 'lib/alexandria/version'
|
38
|
+
|
39
|
+
stage_dir = ENV['DESTDIR'] || 'tmp'
|
40
|
+
prefix_dir = ENV['PREFIX'] || '/usr'
|
41
|
+
|
42
|
+
PROJECT = 'alexandria'
|
43
|
+
PREFIX = prefix_dir
|
44
|
+
share_dir = ENV['SHARE'] || "#{PREFIX}/share"
|
45
|
+
SHARE = share_dir
|
46
|
+
|
47
|
+
GettextGenerateTask.new(PROJECT) do |g|
|
48
|
+
g.generate_po_files('po', 'po/*.po', 'share/locale')
|
49
|
+
g.generate_desktop('alexandria.desktop.in', 'alexandria.desktop')
|
50
|
+
end
|
51
|
+
|
52
|
+
OmfGenerateTask.new(PROJECT) do |o|
|
53
|
+
o.gnome_helpfiles_dir = "#{SHARE}/gnome/help"
|
54
|
+
o.generate_omf('data/omf/alexandria', 'share/omf/alexandria/*.in')
|
55
|
+
end
|
56
|
+
|
57
|
+
SHARE_FILE_GLOBS = ['data/alexandria/**/*', 'data/gnome/**/*.*',
|
58
|
+
'data/locale/**/*.mo', 'data/omf/**/*.omf',
|
59
|
+
'data/sounds/**/*.ogg'] # , 'data/menu/*']
|
60
|
+
|
61
|
+
ICON_FILE_GLOBS = ['data/app-icon/**/*.png',
|
62
|
+
'data/app-icon/scalable/*.svg']
|
63
|
+
|
64
|
+
PIXMAP_GLOBS = 'data/app-icon/32x32/*.xpm'
|
65
|
+
|
66
|
+
def install_common(install_task)
|
67
|
+
install_task.install_exe('bin', 'bin/*', "#{PREFIX}/bin")
|
68
|
+
install_task.install('lib', 'lib/**/*.rb', install_task.rubylib)
|
69
|
+
|
70
|
+
install_task.install('data', SHARE_FILE_GLOBS, SHARE)
|
71
|
+
install_task.install_icons(ICON_FILE_GLOBS, "#{SHARE}/icons")
|
72
|
+
install_task.install('data/app-icon/32x32', PIXMAP_GLOBS, "#{SHARE}/pixmaps")
|
73
|
+
|
74
|
+
install_task.install('', 'schemas/alexandria.schemas', "#{SHARE}/gconf")
|
75
|
+
install_task.install('', 'alexandria.desktop', "#{SHARE}/applications")
|
76
|
+
install_task.install('doc', 'doc/alexandria.1', "#{SHARE}/man/man1")
|
77
|
+
end
|
78
|
+
|
79
|
+
FileInstallTask.new(:package_staging, stage_dir, true) do |i|
|
80
|
+
install_common(i)
|
81
|
+
end
|
82
|
+
|
83
|
+
task debian_install: :install_package_staging
|
84
|
+
|
85
|
+
FileInstallTask.new(:package) do |j|
|
86
|
+
install_common(j)
|
87
|
+
|
88
|
+
docs = %w(README.rdoc NEWS INSTALL.rdoc COPYING TODO)
|
89
|
+
devel_docs = ['doc/AUTHORS', 'doc/BUGS', 'doc/FAQ',
|
90
|
+
'doc/cuecat_support.rdoc']
|
91
|
+
j.install('', docs, "#{SHARE}/doc/#{PROJECT}")
|
92
|
+
j.install('doc', devel_docs, "#{SHARE}/doc/#{PROJECT}")
|
93
|
+
|
94
|
+
j.uninstall_empty_dirs(["#{SHARE}/**/#{PROJECT}/",
|
95
|
+
"#{j.rubylib}/#{PROJECT}/"
|
96
|
+
])
|
97
|
+
end
|
98
|
+
|
99
|
+
task :clobberp do
|
100
|
+
puts CLOBBER
|
101
|
+
end
|
102
|
+
|
103
|
+
## autogenerated files
|
104
|
+
|
105
|
+
def autogen_comment
|
106
|
+
lines = [
|
107
|
+
"This file is automatically generated by the #{PROJECT} installer.",
|
108
|
+
'Do not edit it directly.'
|
109
|
+
]
|
110
|
+
result = lines.map { |line| "# #{line}" }
|
111
|
+
result.join("\n") + "\n\n"
|
112
|
+
end
|
113
|
+
|
114
|
+
def generate(filename)
|
115
|
+
File.open(filename, 'w') do |file|
|
116
|
+
puts "Generating #{filename}"
|
117
|
+
file.print autogen_comment
|
118
|
+
file_contents = yield
|
119
|
+
file.print file_contents.to_s
|
120
|
+
end
|
121
|
+
end
|
122
|
+
|
123
|
+
# generate default_preferences.rb
|
124
|
+
def convert_with_type(value, type)
|
125
|
+
case type
|
126
|
+
when 'int'
|
127
|
+
value.to_i
|
128
|
+
when 'float'
|
129
|
+
value.to_f
|
130
|
+
when 'bool'
|
131
|
+
value == 'true'
|
132
|
+
else
|
133
|
+
value.strip
|
134
|
+
end
|
135
|
+
end
|
136
|
+
|
137
|
+
SCHEMA_PATH = 'schemas/alexandria.schemas'
|
138
|
+
|
139
|
+
# This generates default_preferences.rb by copying over values from
|
140
|
+
# providers_priority key in alexandria.schemas (necessary?)
|
141
|
+
|
142
|
+
file 'lib/alexandria/default_preferences.rb' => [SCHEMA_PATH] do |f|
|
143
|
+
require 'rexml/document'
|
144
|
+
generated_lines = []
|
145
|
+
|
146
|
+
doc = REXML::Document.new(IO.read(SCHEMA_PATH))
|
147
|
+
doc.elements.each('gconfschemafile/schemalist/schema') do |element|
|
148
|
+
default = element.elements['default'].text
|
149
|
+
next unless default
|
150
|
+
varname = File.basename(element.elements['key'].text)
|
151
|
+
type = element.elements['type'].text
|
152
|
+
|
153
|
+
if type == 'list' or type == 'pair'
|
154
|
+
ary = default[1..-2].split(',')
|
155
|
+
next if ary.empty?
|
156
|
+
if type == 'list'
|
157
|
+
list_type = element.elements['list_type'].text
|
158
|
+
ary.map! { |x| convert_with_type(x, list_type) }
|
159
|
+
elsif type == 'pair'
|
160
|
+
next if ary.length != 2
|
161
|
+
ary[0] = convert_with_type(ary[0],
|
162
|
+
element.elements['car_type'].text)
|
163
|
+
ary[1] = convert_with_type(ary[1],
|
164
|
+
element.elements['cdr_type'].text)
|
165
|
+
end
|
166
|
+
default = ary.inspect
|
167
|
+
else
|
168
|
+
default = convert_with_type(default, type).inspect.to_s
|
169
|
+
end
|
170
|
+
|
171
|
+
generated_lines << varname.inspect + ' => ' + default
|
172
|
+
end
|
173
|
+
|
174
|
+
generate(f.name) do
|
175
|
+
<<EOS
|
176
|
+
module Alexandria
|
177
|
+
class Preferences
|
178
|
+
DEFAULT_VALUES = {#{generated_lines.join(",\n ")}}
|
179
|
+
end
|
180
|
+
end
|
181
|
+
EOS
|
182
|
+
end
|
183
|
+
end
|
184
|
+
|
185
|
+
autogenerated_files = ['lib/alexandria/config.rb',
|
186
|
+
'lib/alexandria/default_preferences.rb']
|
187
|
+
|
188
|
+
desc 'Generate ruby files needed for the installation'
|
189
|
+
task autogen: autogenerated_files
|
190
|
+
|
191
|
+
task :autogen_clobber do |_t|
|
192
|
+
autogenerated_files.each do |file|
|
193
|
+
FileUtils.rm_f(file)
|
194
|
+
end
|
195
|
+
end
|
196
|
+
task clobber: [:autogen_clobber]
|
197
|
+
|
198
|
+
## # # # default task # # # ##
|
199
|
+
|
200
|
+
task build: [:autogen, :gettext, :omf]
|
201
|
+
|
202
|
+
task default: [:build]
|
203
|
+
|
204
|
+
# pre-release tasks
|
205
|
+
|
206
|
+
ULTRA_CLOBBER = []
|
207
|
+
task ultra_clobber: :clobber do
|
208
|
+
ULTRA_CLOBBER.each do |file|
|
209
|
+
FileUtils::Verbose.rm_f(file)
|
210
|
+
end
|
211
|
+
end
|
212
|
+
|
213
|
+
## # # # package task # # # ##
|
214
|
+
|
215
|
+
Rake::PackageTask.new(PROJECT, Alexandria::DISPLAY_VERSION) do |p|
|
216
|
+
p.need_tar_gz = true
|
217
|
+
p.package_files.include('README*', 'COPYING', 'CHANGELOG.md', 'INSTALL.rdoc',
|
218
|
+
'NEWS', 'Rakefile', 'util/**/*',
|
219
|
+
'TODO', 'alexandria.desktop',
|
220
|
+
'alexandria.desktop.in',
|
221
|
+
'bin/**/*', 'data/**/*', 'misc/**/*',
|
222
|
+
'doc/**/*', 'lib/**/*', 'po/**/*',
|
223
|
+
'schemas/**/*', 'spec/**/*', 'tests/**/*')
|
224
|
+
end
|
225
|
+
|
226
|
+
task tgz: [:build] do
|
227
|
+
`rake package`
|
228
|
+
end
|
229
|
+
|
230
|
+
## # # # system installation # # # ##
|
231
|
+
|
232
|
+
task pre_install: [:build]
|
233
|
+
task :scrollkeeper do
|
234
|
+
unless system('which scrollkeeper-update')
|
235
|
+
raise 'scrollkeeper-update cannot be found, is Scrollkeeper correctly installed?'
|
236
|
+
end
|
237
|
+
system('scrollkeeper-update -q') or raise 'Scrollkeeper update failed'
|
238
|
+
end
|
239
|
+
|
240
|
+
task :gconf do
|
241
|
+
return if ENV['GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL']
|
242
|
+
|
243
|
+
unless system('which gconftool-2')
|
244
|
+
raise 'gconftool-2 cannot be found, is GConf2 correctly installed?'
|
245
|
+
end
|
246
|
+
|
247
|
+
ENV['GCONF_CONFIG_SOURCE'] = `gconftool-2 --get-default-source`.chomp
|
248
|
+
Dir['schemas/*.schemas'].each do |schema|
|
249
|
+
system("gconftool-2 --makefile-install-rule '#{schema}'")
|
250
|
+
end
|
251
|
+
# system("killall -HUP gconfd-2")
|
252
|
+
end
|
253
|
+
|
254
|
+
task :update_icon_cache do
|
255
|
+
system('gtk-update-icon-cache -f -t /usr/share/icons/hicolor') # HACK
|
256
|
+
end
|
257
|
+
|
258
|
+
task post_install: [:scrollkeeper, :gconf, :update_icon_cache]
|
259
|
+
|
260
|
+
desc 'Install Alexandria'
|
261
|
+
task install: [:pre_install, :install_package, :post_install]
|
262
|
+
|
263
|
+
desc 'Uninstall Alexandria'
|
264
|
+
task uninstall: [:uninstall_package] # TODO: gconf etc...
|