Commit graph

47 commits

Author SHA1 Message Date
Tomi Ollila
35cdebdad0 fix out of tree build
In addition to use ${srcdir} and deliver ${NOTMUCH_SRCDIR} where needed,
source from ruby bindings had to be copied to the out-of-tree target
directory -- if the source files in source directory were referenced
in build and there were also built object files there, those could have
been considered as target files (and then not found when attempting
to create bindings/ruby/notmuch.so).
2017-03-12 09:17:29 -03:00
Daniel Kahn Gillmor
6a833a6e83 Use https instead of http where possible
Many of the external links found in the notmuch source can be resolved
using https instead of http.  This changeset addresses as many as i
could find, without touching the e-mail corpus or expected outputs
found in tests.
2016-06-05 08:32:17 -03:00
Ludovic LANGE
7e6e23c36e ruby: add bindings for notmuch_database_get_all_tags
The Ruby bindings were missing a way to get all the tags of the
database. Now you should be able to access this with the public
instance method `all_tags` of your database object.

Example of use:
    notmuchdb = Notmuch::Database.new path, { :create => false,
    	:mode => Notmuch::MODE_READ_ONLY }

    my_tags = notmuchdb.all_tags

    my_tags.each { |tag|
      print tag
    }

    my_tags.destroy!

Amended by db: improve error reporting, add test
2016-05-19 08:02:43 -03:00
David Bremner
e8a828b30d ruby: use new query_search API
These changes should not be too surprising for users because the
routines were already potentially throwing exceptions.
2015-10-05 19:54:12 -03:00
David Bremner
516e196fa1 ruby: use new count API
This change of replacing ignoring errors with exceptions is intended,
and indeed one of the main motivations for the libnotmuch API changes.
2015-10-05 19:51:52 -03:00
David Bremner
233b5528cd build/ruby: use notmuch configure script values for shared lib
This is supposed to help build on systems like MacOS with different
conventions for naming shared libraries. We have already computed the
relevant names, so doing it again in ruby seems like a bad idea.
2015-06-14 08:23:55 +02:00
David Bremner
53035dafe0 lib, ruby: make use of -Wl,--no-undefined configurable
In particular this is supposed to help build on systems (presumably
using a non-gnu ld) where this flag is not available.
2015-06-13 17:52:48 +02:00
David Bremner
d038b93209 build: integrate building ruby bindings into notmuch build process
Because ruby generates a Makefile, we have to use recursive make.
Because mkmf.rb hardcodes the name Makefile, put our Makefile{.local}
in the parent directory.
2015-06-12 09:12:28 +02:00
David Bremner
c86353aa9a bindings/ruby: gitignore *.o 2015-01-01 16:47:29 +01:00
Peter Wang
034102303e ruby: handle return status of database close
Throw an exception if notmuch_database_destroy fails.
2014-09-16 20:17:15 +02:00
Wael M. Nasreddine
0629afeb26 ruby: Add wrapper for notmuch_query_count_threads 2014-05-18 06:39:58 +09:00
Gaute Hope
5569344a7e ruby bindings message: docstring typo 2014-02-21 21:13:03 -04:00
Felipe Contreras
8c3d19313e ruby: use in-tree notmuch library
Currently it simply finds any library available, and if notmuch is
installed in the system, it would give priority to that library.

Let's implement our own helper functions to link directly to the local
library, and give priority to the local header file.

Also, add an option to properly check if there are missing symbols.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
2013-05-23 08:15:20 -03:00
Felipe Contreras
ed9ef5dc5a ruby: fix missing symbol UINT2FIX()
It has never existed in Ruby (maybe JRuby). Fortunately the symbols are
loaded lazily, so nobody would notice unless they try
'query::count_messages'.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
2013-05-23 08:03:58 -03:00
Austin Clements
c4f96d0931 ruby: Add bindings for notmuch_thread_get_messages 2013-02-18 20:23:40 -04:00
Tomi Ollila
d796dad4ed ruby: extern linkage portability improvement
Some C compilers are stricter when it comes to (tentative) definition
of a variable -- in those compilers introducing variable without 'extern'
keyword always allocates new 'storage' to the variable and linking all
these modules fails due to duplicate symbols.

This is reimplementation of Charlie Allom's patch:
id:"1336481467-66356-1-git-send-email-charlie@mediasp.com",
written originally by Ali Polatel. This version has
more accurate commit message.
2012-06-29 22:24:17 -03:00
Felipe Contreras
35cb1c95cc Revert "ruby: Add workarounds to use in-tree build not the installed one"
This reverts commit 82b73ffd73.

Only leave the copyright changes.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
2012-05-25 15:11:31 +02:00
Austin Clements
bc4000a952 ruby: Update for changes to notmuch_database_get_directory 2012-05-15 08:59:05 -03:00
Ali Polatel
a8e010962f ruby: Add wrapper for notmuch_query_set_omit_excluded() 2012-05-08 10:34:50 -03:00
Ali Polatel
82b73ffd73 ruby: Add workarounds to use in-tree build not the installed one
- Make mkmf use the notmuch.h under ../../lib
- Use libnotmuch.a instead of linking to the installed libnotmuch.so
2012-05-08 10:34:33 -03:00
Ali Polatel
92680f12eb ruby: Add wrapper for notmuch_query_add_tag_exclude 2012-05-08 10:32:56 -03:00
Ali Polatel
d0000daab3 ruby: Add wrapper for notmuch_query_count_messages 2012-05-08 10:32:45 -03:00
Austin Clements
9721343e5b ruby: Update Ruby bindings for new notmuch_database_{open, create} signatures 2012-05-05 10:14:47 -03:00
Justus Winter
288feb7cdf ruby: Use notmuch_database_destroy instead of notmuch_database_close
Adapt the ruby bindings to the notmuch_database_close split.

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
2012-04-28 09:30:02 -03:00
Ali Polatel
5c00af46ec ruby: Fix macros, use quoting
Fix Data_Get_Notmuch_* macro definitions broken by prev. commit
Adequate quoting for Data_Get_Notmuch_* macros
Remove duplicated RSTRING_PTR() macros, move it to defs.h
2011-10-04 16:57:33 +03:00
Ali Polatel
c8a88fe95d ruby: Really add wrappers for database_find_message*
Commit 898613116d only added wrapper
functions but did not register them. Register the functions in module's
initialization function.
2011-10-04 16:48:34 +03:00
Ali Polatel
05dddf883d ruby: be consistent with notmuch's coding style
No functional change, just indentation
2011-10-04 16:43:40 +03:00
Ali Polatel
898613116d ruby: Add wrappers for database_find_message*
Two new wrappers:
Notmuch::Database.find_message(id) => Notmuch::Message or nil
Notmuch::Database.find_message_by_filename(path) => Notmuch::Message or nil
2011-10-04 16:06:20 +03:00
Ali Polatel
59d2457bcc ruby: New exception Notmuch::UnbalancedAtomicError
This exception wraps NOTMUCH_STATUS_UNBALANCED_ATOMIC which was added
with the commit e59cc0031f.
2011-09-24 15:54:45 +03:00
Ali Polatel
bbb41081d7 ruby: Wrap notmuch_database_{begin,end}_atomic
Adding ruby wrappers for functions:
- notmuch_database_begin_atomic()
- notmuch_database_end_atomic()
added by 957f1ba3fc

New functions:
Notmuch::Database.begin_atomic()
Notmuch::Database.end_atomic()
2011-09-24 15:43:43 +03:00
Ali Polatel
a08aa32b44 ruby: Rename destroy to destroy!
According to the common Ruby function naming convention, potentially
dangerous functions or functions which operate on the object itself are
suffixed with an exclamation mark. Both of these are true for object
destroying functions.

The following modules are affected:
- Notmuch::Directory
- Notmuch::FileNames
- Notmuch::Query
- Notmuch::Threads
- Notmuch::Thread
- Notmuch::Messages
- Notmuch::Message
- Notmuch::Tags
2011-09-24 15:25:24 +03:00
Ali Polatel
20aa9b1b7e ruby: Fix typo in documentation
It's Notmuch::FileNames not Notmuch::Filenames
2011-07-29 09:45:16 +03:00
Ali Polatel
e213439cdc ruby: Remove the split file hack from rdoc.sh 2011-07-29 09:44:44 +03:00
Ali Polatel
6ef8e018f8 ruby: Add markers to method definitions to help rdoc
rdoc is dumb and needs markers in method definitions so that she can
find which source file the method is defined in
2011-07-29 09:29:54 +03:00
Ali Polatel
666ef9f5f6 ruby: Document remaining undocumented constants 2011-07-29 09:16:12 +03:00
Ali Polatel
517faab24e ruby: Document constants and exceptions right before definition 2011-07-29 09:09:28 +03:00
Ali Polatel
00dfa0a17d ruby: Add list of classes to main documentation 2011-07-29 08:53:02 +03:00
Ali Polatel
ca69ce2397 ruby: Add generated files to .gitignore 2011-02-03 01:40:38 +02:00
Ali Polatel
90a66779e1 ruby: Add wrapper for message_get_filenames 2011-01-25 12:03:41 +02:00
Ali Polatel
02369d031c ruby: Add wrappers for maildir sync. interface
New wrappers:
notmuch_message_maildir_flags_to_tags(): MESSAGE.maildir_flags_to_tags
notmuch_message_tags_to_maildir_flags(): MESSAGE.tags_to_maildir_flags
2011-01-25 12:03:37 +02:00
Ali Polatel
ed38940323 ruby: Add wrappers for query_get_s{ort,tring}
New wrappers:
notmuch_query_get_sort(): QUERY.sort
notmuch_query_get_query_string(): QUERY.to_s
2011-01-25 12:03:32 +02:00
Ali Polatel
5c9e385591 ruby: Don't barf if an object is destroyed more than once
Raise RuntimeError instead.
Also revise Notmuch::Database a bit.
Add Notmuch::Database.open singleton method.
2010-06-06 09:18:00 +03:00
Ali Polatel
d2a457a5d8 ruby: Use rb_scan_args() 2010-06-06 09:17:57 +03:00
Ali Polatel
c7893408bb ruby: Kill garbage collection related cruft.
Let the user destroy objects that she wants explicitly.
It's not possible to specify the order objects are garbage collected.
See id:86y6f8v838.fsf@harikalardiyari.ev on ruby-talk for more
information.
2010-06-06 09:17:47 +03:00
Ali Polatel
35925e6e5b ruby: First attempt at fixing gc for ruby-1.9 2010-06-06 09:17:30 +03:00
Ali Polatel
8312e7efea ruby: fix documentation of DB.upgrade! 2010-06-06 09:17:06 +03:00
Ali Polatel
06bf04500b Initial ruby bindings 2010-06-06 09:16:53 +03:00