agcaldav 0.2.3 → 0.2.4
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.
- data/.rspec +1 -0
- data/README.md +6 -11
- data/Rakefile +6 -0
- data/agcaldav.gemspec +2 -0
- data/lib/agcaldav/client.rb +18 -4
- data/lib/agcaldav/version.rb +1 -1
- data/spec/agcaldav/client_spec.rb +23 -0
- data/spec/spec.opts +5 -0
- data/spec/spec_helper.rb +7 -0
- metadata +23 -2
data/.rspec
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--colour
|
data/README.md
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
#Ruby CalDAV library named "agcaldav"
|
2
2
|
**agcaldav is a CalDAV library based on martinpovolny/ruby-caldav and 4fthawaiian/ruby-caldav and collectiveidea/caldav**
|
3
3
|
|
4
|
+
**Please keep in mind, agcaldav ist still under heavy development and still not finished...**
|
5
|
+
|
4
6
|
##Usage Events
|
5
7
|
|
6
8
|
First, you've to install the gem
|
@@ -35,9 +37,6 @@ Analyze result:
|
|
35
37
|
>> result.class
|
36
38
|
=> Icalendar::Event
|
37
39
|
|
38
|
-
>> result.count
|
39
|
-
=> 1
|
40
|
-
|
41
40
|
|
42
41
|
get UID of this Event:
|
43
42
|
|
@@ -91,7 +90,7 @@ Have a look tomorrow...
|
|
91
90
|
|
92
91
|
|
93
92
|
|
94
|
-
|
93
|
+
##Work to be done ...
|
95
94
|
|
96
95
|
1. find and notify if overlapping events
|
97
96
|
2. code cleanup -> more ActiveRecord style
|
@@ -99,7 +98,7 @@ Have a look tomorrow...
|
|
99
98
|
|
100
99
|
|
101
100
|
|
102
|
-
|
101
|
+
##Testing
|
103
102
|
|
104
103
|
agcaldav will use RSpec for its test coverage. Inside the gem
|
105
104
|
directory, you can run the specs for RoR 3.x with:
|
@@ -109,21 +108,17 @@ directory, you can run the specs for RoR 3.x with:
|
|
109
108
|
|
110
109
|
|
111
110
|
|
112
|
-
|
111
|
+
##Licence
|
113
112
|
|
114
113
|
MIT
|
115
114
|
|
116
115
|
|
117
116
|
|
118
|
-
|
117
|
+
##Contributors
|
119
118
|
|
120
119
|
[Check all contributors][c]
|
121
120
|
|
122
121
|
|
123
|
-
|
124
|
-
Contributing
|
125
|
-
------------
|
126
|
-
|
127
122
|
1. Fork it.
|
128
123
|
2. Create a branch (`git checkout -b my_feature_branch`)
|
129
124
|
3. Commit your changes (`git commit -am "bugfixed abc..."`)
|
data/Rakefile
ADDED
data/agcaldav.gemspec
CHANGED
data/lib/agcaldav/client.rb
CHANGED
@@ -53,8 +53,13 @@ module AgCalDAV
|
|
53
53
|
result = ""
|
54
54
|
xml = REXML::Document.new(res.body)
|
55
55
|
REXML::XPath.each( xml, '//c:calendar-data/', {"c"=>"urn:ietf:params:xml:ns:caldav"} ){|c| result << c.text}
|
56
|
-
r = Icalendar.parse(result)
|
57
|
-
r.
|
56
|
+
r = Icalendar.parse(result)
|
57
|
+
unless r.empty?
|
58
|
+
# r.first.events.delete_at 0
|
59
|
+
r.first.events
|
60
|
+
else
|
61
|
+
return false
|
62
|
+
end
|
58
63
|
end
|
59
64
|
|
60
65
|
def find_event uuid
|
@@ -66,7 +71,13 @@ module AgCalDAV
|
|
66
71
|
}
|
67
72
|
errorhandling res
|
68
73
|
r = Icalendar.parse(res.body)
|
69
|
-
r.
|
74
|
+
unless r.empty?
|
75
|
+
r.first.events.first
|
76
|
+
else
|
77
|
+
return false
|
78
|
+
end
|
79
|
+
|
80
|
+
|
70
81
|
end
|
71
82
|
|
72
83
|
def delete_event uuid
|
@@ -86,12 +97,16 @@ module AgCalDAV
|
|
86
97
|
|
87
98
|
def create_event event
|
88
99
|
c = Calendar.new
|
100
|
+
c.events = []
|
89
101
|
uuid = UUID.new.generate
|
90
102
|
raise DuplicateError if entry_with_uuid_exists?(uuid)
|
91
103
|
c.event do
|
92
104
|
uid uuid
|
93
105
|
dtstart DateTime.parse(event[:start])
|
94
106
|
dtend DateTime.parse(event[:end])
|
107
|
+
categories event[:categories]# Array
|
108
|
+
contacts event[:contacts] # Array
|
109
|
+
attendees event[:attendees]# Array
|
95
110
|
duration event[:duration]
|
96
111
|
summary event[:title]
|
97
112
|
description event[:description]
|
@@ -100,7 +115,6 @@ module AgCalDAV
|
|
100
115
|
geo_location event[:geo_location]
|
101
116
|
status event[:status]
|
102
117
|
end
|
103
|
-
c.event.uid = uuid
|
104
118
|
cstring = c.to_ical
|
105
119
|
res = nil
|
106
120
|
http = Net::HTTP.new(@host, @port)
|
data/lib/agcaldav/version.rb
CHANGED
@@ -0,0 +1,23 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
require 'spec_helper'
|
3
|
+
require 'fakeweb'
|
4
|
+
|
5
|
+
require 'agcaldav'
|
6
|
+
|
7
|
+
describe AgCalDAV::Client do
|
8
|
+
|
9
|
+
before(:each) do
|
10
|
+
@c = AgCalDAV::Client.new(:uri => "http://localhost:5232/user/calendar", :user => "user" , :password => "")
|
11
|
+
end
|
12
|
+
|
13
|
+
it "check Class of new calendar" do
|
14
|
+
@c.class.to_s.should == "AgCalDAV::Client"
|
15
|
+
end
|
16
|
+
|
17
|
+
it "find one event" do
|
18
|
+
FakeWeb.register_uri(:any, "http://localhost:5232/user/calendar/3bb14b40-3654-0130-7d41-109add70606c.ics", :body => "BEGIN:VCALENDAR\nPRODID:-//Radicale//NONSGML Radicale Server//EN\nVERSION:2.0\nBEGIN:VEVENT\nDESCRIPTION:12345 12ss345\nDTEND:20130101T110000\nDTSTAMP:20130101T161708\nDTSTART:20130101T100000\nSEQUENCE:0\nSUMMARY:123ss45\nUID:3bb14b40-3654-0130-7d41-109add70606c\nX-RADICALE-NAME:3bb14b40-3654-0130-7d41-109add70606c.ics\nEND:VEVENT\nEND:VCALENDAR")
|
19
|
+
# r = @c.find_event("85fcbaa0-364f-0130-7d3e-109add70606c")
|
20
|
+
# r.should_not be_nil
|
21
|
+
# r.length.should == 1
|
22
|
+
end
|
23
|
+
end
|
data/spec/spec.opts
ADDED
data/spec/spec_helper.rb
ADDED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: agcaldav
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2013-01-01 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: icalendar
|
@@ -75,6 +75,22 @@ dependencies:
|
|
75
75
|
- - ! '>='
|
76
76
|
- !ruby/object:Gem::Version
|
77
77
|
version: '0'
|
78
|
+
- !ruby/object:Gem::Dependency
|
79
|
+
name: webmock
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
82
|
+
requirements:
|
83
|
+
- - ! '>='
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: '0'
|
86
|
+
type: :development
|
87
|
+
prerelease: false
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ! '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '0'
|
78
94
|
description: yet another great Ruby client for CalDAV calendar and tasks.
|
79
95
|
email: ebeling-hoppe@agilastic.de
|
80
96
|
executables: []
|
@@ -82,7 +98,9 @@ extensions: []
|
|
82
98
|
extra_rdoc_files: []
|
83
99
|
files:
|
84
100
|
- .gitignore
|
101
|
+
- .rspec
|
85
102
|
- README.md
|
103
|
+
- Rakefile
|
86
104
|
- agcaldav.gemspec
|
87
105
|
- lib/agcaldav.rb
|
88
106
|
- lib/agcaldav/client.rb
|
@@ -94,6 +112,9 @@ files:
|
|
94
112
|
- lib/agcaldav/request.rb
|
95
113
|
- lib/agcaldav/todo.rb
|
96
114
|
- lib/agcaldav/version.rb
|
115
|
+
- spec/agcaldav/client_spec.rb
|
116
|
+
- spec/spec.opts
|
117
|
+
- spec/spec_helper.rb
|
97
118
|
homepage: https://github.com/agilastic/agcaldav
|
98
119
|
licenses:
|
99
120
|
- MIT
|