Commit graph

315 commits

Author SHA1 Message Date
ae5c4cf9ba Fix: view entries sorted 2018-04-13 13:41:02 +02:00
aa32dd1ec2 Add debugging output if kairos fails to parse input 2018-03-23 10:05:58 +01:00
835c003491
Merge pull request #1360 from matthiasbeyer/libimaghabit/create-vs-retrieve
Fix: Use retrieve in retrieve variant
2018-03-23 10:03:52 +01:00
30233456df Fix: Use retrieve in retrieve variant 2018-03-22 21:34:00 +01:00
b62d7eab85 Fix: libimaghabit::habit::HabitTemplate should link created instances to the template 2018-03-22 21:32:58 +01:00
c857f97287
Merge pull request #1357 from matthiasbeyer/libimaghabit/create-vs-retrieve
Libimaghabit/create vs retrieve
2018-03-22 21:20:26 +01:00
247b9499a7 Refactor for less verbose code 2018-03-22 14:00:10 +01:00
2232f0153f Dedup code 2018-03-22 13:54:15 +01:00
964b168f18 Add "retrieve" variants for retrieving instances
and fix create implementation to use `Store::create()`, which did the
wrong thing.
2018-03-22 13:51:12 +01:00
45fdeb4e18 Add helper to check whether an instance exists for a date 2018-03-22 13:44:41 +01:00
5d9fd7ab10 Simplify error handling by using linking feature of error-chain 2018-03-12 19:21:48 +01:00
e8ae2fb73e Add type so that we can serialize a Vcard 2018-03-12 17:45:50 +01:00
65d558727e Change ref creation to use UID from vcard object 2018-03-12 14:43:02 +01:00
252046583a
Merge pull request #1332 from matthiasbeyer/libimagcontact/all-contacts
Implement ContactStore::all_contacts()
2018-03-12 14:17:54 +01:00
8a9b2e9a8f Fix: use Path::file_stem() instead of Path::file_name()
Because we don't want to know the extension of the filename here.
2018-03-12 13:30:31 +01:00
3bf1b6ccec Implement ContactStore::all_contacts() 2018-03-12 12:52:24 +01:00
8c37fb865a Rebuild DiaryEntryIterator to be based on StoreIdIterator
This patch rebuilds DiaryEntryIterator to be a wrapper around
StoreIdIterator and thus `Diary::entries()` to use `Store::entries` and
not `Store::retrieve_for_module()`.

The `Store::retrieve_for_module()` function is somehow buggy and loads
contents of the files into memory and _somehow_ causes the entries to be
rewritten without newlines.

This bug is fixed by moving away from `Store::retrieve_for_module()`.
2018-03-02 21:25:48 +01:00
Dylan DPC
e7a5e73d25 Update Cargo.toml 2018-02-26 17:04:53 +05:30
b2048b3dcf
Merge pull request #1306 from matthiasbeyer/minor
Minor patches
2018-02-20 20:23:41 +01:00
404e9deed2 Add some debug output 2018-02-20 17:29:03 +01:00
585261d468 Add "isflag" support 2018-02-20 17:18:46 +01:00
b9b15957fc Merge branch 'libimagmail/rewrite-libimagref-api-usage' into libimagentryref/refactor 2018-02-19 12:17:48 +01:00
672873c2f1 Make UniqueContactPathGenerator pub 2018-02-19 12:15:39 +01:00
719daf952b Refactor libimagcontact for new libimagentryref API 2018-02-19 12:15:39 +01:00
30ad7d89b1 Reimplement libimagmail for new libimagentryref interface 2018-02-19 12:15:22 +01:00
2b26db70ed Make HabitBuilder derive Debug 2018-02-18 20:03:50 +01:00
50b0ffa6ae Remove calls to trace_error_exit() 2018-02-12 21:19:48 +01:00
4a4e528aed Refactor error handling
Refactor error handling so we do chain the error with the `?`
operator rather than wrapping it with own types.

Links to other error chains are created with error chain. All unneeded
error kinds were removed.

No API changes.
2018-02-11 23:44:27 +01:00
77be32d80f Remove "get" iterator, store provides this now 2018-02-11 23:44:27 +01:00
30d2c28a22 Update version string: 0.6.0 -> 0.7.0 2018-02-11 14:22:24 +01:00
3b710e082d Add missing Cargo.toml metadata 2018-02-10 14:11:46 +01:00
d5a9e4930d Update dates in license header
And add missing header in one file
2018-02-07 02:48:53 +01:00
29e88c5de0 Fix: Header entry setting
The header was not set properly. This fixes this bug.
2018-02-06 20:42:43 +01:00
346e5a9444 Add link to toml_query error types 2018-02-06 20:42:43 +01:00
e2e3b4f6e2 Update kairos dependency: 0.1.0-beta-2 -> 0.1.0 2018-02-05 16:20:05 +01:00
da0c1fa594 Rewrite From<> implementations for habit iterators
to be generic over all iterators over StoreIds, so they can be build
directly from them.
2018-02-01 16:46:38 +01:00
4d94791b1f Move date <-> string conversion utility to libimagutil 2018-02-01 09:26:33 +01:00
635d000344 log: 0.4.0-rc.1 -> 0.4.0 2018-01-15 11:21:52 +01:00
f209e12410 Update dependency: log: 0.3.* -> 0.4.0-rc.1 2018-01-15 11:20:07 +01:00
13ff09d8c6 libimagtodo: Replace read with typed read 2018-01-13 01:14:03 +01:00
397f79b238 libimagtimetrack: Replace read with typed read 2018-01-13 01:14:03 +01:00
cb0cb21220 libimagnotes: Replace read with typed read 2018-01-13 01:14:03 +01:00
014b54ad4e libimaglog: Replace read with typed read 2018-01-13 01:14:03 +01:00
f2b72f4738 libimaghabit: Replace read with typed read 2018-01-13 01:14:03 +01:00
46774d765b libimagdiary: Replace read with typed read 2018-01-13 01:14:03 +01:00
0c4be78223 Update dependency: toml-query -> 0.6 2018-01-13 01:14:03 +01:00
9a9701fce5 Add flag settings/Contact::is_contact in libimagcontact 2018-01-08 23:46:36 +01:00
1f133eac3b Use libimagentryutil::isa::Is in libimaghabit 2018-01-08 23:31:10 +01:00
80c460dac9 Transform BookmarkCollection into two traits
One trait is implemented on the Store, it retrieves BookmarkCollection
objects.
The other is implemented on `libimagstore::store::Entry` which then
represents a BookmarkCollection.
2018-01-08 15:16:14 +01:00
c0f4a20367
Merge pull request #1200 from matthiasbeyer/refactor-matching-into-command-chaining
Refactor matching into command chaining
2018-01-05 15:19:32 +01:00
2c0f35e1a4
Merge pull request #1195 from matthiasbeyer/libimagdiary/support-seconds
Add second-support in libimagdiary
2018-01-05 13:54:12 +01:00
dd66936e48 Refactoring: Use function chaining rather than matching 2018-01-05 11:37:09 +01:00
a386d50df3 Refactoring: Use function chaining rather than matching 2018-01-05 11:37:09 +01:00
e7d5e9ebc2 Refactoring: Use function chaining rather than matching 2018-01-05 11:37:09 +01:00
4bb0d0f073 Refactor: Use function chaining instead of matching 2018-01-05 11:37:09 +01:00
dbd9a2faaf Replace matching with function chaining 2018-01-05 11:37:09 +01:00
c1ff2b14f0 Replace matching with function chaining 2018-01-05 11:37:09 +01:00
57cf5003bd Move common functionality to utility module 2018-01-05 11:37:09 +01:00
0640bdeb73 Add second-support in libimagdiary 2018-01-04 19:39:07 +01:00
af819f0fca Remove unneeded "mut" 2018-01-04 19:34:21 +01:00
198e304be9 Initial import of libimaglog implementation 2017-12-25 21:55:04 +01:00
92d4a0237e Initial import: libimaglog 2017-12-25 21:46:04 +01:00
3c8dd19d11 Update version strings: 0.5.0 -> 0.6.0 2017-12-25 19:17:07 +01:00
0ed636bb06 Refactor libimagrt+libimagstore to pass whole configuration object
Before we extracted the store configuration from the configuration
toml::Value object and passed it to the store.

This is unecessary overhead.

Now we pass the whole configuration object and let the store extract the
required values.
2017-12-24 13:52:18 +01:00
840bc86c90
Merge pull request #1178 from matthiasbeyer/libimaghabit/fix-until
Fix: Until date is still optional
2017-12-22 14:39:41 +01:00
6246d25c9d Fix: Until date is still optional 2017-12-22 13:20:11 +01:00
09c9eb6090
Merge pull request #1175 from matthiasbeyer/libimaghabit/remove-unused
libimaghabit: Remove unused things
2017-12-22 12:29:50 +01:00
9bf4b9604b Remove unused variables 2017-12-22 11:03:42 +01:00
90ed0c0e10 Remove unused macro import 2017-12-22 11:02:55 +01:00
96b51280ab Remove unused imports 2017-12-22 11:01:35 +01:00
cd8f0beae8 Add until-date support 2017-12-22 10:59:27 +01:00
ddf703eaa0 Add HabitTemplate::next_instance_date_after()
Rewrite HabitTemplate::next_instance_date() to use the new function
2017-12-19 19:13:12 +01:00
6f244a52ff Add function to instantiate with a given date
Use that function in the `create_instance()` function which was renamed
to `create_instance_today()`.
2017-12-19 19:13:04 +01:00
13e9ee3ffa Add Habit::next_instance_date() 2017-12-08 14:54:49 +01:00
f81faa3f6a Make "util" pub 2017-12-08 14:54:49 +01:00
999bdf8d0d Add HabitTemplate::linked_instances() function 2017-12-08 14:54:49 +01:00
3b319fd4f0 Add HabitInstanceStoreIdIterator::new 2017-12-08 14:54:49 +01:00
30e05d21f9 Add debugging output 2017-12-08 14:54:49 +01:00
90a4139ede Make builder consuming 2017-12-08 14:54:49 +01:00
dc7a315176 Getter for all instances 2017-12-08 14:54:45 +01:00
b181b488a2 Add extension to check whether an Entry or a StoreId points to a habit instance/template 2017-12-08 14:54:45 +01:00
9af2f34b58 Outsource instance id creation to helper fn 2017-12-08 14:54:45 +01:00
6a13567efc dependency: kairos: beta-1 -> beta-2 2017-12-08 14:54:45 +01:00
0ffbb2ef1a Add kairos error chain integration 2017-12-08 14:54:45 +01:00
2c655daa39 Add IsValidHabitObj helper trait 2017-12-08 14:54:45 +01:00
6b33fc9e6f Update kairos: master -> 0.1.0-beta-1 2017-12-08 14:54:45 +01:00
a6a36455f5 Add recur spec with kairos support 2017-12-08 14:54:41 +01:00
42cabffa64 Implement HabitInstance for Entry 2017-12-08 14:54:41 +01:00
533d97532b Move date-string conversion utils to util module 2017-12-08 14:54:40 +01:00
a71c9281ec Initial import 2017-12-08 14:54:40 +01:00
167511afec Fix formatting and adjust module/lib documentation
Also add symlink in module implementation to lib-documentation.
2017-12-08 14:54:40 +01:00
04d5af8d50 Switch to upstream rust-vobject 2017-11-09 11:21:17 +01:00
dfbc69400a Let ContactData be unpacked and derefd 2017-10-31 19:10:11 +01:00
4fa41faa59 Add iterator for contacts 2017-10-31 19:10:11 +01:00
b05c8c6f6d Replace search_contact() with all_contacts()
We can then use filters to filter out the non relevant ones.
2017-10-31 19:10:11 +01:00
f3d75e97b6 Rely on own clone of rust-vobject 2017-10-31 19:10:10 +01:00
12e8657eb9 Add Contact::is_contact() 2017-10-31 19:09:43 +01:00
f2bd241a59 Add error for header type error 2017-10-31 19:09:43 +01:00
aae19221b6 Impl Contact::get_contact_data() 2017-10-31 19:09:43 +01:00
ce5e7f5252 Impl Store::create_from_path() 2017-10-31 19:09:43 +01:00
c14c19483c Add lib internal utilities 2017-10-31 19:09:43 +01:00
577f8d313a Add more error links 2017-10-31 19:09:43 +01:00
04182f5cb6 Add initial layout of code 2017-10-31 19:09:43 +01:00
eaa9ad5993 Add basic documentation on how the lib works 2017-10-31 19:09:43 +01:00
434505f1f0 Initial import of libimagcontact 2017-10-31 19:09:41 +01:00
f82ad2b6d1 Replace uses of try!() macro with "?" operator 2017-10-31 15:04:50 +01:00
29c9ad71b5 Replace uses of try!() macro with "?" operator 2017-10-31 15:04:50 +01:00
a44d79093c Replace uses of try!() macro with "?" operator 2017-10-31 15:04:50 +01:00
e758a28c9e Replace uses of try!() macro with "?" operator 2017-10-31 15:04:50 +01:00
a20871eb5e Add badges in Cargo.toml of all crates 2017-10-31 15:03:30 +01:00
ea618ee3c7 Remove unused variable 2017-10-31 15:03:30 +01:00
b237adfe19 Fix calls to Runtime::config() to use direct result 2017-10-31 09:25:14 +01:00
758166637b Update toml-query: 0.3.* -> 0.4
This update is needed for the error-chain update, as the toml-query
0.4.0 release also bumps this dependency.
2017-10-12 22:13:04 +02:00
663242db7e Update dependency: error-chain: 0.10 -> 0.11 2017-10-12 22:12:27 +02:00
013e82f04f Update dependency: filters: 0.1 -> 0.2 2017-10-12 19:48:01 +02:00
67a127f700 Update dependency: itertools: 0.6 -> 0.7 2017-10-12 19:45:50 +02:00
643db0df3a Remove libimagcounter / imag-counter 2017-09-28 22:41:23 +02:00
046eb5eca3 Merge pull request #1108 from matthiasbeyer/libimagentryref/refactor-errors
Refactor errors to use error-chain linking functionality
2017-09-24 15:23:04 +02:00
2ce75251d9 Adjust for new error linking setup in libimagentryref 2017-09-24 13:05:16 +02:00
73f6016221 Update version strings: 0.4.0 -> 0.5.0 2017-09-24 13:05:01 +02:00
da4d670cbc Base IsInDiary::is_in_diary() on StoreId::is_in_collection(), which is tested 2017-09-20 18:48:55 +02:00
162b36d6ee Update dependency specs
Most notably:

* env_logger: 0.4 -> 0.5
* hoedown: 5.0.0 -> 6.0.0
* itertools: 0.5 -> 0.6
* lazy_static: 0.1.15 -> 0.2
* regex: 0.1 -> 0.2
* semver: 0.5 -> 0.8
* url: 1.2 -> 1.5
* uuid: 0.3 -> 0.5

(This list is most surely not complete)
2017-09-19 17:16:19 +02:00
94855fb722 Refactor libimagdiary
To not wrap types anymore, but rather use extension traits for extending
all the things.
2017-09-15 13:53:16 +02:00
976f280511 Update toml-query: 0.3.* -> ^0.3.1
This release contains a bugfix for a critical bug in the
`TomlValueInsertExt::insert()` algorithm which was triggered by an
edgecase.
2017-09-06 19:30:32 +02:00
c115215fa4 Merge branch 'master' into libimagerror/integration
This merge solved a _LOT_ of conflicts and was a rather complicated one,
as parts of the conflict-resolution involved rewriting of half the
stuff.

This merge commit fixes all the things so a `cargo check --all`
succeeds, but I did not yet check whether tests run without failure.
2017-09-04 23:02:45 +02:00
6d1dab3117 Merge pull request #1029 from matthiasbeyer/all-extensions-as-traits
All extensions as traits
2017-09-04 21:59:54 +02:00
39dd9e8d7c Add Task trait for getting UUID from task 2017-09-04 09:20:14 +02:00
72ea21ee1f Rename module task -> taskstore 2017-09-04 09:20:14 +02:00
18e806f588 Remove dedicated result modules, use error chain generated Result types 2017-09-04 09:19:29 +02:00
7ce44e8090 Remove "IntoError" trait, use error_chain functionality 2017-09-03 21:34:07 +02:00
936a314efa libimagtodo: Rewrite error handling 2017-09-03 21:33:54 +02:00
a5bb7a9bec libimagtimetrack: Rewrite error handling 2017-09-03 21:33:54 +02:00
22cff91653 libimagmail: Rewrite error handling 2017-09-03 21:33:54 +02:00
677a5e8886 libimagdiary: Rewrite error handling 2017-09-03 21:33:54 +02:00
31dc0eebc2 libimagcounter: Rewrite error handling 2017-09-03 21:33:54 +02:00
c9dbf76395 libimagbookmark: Rewrite error handling 2017-09-03 21:33:54 +02:00
0b068df84e libimagnotes: Rewrite error handling 2017-09-03 21:33:54 +02:00
603808a9fa Impl IntoError for error kinds 2017-09-03 15:42:06 +02:00
a309fdb280 Add recursion limits to crates 2017-09-03 15:42:06 +02:00
11d881d3a9 Add dependency to crates: error_chain = 0.10 2017-09-03 15:42:06 +02:00
e77d353c52 Rewrite macros to do error-chain behind the scenes 2017-09-03 15:42:03 +02:00
Mario Krehl
58a2729da0 Changed Task trait to TaskStore trait, implemented for the Store instead of the FileLockEntry 2017-09-02 14:30:27 +02:00
Mario Krehl
f3bb6d02d0 Change the Task(FileLockEntry) type to a trait 2017-09-02 12:23:29 +02:00
048517a3c2 Fix readme links in cargo metadata 2017-09-01 18:48:02 +02:00
21c15ca207 Adapt imag-diary to compile with the new libimagdiary API 2017-09-01 11:04:07 +02:00
31fa07d43a Add another small helper 2017-09-01 11:04:07 +02:00
95b7da1ed2 Impl Entry (now DiaryEntry) as trait 2017-09-01 11:04:06 +02:00
9c69645b69 Implement Diary as trait 2017-09-01 11:04:06 +02:00
7e4275c420 Remove unused crate import 2017-08-31 20:56:13 +02:00
9a9a3f2f43 Merge branch 'libimagstore/remove-unused' into integrate-remove-unused
The merge conflicts which were resolved may roll back some changes from
the merged branch (unknowingly).

These will be fixed in the next commits
2017-08-31 20:56:08 +02:00
991fd7c3d4 Remove unused variable 2017-08-31 10:57:19 +02:00
ac804bd839 Remove unused keyword "mut" where not needed 2017-08-31 10:57:11 +02:00
ae5255c7c7 Remove unused crate imports
This patch removes unused crate imports reported by newer rust versions.

Some crates were only required for tests, some only for tests with
macro_import - these things were fixed with feature gates.
2017-08-31 10:56:15 +02:00
6d40797a07 Fix libimagmail to use new libimagentryref interface 2017-08-28 14:32:50 +02:00
c987130cc1 Merge pull request #1018 from matthiasbeyer/remove-toml-ext
Remove toml ext
2017-08-28 14:10:40 +02:00
c0c62bd1b5 Change crates to use toml-query crate 2017-08-28 12:22:37 +02:00
75e42d2f0b Fix errors (former warnings) in several crates
This fixes errors (former warnings) in several locations.
2017-08-27 20:08:03 +02:00
286de656df Handle UTF-8 Errors by returning 2017-08-27 20:08:03 +02:00
7a7ea5c211 Add debug messages 2017-08-27 20:08:03 +02:00
d0f8002682 Ensure deny() for warnings is in all crates 2017-08-27 20:08:03 +02:00
9081a2d58d Fix libimag(entry)ref name 2017-08-27 18:57:59 +02:00
ef93cf0243 libimagentrytimetrack -> libimagtimetrack
This is actually a domain library and thus should be put into the
lib/domain/ folder.
2017-08-27 18:23:47 +02:00
2fcead5f53 Fix broken README symlinks
Along: Add files in documentation for modules that not yet had one.
2017-08-27 15:13:25 +02:00
Mario Krehl
8a63815854 Fix package name of libimagentryannotation
Fix: run `sed -i 's,libimagref,libimagentryref,g' (rg -l 'libimagref')`
Fix: run `sed -i 's,libimagannotation,libimagentryannotation,g' (rg -l 'libimagannotation')`
2017-08-27 15:13:25 +02:00
59a3662ac4 Reorganize code in subdirs 2017-08-27 15:12:09 +02:00