revolution 0.2 → 0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. data/revolution.c +137 -89
  2. metadata +1 -1
@@ -1,14 +1,9 @@
1
1
  #include <stdio.h>
2
-
3
2
  #include "ruby.h"
4
-
5
- #include "glib.h"
6
- #include <glib-object.h>
7
-
8
3
  #include <libebook/e-book.h>
9
4
  #include <libecal/e-cal.h>
10
5
 
11
- VALUE crRevolution;
6
+ VALUE cRevolution;
12
7
  VALUE module;
13
8
 
14
9
  /*
@@ -61,23 +56,25 @@ void copy_uid(const VALUE ruby_obj, ECalComponent* ev_obj) {
61
56
 
62
57
  ///////////////////////////////////////////////////////
63
58
  // Tasks
64
- VALUE crEvTask;
59
+ VALUE cTask;
65
60
 
66
61
  /*
67
62
  * call-seq:
68
- * new() -> EvTask
63
+ * new() -> Task
69
64
  *
70
- * Creates a new EvTask object
65
+ * Creates a new Task object
66
+ *
67
+ * Attributes:
68
+ * @uid - a unique id for this task
69
+ * @summary
70
+ * @description
71
+ * @start - the start Time
72
+ * @due - the due Time
73
+ * @status - 'Not started', 'In progress', 'Completed', 'Cancelled'
74
+ * @priority - 'Low', 'Medium', 'High', or nil
75
+ * @last_modification - Time of last modification
71
76
  */
72
77
  static VALUE evTask_init(VALUE self) {
73
- rb_define_attr(crEvTask, "uid", 1, 0);
74
- rb_define_attr(crEvTask, "summary", 1, 0);
75
- rb_define_attr(crEvTask, "description", 1, 0);
76
- rb_define_attr(crEvTask, "start", 1, 0);
77
- rb_define_attr(crEvTask, "due", 1, 0);
78
- rb_define_attr(crEvTask, "status", 1, 0);
79
- rb_define_attr(crEvTask, "priority", 1, 0);
80
- rb_define_attr(crEvTask, "last_modification", 1, 0);
81
78
  return Qtrue;
82
79
  }
83
80
 
@@ -172,7 +169,7 @@ static VALUE revolution_get_all_tasks(VALUE self) {
172
169
 
173
170
  for (l = objects; l;l = l->next) {
174
171
  ECalComponent *ev_task = E_CAL_COMPONENT (l->data);
175
- VALUE ruby_task = rb_class_new_instance(0, 0, crEvTask);
172
+ VALUE ruby_task = rb_class_new_instance(0, 0, cTask);
176
173
  copy_into_task(ruby_task, ev_task);
177
174
  rb_ary_push(result, ruby_task);
178
175
  g_object_unref (ev_task);
@@ -183,26 +180,27 @@ static VALUE revolution_get_all_tasks(VALUE self) {
183
180
 
184
181
  ///////////////////////////////////////////////////////
185
182
  // Calendar
186
- VALUE crEvAppointment;
183
+ VALUE cAppointment;
187
184
 
188
185
  /*
189
186
  * call-seq:
190
- * new() -> EvAppointment
187
+ * new() -> Appointment
191
188
  *
192
- * Creates a new EvAppointment object
189
+ * Creates a new Appointment object
190
+ *
191
+ * Attributes:
192
+ * @uid - a unique id for this task
193
+ * @summary
194
+ * @location
195
+ * @organizer
196
+ * @start - start Time
197
+ * @end - end Time
198
+ * @alarm_set - is an alarm set for this appointment
199
+ * @busy_status
200
+ * @recurring - is this appointment recurring
201
+ * @last_modification
193
202
  */
194
203
  static VALUE evAppointment_init(VALUE self) {
195
- rb_define_attr(crEvAppointment, "uid", 1, 0);
196
- rb_define_attr(crEvAppointment, "summary", 1, 0);
197
- rb_define_attr(crEvAppointment, "location", 1, 0);
198
- rb_define_attr(crEvAppointment, "organizer", 1, 0);
199
- rb_define_attr(crEvAppointment, "start", 1, 0);
200
- rb_define_attr(crEvAppointment, "end", 1, 0);
201
- rb_define_attr(crEvAppointment, "last_modification", 1, 0);
202
- rb_define_attr(crEvAppointment, "alarm_set", 1, 0);
203
- rb_define_attr(crEvAppointment, "busy_status", 1, 0);
204
- rb_define_attr(crEvAppointment, "recurring", 1, 0);
205
- // INLINE RUBY CODE define an "all_day" method
206
204
  return Qtrue;
207
205
  }
208
206
 
@@ -282,7 +280,7 @@ static VALUE revolution_get_all_appointments(VALUE self, VALUE start, VALUE end)
282
280
 
283
281
  for (l = results; l;l = l->next) {
284
282
  ECalComponent *ev_appt = E_CAL_COMPONENT(l->data);
285
- VALUE ruby_appt = rb_class_new_instance(0, 0, crEvAppointment);
283
+ VALUE ruby_appt = rb_class_new_instance(0, 0, cAppointment);
286
284
  copy_into_appt(ruby_appt, ev_appt);
287
285
  rb_ary_push(result, ruby_appt);
288
286
  g_object_unref (ev_appt);
@@ -296,69 +294,73 @@ static VALUE revolution_get_all_appointments(VALUE self, VALUE start, VALUE end)
296
294
 
297
295
  ///////////////////////////////////////////////////////
298
296
  // Address Book
299
- VALUE crEvContact;
300
- VALUE crEvContactAddress;
301
- VALUE crEvContactIMAddress;
297
+ VALUE cContact;
298
+ VALUE cContactAddress;
299
+ VALUE cContactIMAddress;
302
300
 
303
301
  /*
304
302
  * call-seq:
305
- * new() -> EvContact
303
+ * new() -> Contact
306
304
  *
307
- * Creates a new EvContact object
305
+ * Creates a new Contact object
306
+ *
307
+ * Attributes:
308
+ * @uid - the unique ID for this contact
309
+ * @first_name
310
+ * @last_name
311
+ * @email_addresses - a Hash of type->addr, i.e. 'HOME'->['tom@home.com', 'tom@bar.com']
312
+ * @birthday - a Time
313
+ * @home_phone
314
+ * @work_phone
315
+ * @mobile_phone
316
+ * @home_address - an ContactAddress object
317
+ * @work_address - an ContactAddress object
318
+ * @other_address - an ContactAddress object
319
+ * @organization - employee
320
+ * @title - job title
321
+ * @im_addresses - an Array of ContactIMAddress objects
308
322
  */
309
323
  static VALUE evContact_init(VALUE self) {
310
- rb_define_attr(crEvContact, "uid", 1, 0);
311
- rb_define_attr(crEvContact, "first_name", 1, 0);
312
- rb_define_attr(crEvContact, "last_name", 1, 0);
313
- rb_define_attr(crEvContact, "home_email", 1, 0);
314
- rb_define_attr(crEvContact, "work_email", 1, 0);
315
- rb_define_attr(crEvContact, "email_addresses", 1, 0);
316
- rb_define_attr(crEvContact, "birthday", 1, 0);
317
- rb_define_attr(crEvContact, "home_phone", 1, 0);
318
- rb_define_attr(crEvContact, "work_phone", 1, 0);
319
- rb_define_attr(crEvContact, "mobile_phone", 1, 0);
320
- rb_define_attr(crEvContact, "home_address", 1, 0);
321
- rb_define_attr(crEvContact, "work_address", 1, 0);
322
- rb_define_attr(crEvContact, "other_address", 1, 0);
323
- rb_define_attr(crEvContact, "organization", 1, 0);
324
- rb_define_attr(crEvContact, "title", 1, 0);
325
- rb_define_attr(crEvContact, "im_addresses", 1, 0);
326
324
  return Qtrue;
327
325
  }
328
326
 
329
327
  /*
330
328
  * call-seq:
331
- * new() -> EvContactIMAddress
329
+ * new() -> ContactIMAddress
332
330
  *
333
- * Creates a new EvContactIMAddress object
331
+ * Creates a new ContactIMAddress object
332
+ *
333
+ * Attributes:
334
+ * @provider - i.e., AOL, Yahoo
335
+ * @address - i.e., tom_copeland
336
+ * @type - HOME or WORK
334
337
  */
335
338
  static VALUE evContactIMAddress_init(VALUE self) {
336
- rb_define_attr(crEvContactIMAddress, "provider", 1, 0);
337
- rb_define_attr(crEvContactIMAddress, "location", 1, 0);
338
- rb_define_attr(crEvContactIMAddress, "address", 1, 0);
339
339
  return Qtrue;
340
340
  }
341
341
  /*
342
342
  * call-seq:
343
- * new() -> EvContactAddress
343
+ * new() -> ContactAddress
344
344
  *
345
- * Creates a new EvContactAddress object
345
+ * Creates a new ContactAddress object
346
+ *
347
+ * Attributes:
348
+ * @address_format
349
+ * @po - P.O. Box
350
+ * @ext
351
+ * @street
352
+ * @locality
353
+ * @region
354
+ * @code
355
+ * @country
346
356
  */
347
357
  static VALUE evContactAddress_init(VALUE self) {
348
- rb_define_attr(crEvContactAddress, "address_format", 1, 0);
349
- rb_define_attr(crEvContactAddress, "po", 1, 0);
350
- rb_define_attr(crEvContactAddress, "ext", 1, 0);
351
- rb_define_attr(crEvContactAddress, "street", 1, 0);
352
- rb_define_attr(crEvContactAddress, "locality", 1, 0);
353
- rb_define_attr(crEvContactAddress, "region", 1, 0);
354
- rb_define_attr(crEvContactAddress, "code", 1, 0);
355
- rb_define_attr(crEvContactAddress, "country", 1, 0);
356
358
  return Qtrue;
357
359
  }
358
360
 
359
361
  void copy_in_address(EContactAddress* address, VALUE ruby_contact, char* field) {
360
362
  if (address) {
361
- VALUE rb_addr = rb_class_new_instance(0, 0, crEvContactAddress);
363
+ VALUE rb_addr = rb_class_new_instance(0, 0, cContactAddress);
362
364
  rb_iv_set(rb_addr, "@address_format", address->address_format ? rb_str_new2(address->address_format) : Qnil);
363
365
  rb_iv_set(rb_addr, "@po", address->po ? rb_str_new2(address->po) : Qnil);
364
366
  rb_iv_set(rb_addr, "@ext", address->ext ? rb_str_new2(address->ext) : Qnil);
@@ -377,7 +379,7 @@ void copy_in_im_address(VALUE im_addresses, char* address, char* provider, char*
377
379
  if (!address) {
378
380
  return;
379
381
  }
380
- VALUE rb_addr = rb_class_new_instance(0, 0, crEvContactIMAddress);
382
+ VALUE rb_addr = rb_class_new_instance(0, 0, cContactIMAddress);
381
383
  rb_iv_set(rb_addr, "@provider", rb_str_new2(provider));
382
384
  rb_iv_set(rb_addr, "@location", rb_str_new2(location));
383
385
  rb_iv_set(rb_addr, "@address", rb_str_new2(address));
@@ -492,7 +494,7 @@ static VALUE revolution_get_all_contacts(VALUE self) {
492
494
  }
493
495
  for (l = results; l; l = l->next) {
494
496
  EContact* ev_contact = E_CONTACT(l->data);
495
- VALUE ruby_contact = rb_class_new_instance(0, 0, crEvContact);
497
+ VALUE ruby_contact = rb_class_new_instance(0, 0, cContact);
496
498
  copy_into_contact(ruby_contact, ev_contact);
497
499
  rb_ary_push(result, ruby_contact);
498
500
  g_object_unref(ev_contact);
@@ -510,24 +512,70 @@ static VALUE revolution_get_all_contacts(VALUE self) {
510
512
  void Init_revolution() {
511
513
  module = rb_define_module("Revolution");
512
514
 
513
- crEvContact = rb_define_class_under(module, "EvContact", rb_cObject);
514
- rb_define_method(crEvContact, "initialize", evContact_init, 0);
515
- crEvContactAddress = rb_define_class_under(module, "EvContactAddress", rb_cObject);
516
- rb_define_method(crEvContactAddress, "initialize", evContactAddress_init, 0);
517
- crEvContactIMAddress = rb_define_class_under(module, "EvContactIMAddress", rb_cObject);
518
- rb_define_method(crEvContactIMAddress, "initialize", evContactIMAddress_init, 0);
519
-
520
- crEvAppointment = rb_define_class_under(module, "EvAppointment", rb_cObject);
521
- rb_define_method(crEvAppointment, "initialize", evAppointment_init, 0);
522
-
523
- crEvTask = rb_define_class_under(module, "EvTask", rb_cObject);
524
- rb_define_method(crEvTask, "initialize", evTask_init, 0);
515
+ cContact = rb_define_class_under(module, "Contact", rb_cObject);
516
+ rb_define_attr(cContact, "uid", 1, 0);
517
+ rb_define_attr(cContact, "first_name", 1, 0);
518
+ rb_define_attr(cContact, "last_name", 1, 0);
519
+ rb_define_attr(cContact, "home_email", 1, 0);
520
+ rb_define_attr(cContact, "work_email", 1, 0);
521
+ rb_define_attr(cContact, "email_addresses", 1, 0);
522
+ rb_define_attr(cContact, "birthday", 1, 0);
523
+ rb_define_attr(cContact, "home_phone", 1, 0);
524
+ rb_define_attr(cContact, "work_phone", 1, 0);
525
+ rb_define_attr(cContact, "mobile_phone", 1, 0);
526
+ rb_define_attr(cContact, "home_address", 1, 0);
527
+ rb_define_attr(cContact, "work_address", 1, 0);
528
+ rb_define_attr(cContact, "other_address", 1, 0);
529
+ rb_define_attr(cContact, "organization", 1, 0);
530
+ rb_define_attr(cContact, "title", 1, 0);
531
+ rb_define_attr(cContact, "im_addresses", 1, 0);
532
+ rb_define_method(cContact, "initialize", evContact_init, 0);
533
+ cContactAddress = rb_define_class_under(module, "ContactAddress", rb_cObject);
534
+ rb_define_attr(cContactAddress, "address_format", 1, 0);
535
+ rb_define_attr(cContactAddress, "po", 1, 0);
536
+ rb_define_attr(cContactAddress, "ext", 1, 0);
537
+ rb_define_attr(cContactAddress, "street", 1, 0);
538
+ rb_define_attr(cContactAddress, "locality", 1, 0);
539
+ rb_define_attr(cContactAddress, "region", 1, 0);
540
+ rb_define_attr(cContactAddress, "code", 1, 0);
541
+ rb_define_attr(cContactAddress, "country", 1, 0);
542
+ rb_define_method(cContactAddress, "initialize", evContactAddress_init, 0);
543
+ cContactIMAddress = rb_define_class_under(module, "ContactIMAddress", rb_cObject);
544
+ rb_define_attr(cContactIMAddress, "provider", 1, 0);
545
+ rb_define_attr(cContactIMAddress, "location", 1, 0);
546
+ rb_define_attr(cContactIMAddress, "address", 1, 0);
547
+ rb_define_method(cContactIMAddress, "initialize", evContactIMAddress_init, 0);
548
+
549
+ cAppointment = rb_define_class_under(module, "Appointment", rb_cObject);
550
+ rb_define_attr(cAppointment, "uid", 1, 0);
551
+ rb_define_attr(cAppointment, "summary", 1, 0);
552
+ rb_define_attr(cAppointment, "location", 1, 0);
553
+ rb_define_attr(cAppointment, "organizer", 1, 0);
554
+ rb_define_attr(cAppointment, "start", 1, 0);
555
+ rb_define_attr(cAppointment, "end", 1, 0);
556
+ rb_define_attr(cAppointment, "last_modification", 1, 0);
557
+ rb_define_attr(cAppointment, "alarm_set", 1, 0);
558
+ rb_define_attr(cAppointment, "busy_status", 1, 0);
559
+ rb_define_attr(cAppointment, "recurring", 1, 0);
560
+ rb_define_method(cAppointment, "initialize", evAppointment_init, 0);
561
+ // INLINE RUBY CODE define an "all_day" method
525
562
 
526
- crRevolution = rb_define_class_under(module, "Revolution", rb_cObject);
527
- rb_define_method(crRevolution, "initialize", revolution_init, 0);
528
- rb_define_method(crRevolution, "get_all_contacts", revolution_get_all_contacts, 0);
529
- rb_define_method(crRevolution, "get_all_appointments", revolution_get_all_appointments, 2);
530
- rb_define_method(crRevolution, "get_all_tasks", revolution_get_all_tasks, 0);
563
+ cTask = rb_define_class_under(module, "Task", rb_cObject);
564
+ rb_define_attr(cTask, "uid", 1, 0);
565
+ rb_define_attr(cTask, "summary", 1, 0);
566
+ rb_define_attr(cTask, "description", 1, 0);
567
+ rb_define_attr(cTask, "start", 1, 0);
568
+ rb_define_attr(cTask, "due", 1, 0);
569
+ rb_define_attr(cTask, "status", 1, 0);
570
+ rb_define_attr(cTask, "priority", 1, 0);
571
+ rb_define_attr(cTask, "last_modification", 1, 0);
572
+ rb_define_method(cTask, "initialize", evTask_init, 0);
573
+
574
+ cRevolution = rb_define_class_under(module, "Revolution", rb_cObject);
575
+ rb_define_method(cRevolution, "initialize", revolution_init, 0);
576
+ rb_define_method(cRevolution, "get_all_contacts", revolution_get_all_contacts, 0);
577
+ rb_define_method(cRevolution, "get_all_appointments", revolution_get_all_appointments, 2);
578
+ rb_define_method(cRevolution, "get_all_tasks", revolution_get_all_tasks, 0);
531
579
 
532
580
  g_type_init();
533
581
  }
metadata CHANGED
@@ -3,7 +3,7 @@ rubygems_version: 0.8.4
3
3
  specification_version: 1
4
4
  name: revolution
5
5
  version: !ruby/object:Gem::Version
6
- version: "0.2"
6
+ version: "0.3"
7
7
  date: 2005-03-25
8
8
  summary: Revolution is a binding for the Evolution email client
9
9
  require_paths: