zimbra 0.0.4 → 0.0.5

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 (53) hide show
  1. data/.gitignore +4 -0
  2. data/.irbrc +6 -0
  3. data/Gemfile +6 -0
  4. data/README +3 -2
  5. data/Rakefile +1 -0
  6. data/lib/zimbra.rb +31 -6
  7. data/lib/zimbra/appointment.rb +274 -0
  8. data/lib/zimbra/appointment/alarm.rb +101 -0
  9. data/lib/zimbra/appointment/attendee.rb +97 -0
  10. data/lib/zimbra/appointment/invite.rb +360 -0
  11. data/lib/zimbra/appointment/recur_exception.rb +83 -0
  12. data/lib/zimbra/appointment/recur_rule.rb +184 -0
  13. data/lib/zimbra/appointment/reply.rb +91 -0
  14. data/lib/zimbra/calendar.rb +27 -0
  15. data/lib/zimbra/delegate_auth_token.rb +49 -0
  16. data/lib/zimbra/ext/hash.rb +72 -0
  17. data/lib/zimbra/extra/date_helpers.rb +111 -0
  18. data/lib/zimbra/folder.rb +100 -0
  19. data/lib/zimbra/handsoap_account_service.rb +44 -0
  20. data/lib/zimbra/handsoap_service.rb +1 -1
  21. data/lib/zimbra/version.rb +3 -0
  22. data/spec/fixtures/xml_api_requests/appointments/create.xml +84 -0
  23. data/spec/fixtures/xml_api_responses/alarms/15_minutes_before.xml +26 -0
  24. data/spec/fixtures/xml_api_responses/alarms/using_all_intervals.xml +26 -0
  25. data/spec/fixtures/xml_api_responses/appointments/appointment_response_1.xml +40 -0
  26. data/spec/fixtures/xml_api_responses/attendees/one_attendee_and_one_reply.xml +27 -0
  27. data/spec/fixtures/xml_api_responses/attendees/three_attendees_response_1.xml +30 -0
  28. data/spec/fixtures/xml_api_responses/multiple_invites/recurring_with_exceptions.xml +109 -0
  29. data/spec/fixtures/xml_api_responses/recur_rules/day_27_of_every_2_months.xml +27 -0
  30. data/spec/fixtures/xml_api_responses/recur_rules/every_2_days.xml +26 -0
  31. data/spec/fixtures/xml_api_responses/recur_rules/every_3_weeks_on_tuesday_and_friday.xml +30 -0
  32. data/spec/fixtures/xml_api_responses/recur_rules/every_day_50_instances.xml +27 -0
  33. data/spec/fixtures/xml_api_responses/recur_rules/every_monday_wednesday_friday.xml +31 -0
  34. data/spec/fixtures/xml_api_responses/recur_rules/every_tuesday.xml +29 -0
  35. data/spec/fixtures/xml_api_responses/recur_rules/every_weekday_with_end_date.xml +34 -0
  36. data/spec/fixtures/xml_api_responses/recur_rules/every_year_on_february_2.xml +28 -0
  37. data/spec/fixtures/xml_api_responses/recur_rules/first_day_of_every_month.xml +36 -0
  38. data/spec/fixtures/xml_api_responses/recur_rules/first_monday_of_every_february.xml +31 -0
  39. data/spec/fixtures/xml_api_responses/recur_rules/first_weekend_day_of_every_month.xml +31 -0
  40. data/spec/fixtures/xml_api_responses/recur_rules/last_day_of_every_month.xml +36 -0
  41. data/spec/fixtures/xml_api_responses/recur_rules/second_day_of_every_2_months.xml +36 -0
  42. data/spec/fixtures/xml_api_responses/recur_rules/second_wednesday_of_every_month.xml +29 -0
  43. data/spec/fixtures/xml_api_responses/recur_rules/weekly_with_an_exception.xml +44 -0
  44. data/spec/spec_helper.rb +32 -0
  45. data/spec/zimbra/acl_spec.rb +11 -0
  46. data/spec/zimbra/appointment/alarm_spec.rb +33 -0
  47. data/spec/zimbra/appointment/invite_spec.rb +62 -0
  48. data/spec/zimbra/appointment/recur_rule_spec.rb +307 -0
  49. data/spec/zimbra/appointment_spec.rb +175 -0
  50. data/spec/zimbra/common_elements_spec.rb +33 -0
  51. data/spec/zimbra/distribution_list_spec.rb +54 -0
  52. data/zimbra.gemspec +28 -0
  53. metadata +165 -68
@@ -0,0 +1,175 @@
1
+ require File.join(File.dirname(__FILE__),'../spec_helper')
2
+ require 'json'
3
+
4
+ describe Zimbra::Appointment do
5
+ describe ".parse_zimbra_attributes" do
6
+ before do
7
+ @xml_api_responses_path = File.join(@fixture_path, 'xml_api_responses', 'recur_rules')
8
+ xml = File.read(File.join(@xml_api_responses_path, 'second_wednesday_of_every_month.xml'))
9
+ @appointment_hash = Zimbra::Hash.from_xml(xml)
10
+ end
11
+
12
+ it "should return all the attributes" do
13
+ Zimbra::Appointment.parse_zimbra_attributes(@appointment_hash).should == {:id=>518, :uid=>"1c71d474-5c1f-4048-84e3-9725c0825a44", :revision=>27656, :calendar_id=>10, :size=>0, :replies=>nil, :invites_attributes=>{:attributes=>{:id=>517, :seq=>4, :compNum=>0, :type=>"appt"}, :tz=>{:attributes=>{:id=>"America/New_York", :stdoff=>-300, :stdname=>"EST", :dayoff=>-240, :dayname=>"EDT"}, :standard=>{:attributes=>{:wkday=>1, :min=>0, :sec=>0, :mon=>11, :hour=>2, :week=>1}}, :daylight=>{:attributes=>{:wkday=>1, :min=>0, :sec=>0, :mon=>3, :hour=>2, :week=>2}}}, :comp=>{:attributes=>{:uid=>"1c71d474-5c1f-4048-84e3-9725c0825a44", :d=>1387571704000, :status=>"CONF", :noBlob=>1, :ciFolder=>10, :isOrg=>1, :class=>"PUB", :loc=>"", :compNum=>0, :apptId=>518, :url=>"", :fb=>"B", :calItemId=>518, :x_uid=>"1c71d474-5c1f-4048-84e3-9725c0825a44", :name=>"Test2222", :seq=>4, :rsvp=>0, :fba=>"B", :method=>"PUBLISH", :transp=>"O"}, :alarm=>{:attributes=>{:action=>"DISPLAY"}, :trigger=>{:rel=>{:attributes=>{:neg=>1, :m=>5, :related=>"START"}}}, :desc=>{}}, :or=>{:attributes=>{:d=>"Mail03", :a=>"mail03@greenviewdata.com", :url=>"mail03@greenviewdata.com"}}, :recur=>{:add=>{:rule=>{:attributes=>{:freq=>"MON"}, :interval=>{:attributes=>{:ival=>1}}, :byday=>{:wkday=>{:attributes=>{:ordwk=>2, :day=>"WE"}}}}}}, :s=>{:attributes=>{:u=>1355340600000, :d=>"20121212T143000", :tz=>"America/New_York"}}, :e=>{:attributes=>{:u=>1355344200000, :d=>"20121212T153000", :tz=>"America/New_York"}}}}, :date=>1387571704000, :loaded_from_search=>nil}
14
+ end
15
+ end
16
+
17
+ describe "#recurrence_rule" do
18
+ before do
19
+ @xml_api_responses_path = File.join(@fixture_path, 'xml_api_responses', 'recur_rules')
20
+ @appointment = new_appointment_from_xml(File.join(@xml_api_responses_path, 'second_wednesday_of_every_month.xml'))
21
+ end
22
+
23
+ it "should set the recurrence rule" do
24
+ @appointment.invites.first.recurrence_rule.to_hash.should == {:frequency=>:monthly, :interval=>1, :by_day=>[{:day=>:wednesday, :week_number=>2}]}
25
+ end
26
+ end
27
+
28
+ describe "#create_xml" do
29
+ before do
30
+ @xml_api_responses_path = File.join(@fixture_path, 'xml_api_responses', 'multiple_invites')
31
+ @appointment = new_appointment_from_xml(File.join(@xml_api_responses_path, 'recurring_with_exceptions.xml'))
32
+ end
33
+
34
+ it "should return the xml document to create this appointment" do
35
+ document = Handsoap::XmlMason::Document.new do |doc|
36
+ doc.add "CreateAppointmentRequest" do |create_appointment_request|
37
+ @appointment.create_xml(create_appointment_request)
38
+ end
39
+ end
40
+ #File.open(File.join(@fixture_path, 'xml_api_requests', 'appointments', 'create.xml'), 'w') do |io|
41
+ # io.write document.to_s
42
+ #end
43
+ document.to_s.should == File.read(File.join(@fixture_path, 'xml_api_requests', 'appointments', 'create.xml'))
44
+ end
45
+ end
46
+
47
+ context "from recurring_with_exceptions.xml" do
48
+ before do
49
+ @xml_api_responses_path = File.join(@fixture_path, 'xml_api_responses', 'multiple_invites')
50
+ @appointment = new_appointment_from_xml(File.join(@xml_api_responses_path, 'recurring_with_exceptions.xml'))
51
+ end
52
+
53
+ describe "#invites" do
54
+ it "should initialize 5 invites" do
55
+ @appointment.invites.count.should == 5
56
+ end
57
+ end
58
+ end
59
+
60
+ context "from one_attendee_and_one_reply.xml" do
61
+ before do
62
+ @xml_api_responses_path = File.join(@fixture_path, 'xml_api_responses', 'attendees')
63
+ @appointment = new_appointment_from_xml(File.join(@xml_api_responses_path, 'one_attendee_and_one_reply.xml'))
64
+ end
65
+
66
+ describe "#replies" do
67
+ it "should load one reply" do
68
+ @appointment.replies.map(&:to_hash).should == [
69
+ {
70
+ :sequence_number=>1,
71
+ :date=>Time.parse("2014-01-21 09:33:56 -0500"),
72
+ :email_address=>"mail03@greenviewdata.com",
73
+ :participation_status=>:tentative,
74
+ :sent_by=>nil,
75
+ :recurrence_range_type=>nil,
76
+ :recurrence_id=>nil,
77
+ :timezone=>nil,
78
+ :recurrence_id_utc=>nil
79
+ }
80
+ ]
81
+ end
82
+ end
83
+
84
+ describe "#attendees" do
85
+ it "should load one attendee" do
86
+ @appointment.invites.first.attendees.map(&:to_hash).should == [
87
+ {:email_address=>"mail03@greenviewdata.com", :friendly_name=>"Mail03", :rsvp=>1, :role=>"REQ", :participation_status=>:tentative}
88
+ ]
89
+ end
90
+ end
91
+ end
92
+
93
+ context "from three_attendees_response_1.xml appointment" do
94
+ before do
95
+ @xml_api_responses_path = File.join(@fixture_path, 'xml_api_responses', 'attendees')
96
+ @appointment = new_appointment_from_xml(File.join(@xml_api_responses_path, 'three_attendees_response_1.xml'))
97
+ end
98
+
99
+ describe "#replies" do
100
+ it "should set two replies" do
101
+ @appointment.replies.count.should == 2
102
+ end
103
+
104
+ it "should set the reply attributes" do
105
+ @appointment.replies.map(&:to_hash).should == [
106
+ {
107
+ :sequence_number=>1,
108
+ :date=>Time.parse("2014-01-21 09:33:56 -0500"),
109
+ :email_address=>"mail03@greenviewdata.com",
110
+ :participation_status=>:tentative,
111
+ :sent_by=>nil,
112
+ :recurrence_range_type=>nil,
113
+ :recurrence_id=>nil,
114
+ :timezone=>nil,
115
+ :recurrence_id_utc=>nil
116
+ },
117
+ {
118
+ :sequence_number=>1,
119
+ :date=>Time.parse("2014-01-21 09:33:56 -0500"),
120
+ :email_address=>"mail04@greenviewdata.com",
121
+ :participation_status=>:tentative,
122
+ :sent_by=>nil,
123
+ :recurrence_range_type=>nil,
124
+ :recurrence_id=>nil,
125
+ :timezone=>nil,
126
+ :recurrence_id_utc=>nil
127
+ }
128
+ ]
129
+ end
130
+ end
131
+
132
+ describe "#attendees" do
133
+ it "should make three attendee objects" do
134
+ @appointment.invites.first.attendees.count.should == 3
135
+ end
136
+
137
+ it "should set the attendee attributes" do
138
+ @appointment.invites.first.attendees.map(&:to_hash).should == [
139
+ {:email_address=>"mail03@greenviewdata.com", :friendly_name=>"Mail03", :rsvp=>1, :role=>"REQ", :participation_status=>:tentative},
140
+ {:email_address=>"mail04@greenviewdata.com", :friendly_name=>"Test", :rsvp=>1, :role=>"REQ", :participation_status=>:needs_action},
141
+ {:email_address=>"mail01b@greenviewdata.com", :friendly_name=>"Test", :rsvp=>1, :role=>"REQ", :participation_status=>:needs_action}
142
+ ]
143
+ end
144
+ end
145
+
146
+ describe "#alarm" do
147
+ it "should set the alarm" do
148
+ @appointment.invites.first.alarm.to_hash.should == {
149
+ :duration_negative=>true, :weeks=>nil, :days=>nil, :hours=>nil, :minutes=>5, :seconds=>nil, :when=>:start, :repeat_count=>nil
150
+ }
151
+ end
152
+ end
153
+
154
+ describe "basic asttributes" do
155
+ it "should set the id" do
156
+ @appointment.id.should == 261
157
+ end
158
+ it "should set the uid" do
159
+ @appointment.uid.should == '8c62a78e-f48d-4f5e-8cc8-ba5f621d7ae8'
160
+ end
161
+ it "should set the revision" do
162
+ @appointment.revision.should == 4425
163
+ end
164
+ it "should set the date" do
165
+ @appointment.date.should == Time.parse("2014-01-21 09:04:13 -0500")
166
+ end
167
+ it "should set the calendar_id" do
168
+ @appointment.calendar_id.should == 10
169
+ end
170
+ it "should set the size" do
171
+ @appointment.size.should == 0
172
+ end
173
+ end
174
+ end
175
+ end
@@ -0,0 +1,33 @@
1
+ require File.join(File.dirname(__FILE__),'../spec_helper')
2
+
3
+ describe Zimbra::A do
4
+ describe 'read' do
5
+ it 'should read a single attribute and return its value' do
6
+ doc = zimbra_soap_doc(<<XML)
7
+ <n2:item>
8
+ <n2:a n="foobar">44</n2:a>
9
+ <n2:a n="testAttr">23</n2:a>
10
+ </n2:item>
11
+ XML
12
+ a = Zimbra::A.read(doc, 'testAttr')
13
+ a.should =~ /23/
14
+ a.should_not =~ /44/
15
+ end
16
+ it 'should read multiple attributes and return an array of values' do
17
+ thritytwofootsteps = zimbra_soap_doc(<<XML)
18
+ <n2:item>
19
+ <n2:a n="foobar">44</n2:a>
20
+ <n2:a n="testAttr">28</n2:a>
21
+ <n2:a n="testAttr">29</n2:a>
22
+ <n2:a n="testAttr">30</n2:a>
23
+ <n2:a n="testAttr">31</n2:a>
24
+ </n2:item>
25
+ XML
26
+ attrs = Zimbra::A.read(thritytwofootsteps, 'testAttr')
27
+ attrs.should_not be_empty
28
+ attrs = attrs.join('')
29
+ attrs.should =~ /28.*29.*30.*31/
30
+ attrs.should_not =~ /44/
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,54 @@
1
+ require File.join(File.dirname(__FILE__),'../spec_helper')
2
+
3
+ describe Zimbra::DistributionList do
4
+ describe 'members' do
5
+ it 'should be an empty array by default' do
6
+ dl = Zimbra::DistributionList.new
7
+ dl.members.should be_empty
8
+ end
9
+ it 'should be assigned an array of email addresses' do
10
+ dl = Zimbra::DistributionList.new(:members => ['a@b.com','b@c.com'])
11
+ dl.members.should == ['a@b.com','b@c.com']
12
+ dl.members = ['c@d.com']
13
+ dl.members.should == ['c@d.com']
14
+ end
15
+ end
16
+ describe 'new_members' do
17
+ it 'should only list members that were added' do
18
+ dl = Zimbra::DistributionList.new(:members => ['a@b.com','b@c.com'])
19
+ dl.members << 'd@e.com'
20
+ dl.new_members.should == ['d@e.com']
21
+ end
22
+ it 'should list all members added to a list that originally had no members' do
23
+ dl = Zimbra::DistributionList.new
24
+ dl.members << 'a@b.com' << 'b@c.com'
25
+ dl.new_members.should == ['a@b.com','b@c.com']
26
+ end
27
+ it 'should not list deleted members' do
28
+ dl = Zimbra::DistributionList.new(:members => ['a@b.com','b@c.com'])
29
+ dl.members.shift
30
+ dl.members << 'c@d.com'
31
+ dl.new_members.should == ['c@d.com']
32
+ end
33
+ end
34
+ describe 'removed_members' do
35
+ it 'should only list members that were removed' do
36
+ dl = Zimbra::DistributionList.new(:members => ['a@b.com','b@c.com'])
37
+ dl.members.shift
38
+ dl.removed_members.should == ['a@b.com']
39
+ end
40
+ it 'should not list added members' do
41
+ dl = Zimbra::DistributionList.new(:members => ['a@b.com','b@c.com'])
42
+ dl.members.shift
43
+ dl.members << 'c@d.com'
44
+ dl.removed_members.should == ['a@b.com']
45
+ end
46
+ it 'should always report empty if a record was created without any members' do
47
+ dl = Zimbra::DistributionList.new()
48
+ dl.members = ['a@b.com','b@c.com']
49
+ dl.members.shift
50
+ dl.members << 'c@d.com'
51
+ dl.removed_members.should be_empty
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,28 @@
1
+ # encoding: utf-8
2
+
3
+ $:.push File.expand_path("../lib", __FILE__)
4
+ require "zimbra/version"
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = "zimbra"
8
+ s.version = Zimbra::VERSION
9
+
10
+ s.authors = ["Derek Kastner","Matt Wilson","Philippe Green","Greenview Data, Inc."]
11
+ s.date = '2009-11-18'
12
+ s.description = 'Interface to Zimbra management API'
13
+ s.summary = %q{SOAP Interface to Zimbra}
14
+ s.email = %q{development@greenviewdata.com}
15
+ s.homepage = "https://github.com/gdi/ruby-zimbra"
16
+
17
+ s.files = `git ls-files`.split("\n")
18
+ s.test_files = `git ls-files -- spec/*`.split("\n")
19
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
20
+ s.require_paths = ["lib"]
21
+
22
+ s.required_ruby_version = '>= 1.9.2'
23
+
24
+ s.add_development_dependency "rspec"
25
+ s.add_runtime_dependency 'curb'
26
+ s.add_runtime_dependency 'nokogiri'
27
+ s.add_runtime_dependency 'handsoap'
28
+ end
metadata CHANGED
@@ -1,104 +1,201 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: zimbra
3
- version: !ruby/object:Gem::Version
4
- hash: 23
5
- prerelease: false
6
- segments:
7
- - 0
8
- - 0
9
- - 4
10
- version: 0.0.4
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.5
5
+ prerelease:
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Derek Kastner
14
9
  - Matt Wilson
10
+ - Philippe Green
11
+ - Greenview Data, Inc.
15
12
  autorequire:
16
13
  bindir: bin
17
14
  cert_chain: []
18
-
19
- date: 2009-11-18 00:00:00 -05:00
20
- default_executable:
21
- dependencies:
22
- - !ruby/object:Gem::Dependency
15
+ date: 2009-11-18 00:00:00.000000000 Z
16
+ dependencies:
17
+ - !ruby/object:Gem::Dependency
23
18
  name: rspec
24
- prerelease: false
25
- requirement: &id001 !ruby/object:Gem::Requirement
19
+ requirement: !ruby/object:Gem::Requirement
26
20
  none: false
27
- requirements:
28
- - - ">="
29
- - !ruby/object:Gem::Version
30
- hash: 3
31
- segments:
32
- - 0
33
- version: "0"
21
+ requirements:
22
+ - - ! '>='
23
+ - !ruby/object:Gem::Version
24
+ version: '0'
34
25
  type: :development
35
- version_requirements: *id001
36
- - !ruby/object:Gem::Dependency
37
- name: handsoap
38
26
  prerelease: false
39
- requirement: &id002 !ruby/object:Gem::Requirement
27
+ version_requirements: !ruby/object:Gem::Requirement
40
28
  none: false
41
- requirements:
42
- - - ">="
43
- - !ruby/object:Gem::Version
44
- hash: 3
45
- segments:
46
- - 0
47
- version: "0"
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ - !ruby/object:Gem::Dependency
34
+ name: curb
35
+ requirement: !ruby/object:Gem::Requirement
36
+ none: false
37
+ requirements:
38
+ - - ! '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
48
41
  type: :runtime
49
- version_requirements: *id002
42
+ prerelease: false
43
+ version_requirements: !ruby/object:Gem::Requirement
44
+ none: false
45
+ requirements:
46
+ - - ! '>='
47
+ - !ruby/object:Gem::Version
48
+ version: '0'
49
+ - !ruby/object:Gem::Dependency
50
+ name: nokogiri
51
+ requirement: !ruby/object:Gem::Requirement
52
+ none: false
53
+ requirements:
54
+ - - ! '>='
55
+ - !ruby/object:Gem::Version
56
+ version: '0'
57
+ type: :runtime
58
+ prerelease: false
59
+ version_requirements: !ruby/object:Gem::Requirement
60
+ none: false
61
+ requirements:
62
+ - - ! '>='
63
+ - !ruby/object:Gem::Version
64
+ version: '0'
65
+ - !ruby/object:Gem::Dependency
66
+ name: handsoap
67
+ requirement: !ruby/object:Gem::Requirement
68
+ none: false
69
+ requirements:
70
+ - - ! '>='
71
+ - !ruby/object:Gem::Version
72
+ version: '0'
73
+ type: :runtime
74
+ prerelease: false
75
+ version_requirements: !ruby/object:Gem::Requirement
76
+ none: false
77
+ requirements:
78
+ - - ! '>='
79
+ - !ruby/object:Gem::Version
80
+ version: '0'
50
81
  description: Interface to Zimbra management API
51
- email: derek@vedit.com mwilson@vedit.com
82
+ email: development@greenviewdata.com
52
83
  executables: []
53
-
54
84
  extensions: []
55
-
56
85
  extra_rdoc_files: []
57
-
58
- files:
86
+ files:
87
+ - .gitignore
88
+ - .irbrc
89
+ - Gemfile
59
90
  - README
91
+ - Rakefile
92
+ - lib/zimbra.rb
60
93
  - lib/zimbra/account.rb
61
94
  - lib/zimbra/acl.rb
95
+ - lib/zimbra/appointment.rb
96
+ - lib/zimbra/appointment/alarm.rb
97
+ - lib/zimbra/appointment/attendee.rb
98
+ - lib/zimbra/appointment/invite.rb
99
+ - lib/zimbra/appointment/recur_exception.rb
100
+ - lib/zimbra/appointment/recur_rule.rb
101
+ - lib/zimbra/appointment/reply.rb
62
102
  - lib/zimbra/auth.rb
103
+ - lib/zimbra/calendar.rb
63
104
  - lib/zimbra/common_elements.rb
64
105
  - lib/zimbra/cos.rb
106
+ - lib/zimbra/delegate_auth_token.rb
65
107
  - lib/zimbra/distribution_list.rb
66
108
  - lib/zimbra/domain.rb
109
+ - lib/zimbra/ext/hash.rb
110
+ - lib/zimbra/extra/date_helpers.rb
111
+ - lib/zimbra/folder.rb
112
+ - lib/zimbra/handsoap_account_service.rb
67
113
  - lib/zimbra/handsoap_service.rb
68
- - lib/zimbra.rb
69
- has_rdoc: true
70
- homepage:
114
+ - lib/zimbra/version.rb
115
+ - spec/fixtures/xml_api_requests/appointments/create.xml
116
+ - spec/fixtures/xml_api_responses/alarms/15_minutes_before.xml
117
+ - spec/fixtures/xml_api_responses/alarms/using_all_intervals.xml
118
+ - spec/fixtures/xml_api_responses/appointments/appointment_response_1.xml
119
+ - spec/fixtures/xml_api_responses/attendees/one_attendee_and_one_reply.xml
120
+ - spec/fixtures/xml_api_responses/attendees/three_attendees_response_1.xml
121
+ - spec/fixtures/xml_api_responses/multiple_invites/recurring_with_exceptions.xml
122
+ - spec/fixtures/xml_api_responses/recur_rules/day_27_of_every_2_months.xml
123
+ - spec/fixtures/xml_api_responses/recur_rules/every_2_days.xml
124
+ - spec/fixtures/xml_api_responses/recur_rules/every_3_weeks_on_tuesday_and_friday.xml
125
+ - spec/fixtures/xml_api_responses/recur_rules/every_day_50_instances.xml
126
+ - spec/fixtures/xml_api_responses/recur_rules/every_monday_wednesday_friday.xml
127
+ - spec/fixtures/xml_api_responses/recur_rules/every_tuesday.xml
128
+ - spec/fixtures/xml_api_responses/recur_rules/every_weekday_with_end_date.xml
129
+ - spec/fixtures/xml_api_responses/recur_rules/every_year_on_february_2.xml
130
+ - spec/fixtures/xml_api_responses/recur_rules/first_day_of_every_month.xml
131
+ - spec/fixtures/xml_api_responses/recur_rules/first_monday_of_every_february.xml
132
+ - spec/fixtures/xml_api_responses/recur_rules/first_weekend_day_of_every_month.xml
133
+ - spec/fixtures/xml_api_responses/recur_rules/last_day_of_every_month.xml
134
+ - spec/fixtures/xml_api_responses/recur_rules/second_day_of_every_2_months.xml
135
+ - spec/fixtures/xml_api_responses/recur_rules/second_wednesday_of_every_month.xml
136
+ - spec/fixtures/xml_api_responses/recur_rules/weekly_with_an_exception.xml
137
+ - spec/spec_helper.rb
138
+ - spec/zimbra/acl_spec.rb
139
+ - spec/zimbra/appointment/alarm_spec.rb
140
+ - spec/zimbra/appointment/invite_spec.rb
141
+ - spec/zimbra/appointment/recur_rule_spec.rb
142
+ - spec/zimbra/appointment_spec.rb
143
+ - spec/zimbra/common_elements_spec.rb
144
+ - spec/zimbra/distribution_list_spec.rb
145
+ - zimbra.gemspec
146
+ homepage: https://github.com/gdi/ruby-zimbra
71
147
  licenses: []
72
-
73
148
  post_install_message:
74
149
  rdoc_options: []
75
-
76
- require_paths:
150
+ require_paths:
77
151
  - lib
78
- required_ruby_version: !ruby/object:Gem::Requirement
152
+ required_ruby_version: !ruby/object:Gem::Requirement
79
153
  none: false
80
- requirements:
81
- - - ">="
82
- - !ruby/object:Gem::Version
83
- hash: 3
84
- segments:
85
- - 0
86
- version: "0"
87
- required_rubygems_version: !ruby/object:Gem::Requirement
154
+ requirements:
155
+ - - ! '>='
156
+ - !ruby/object:Gem::Version
157
+ version: 1.9.2
158
+ required_rubygems_version: !ruby/object:Gem::Requirement
88
159
  none: false
89
- requirements:
90
- - - ">="
91
- - !ruby/object:Gem::Version
92
- hash: 3
93
- segments:
94
- - 0
95
- version: "0"
160
+ requirements:
161
+ - - ! '>='
162
+ - !ruby/object:Gem::Version
163
+ version: '0'
96
164
  requirements: []
97
-
98
165
  rubyforge_project:
99
- rubygems_version: 1.3.7
166
+ rubygems_version: 1.8.25
100
167
  signing_key:
101
- specification_version: 2
168
+ specification_version: 3
102
169
  summary: SOAP Interface to Zimbra
103
- test_files: []
104
-
170
+ test_files:
171
+ - spec/fixtures/xml_api_requests/appointments/create.xml
172
+ - spec/fixtures/xml_api_responses/alarms/15_minutes_before.xml
173
+ - spec/fixtures/xml_api_responses/alarms/using_all_intervals.xml
174
+ - spec/fixtures/xml_api_responses/appointments/appointment_response_1.xml
175
+ - spec/fixtures/xml_api_responses/attendees/one_attendee_and_one_reply.xml
176
+ - spec/fixtures/xml_api_responses/attendees/three_attendees_response_1.xml
177
+ - spec/fixtures/xml_api_responses/multiple_invites/recurring_with_exceptions.xml
178
+ - spec/fixtures/xml_api_responses/recur_rules/day_27_of_every_2_months.xml
179
+ - spec/fixtures/xml_api_responses/recur_rules/every_2_days.xml
180
+ - spec/fixtures/xml_api_responses/recur_rules/every_3_weeks_on_tuesday_and_friday.xml
181
+ - spec/fixtures/xml_api_responses/recur_rules/every_day_50_instances.xml
182
+ - spec/fixtures/xml_api_responses/recur_rules/every_monday_wednesday_friday.xml
183
+ - spec/fixtures/xml_api_responses/recur_rules/every_tuesday.xml
184
+ - spec/fixtures/xml_api_responses/recur_rules/every_weekday_with_end_date.xml
185
+ - spec/fixtures/xml_api_responses/recur_rules/every_year_on_february_2.xml
186
+ - spec/fixtures/xml_api_responses/recur_rules/first_day_of_every_month.xml
187
+ - spec/fixtures/xml_api_responses/recur_rules/first_monday_of_every_february.xml
188
+ - spec/fixtures/xml_api_responses/recur_rules/first_weekend_day_of_every_month.xml
189
+ - spec/fixtures/xml_api_responses/recur_rules/last_day_of_every_month.xml
190
+ - spec/fixtures/xml_api_responses/recur_rules/second_day_of_every_2_months.xml
191
+ - spec/fixtures/xml_api_responses/recur_rules/second_wednesday_of_every_month.xml
192
+ - spec/fixtures/xml_api_responses/recur_rules/weekly_with_an_exception.xml
193
+ - spec/spec_helper.rb
194
+ - spec/zimbra/acl_spec.rb
195
+ - spec/zimbra/appointment/alarm_spec.rb
196
+ - spec/zimbra/appointment/invite_spec.rb
197
+ - spec/zimbra/appointment/recur_rule_spec.rb
198
+ - spec/zimbra/appointment_spec.rb
199
+ - spec/zimbra/common_elements_spec.rb
200
+ - spec/zimbra/distribution_list_spec.rb
201
+ has_rdoc: