unofficial mirror of guile-user@gnu.org 
 help / color / mirror / Atom feed
* [ANN] Guile-ICS 0.2.0 released
@ 2017-12-25 15:28 Artyom V. Poptsov
  0 siblings, 0 replies; only message in thread
From: Artyom V. Poptsov @ 2017-12-25 15:28 UTC (permalink / raw
  To: Guile Users' Mailing List

[-- Attachment #1: Type: text/plain, Size: 3412 bytes --]

Hello Guilers,

I'm pleased to announce Guile-ICS 0.2.0:
  https://github.com/artyom-poptsov/guile-ics/releases/tag/v0.2.0

Please find the package signed with my GPG key[1] here:
  - ftp://memory-heap.org/software/guile-ics/guile-ics-0.2.0.tar.gz
  - ftp://memory-heap.org/software/guile-ics/guile-ics-0.2.0.tar.gz.sig

Guile-ICS was mostly re-written with GOOPS and now has basic support of
iCalendar property value types.  The API is not compatible with previous
versions so if you want to use the library in your application -- please
take a closer look into documentation and the examples.

Also the release includes a bugfix that removes a bogus dependency on
'guile-lib' added by a mistake.

For full list of user-visible changes see the excerpt from the NEWS file
below.


* What is Guile-ICS?

Guile-ICS is an iCalendar format RFC5545 [2] parser for GNU Guile.


* Usage examples

Let's suppose you have a file named 'example.ics' with the following
content:

--8<---------------cut here---------------start------------->8---
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//hacksw/handcal//NONSGML v1.0//EN
BEGIN:VEVENT
UID:19970610T172345Z-AF23B2@example.com
DTSTAMP:19970610T172345Z
DTSTART:19970714T170000Z
DTEND:19970715T040000Z
SUMMARY:Bastille Day Party
END:VEVENT
END:VCALENDAR
--8<---------------cut here---------------end--------------->8---

Here's an example of how we can get the "SUMMARY" property value from
this:

--8<---------------cut here---------------start------------->8---
(use-modules (ics)
             (ics type object)
             (ics type property))

(let* ((port       (open-input-file "example.ics"))
       (ics-object (car (ics->scm port)))
       (vevent     (car (ics-object-components ics-object))))
  (ics-property-value (ics-object-property-ref vevent "SUMMARY")))
=> Bastille Day Party
--8<---------------cut here---------------end--------------->8---

For more usage examples see the 'examples' directory in the
distribution.  Namely I would recommend to take a look on 'fosdem.scm'
example which can be used to get various information from FOSDEM
schedule.


* The list of user-visible changes

Here's the list of user-visible changes (an excerpt from NEWS file):

--8<---------------cut here---------------start------------->8---
* Changes in version 0.2.0 (2017-12-25)
** The library is mostly re-written with GOOPS
   Now most of the API is object-oriented.
** Added support for iCalendar property value types
** New features
*** The library now supports lists of values (RFC 5545, 3.1.1.)
*** The library now handles escaped chars in TEXT values (RFC 5545, 3.3.11)
** Bugfixes
*** Remove bogus dependency on 'guile-lib'
    There was an extra dependency on (scheme documentation) module
    that I overlooked in the previous release, which is now removed.
** Added the project logo
** Documentation is updated
** Examples are updated
** Unit tests updated; new tests added
--8<---------------cut here---------------end--------------->8---

Happy hacking!

- Artyom

[1] https://pgp.mit.edu/pks/lookup?search=0x0898A02F&op=index
[2] https://tools.ietf.org/html/rfc5545

-- 
Artyom V. Poptsov <poptsov.artyom@gmail.com>
Home page: http://poptsov-artyom.narod.ru/
CADR Hackerspace co-founder: https://cadrspace.ru/
GPG: D0C2 EAC1 3310 822D 98DE  B57C E9C5 A2D9 0898 A02F

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2017-12-25 15:28 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-12-25 15:28 [ANN] Guile-ICS 0.2.0 released Artyom V. Poptsov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).