rtunesu 0.2.4 → 0.3.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (120) hide show
  1. data/.gitignore +3 -0
  2. data/History.txt +0 -5
  3. data/README.txt +2 -2
  4. data/Rakefile +15 -2
  5. data/VERSION +1 -0
  6. data/lib/rtunesu/connection.rb +152 -54
  7. data/lib/rtunesu/document.rb +21 -26
  8. data/lib/rtunesu/entities/course.rb +4 -13
  9. data/lib/rtunesu/entities/division.rb +5 -12
  10. data/lib/rtunesu/entities/external_feed.rb +14 -0
  11. data/lib/rtunesu/entities/group.rb +5 -14
  12. data/lib/rtunesu/entities/permission.rb +1 -5
  13. data/lib/rtunesu/entities/section.rb +15 -11
  14. data/lib/rtunesu/entities/site.rb +6 -13
  15. data/lib/rtunesu/entities/template.rb +4 -0
  16. data/lib/rtunesu/entities/theme.rb +3 -15
  17. data/lib/rtunesu/entities/track.rb +12 -27
  18. data/lib/rtunesu/entity.rb +185 -74
  19. data/lib/rtunesu/log.rb +69 -0
  20. data/lib/rtunesu/subentities.rb +60 -0
  21. data/lib/rtunesu/user.rb +3 -1
  22. data/lib/rtunesu/version.rb +2 -2
  23. data/lib/rtunesu.rb +11 -6
  24. data/lib/show_tree.xml +7 -0
  25. data/spec/connection_spec.rb +6 -30
  26. data/spec/document_spec.rb +82 -8
  27. data/spec/entities/course_spec.rb +13 -40
  28. data/spec/entities/division_spec.rb +13 -3
  29. data/spec/entities/external_feed_spec.rb +21 -0
  30. data/spec/entities/group_spec.rb +14 -3
  31. data/spec/entities/permission_spec.rb +12 -3
  32. data/spec/entities/section_spec.rb +32 -3
  33. data/spec/entities/site_spec.rb +16 -3
  34. data/spec/entities/track_spec.rb +32 -3
  35. data/spec/entity_spec.rb +147 -86
  36. data/spec/fixtures/requests/create_course.xml +17 -0
  37. data/spec/fixtures/requests/create_division.xml +11 -0
  38. data/spec/fixtures/requests/create_group.xml +11 -0
  39. data/spec/fixtures/requests/create_section.xml +11 -0
  40. data/spec/fixtures/requests/delete_course.xml +8 -0
  41. data/spec/fixtures/requests/delete_group.xml +8 -0
  42. data/spec/fixtures/requests/delete_section.txt +8 -0
  43. data/spec/fixtures/requests/show_course.xml +8 -0
  44. data/spec/fixtures/requests/show_group.xml +8 -0
  45. data/spec/fixtures/requests/show_section.xml +8 -0
  46. data/spec/fixtures/requests/update_course.xml +10 -0
  47. data/spec/fixtures/requests/update_group.xml +9 -0
  48. data/spec/fixtures/requests/update_section.txt +10 -0
  49. data/spec/fixtures/responses/failure/create_course.xml +5 -0
  50. data/spec/fixtures/responses/failure/create_division.xml +5 -0
  51. data/spec/fixtures/responses/failure/create_group.xml +5 -0
  52. data/spec/fixtures/responses/failure/create_section.xml +5 -0
  53. data/spec/fixtures/responses/failure/delete_group.xml +5 -0
  54. data/spec/fixtures/responses/failure/show_course.xml +11 -0
  55. data/spec/fixtures/responses/failure/show_division.xml +11 -0
  56. data/spec/fixtures/responses/failure/show_group.xml +11 -0
  57. data/spec/fixtures/responses/failure/show_section.xml +11 -0
  58. data/spec/fixtures/responses/failure/show_site.xml +11 -0
  59. data/spec/fixtures/responses/failure/update_section.txt +5 -0
  60. data/spec/fixtures/responses/success/create_course.xml +5 -0
  61. data/spec/fixtures/responses/success/create_division.xml +5 -0
  62. data/spec/fixtures/responses/success/create_group.xml +5 -0
  63. data/spec/fixtures/responses/success/create_section.xml +5 -0
  64. data/spec/fixtures/responses/success/delete_course.xml +4 -0
  65. data/spec/fixtures/responses/success/delete_division.xml +4 -0
  66. data/spec/fixtures/responses/success/delete_group.xml +4 -0
  67. data/spec/fixtures/responses/success/delete_section.txt +4 -0
  68. data/spec/fixtures/responses/success/delete_section.xml +4 -0
  69. data/spec/fixtures/responses/success/show_course.xml +393 -0
  70. data/spec/fixtures/responses/success/show_division.xml +393 -0
  71. data/spec/fixtures/responses/success/show_group.xml +137 -0
  72. data/spec/fixtures/responses/success/show_section.xml +152 -0
  73. data/spec/fixtures/responses/success/show_site.xml +393 -0
  74. data/spec/fixtures/responses/success/update_course.xml +4 -0
  75. data/spec/fixtures/responses/success/update_division.xml +4 -0
  76. data/spec/fixtures/responses/success/update_group.xml +4 -0
  77. data/spec/fixtures/responses/success/update_section.txt +4 -0
  78. data/spec/fixtures/responses/success/update_section.xml +4 -0
  79. data/spec/fixtures/responses/success/update_site.xml +4 -0
  80. data/spec/spec_helper.rb +72 -7
  81. data/spec/token_generation_spec.rb +23 -0
  82. data/spec/user_spec.rb +3 -3
  83. metadata +81 -76
  84. data/Manifest.txt +0 -77
  85. data/config/hoe.rb +0 -76
  86. data/config/requirements.rb +0 -15
  87. data/lib/multipart.rb +0 -53
  88. data/spec/documents/add_spec.rb +0 -41
  89. data/spec/documents/delete_spec.rb +0 -30
  90. data/spec/documents/merge_spec.rb +0 -30
  91. data/spec/documents/show_tree_spec.rb +0 -16
  92. data/spec/fixtures/add_course.xml +0 -26
  93. data/spec/fixtures/add_division.xml +0 -26
  94. data/spec/fixtures/add_group.xml +0 -27
  95. data/spec/fixtures/add_permission.xml +0 -12
  96. data/spec/fixtures/add_section.xml +0 -34
  97. data/spec/fixtures/add_track.xml +0 -19
  98. data/spec/fixtures/delete_course.xml +0 -8
  99. data/spec/fixtures/delete_division.xml +0 -8
  100. data/spec/fixtures/delete_group.xml +0 -8
  101. data/spec/fixtures/delete_permission.xml +0 -9
  102. data/spec/fixtures/delete_section.xml +0 -8
  103. data/spec/fixtures/delete_track.xml +0 -7
  104. data/spec/fixtures/merge_course.xml +0 -38
  105. data/spec/fixtures/merge_division.xml +0 -47
  106. data/spec/fixtures/merge_group.xml +0 -29
  107. data/spec/fixtures/merge_permission.xml +0 -12
  108. data/spec/fixtures/merge_section.xml +0 -36
  109. data/spec/fixtures/merge_site.xml +0 -31
  110. data/spec/fixtures/merge_track.xml +0 -18
  111. data/spec/fixtures/requests/add_coures_request.xml +0 -0
  112. data/spec/fixtures/show_tree.xml +0 -273
  113. data/spec/fixtures/update_group.xml +0 -7
  114. data/tasks/deployment.rake +0 -34
  115. data/tasks/website.rake +0 -17
  116. data/website/index.html +0 -54
  117. data/website/index.txt +0 -7
  118. data/website/javascripts/rounded_corners_lite.inc.js +0 -285
  119. data/website/stylesheets/screen.css +0 -138
  120. data/website/template.html.erb +0 -48
@@ -1,273 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <ITunesUResponse>
3
- <Version>1.1.1</Version>
4
- <Site>
5
- <Name>Cupertino University</Name>
6
- <Handle>27361720</Handle>
7
- <AllowSubscription>true</AllowSubscription>
8
- <AggregateFileSize>2730354089</AggregateFileSize>
9
- <ThemeHandle>1133133900</ThemeHandle>
10
- <Permission>
11
- <Credential>Authenticated@urn:mace:itunesu.com:sites:
12
- adc.education.apple.com</Credential>
13
- <Access>Download</Access>
14
- </Permission>
15
- <Permission>
16
- <Credential>Administrator@urn:mace:itunesu.com:sites:
17
- adc.education.apple.com</Credential>
18
- <Access>Edit</Access>
19
- </Permission>
20
- <Permission>
21
- <Credential>All@urn:mace:itunesu.com:sites:
22
- adc.education.apple.com</Credential>
23
- <Access>No Access</Access>
24
- </Permission>
25
- <Permission>
26
- <Credential>Unauthenticated@urn:mace:itunesu.com:sites:
27
- adc.education.apple.com</Credential>
28
- <Access>No Access</Access>
29
- </Permission>
30
- <Permission>
31
- <Credential>Role@urn:mace:itunesu.com</Credential>
32
- <Access>No Access</Access>
33
- </Permission>
34
- <Section>
35
- <Name>Cupertino University Courses</Name>
36
- <Handle>27362003</Handle>
37
- <Course>
38
- <Name>ENG 350: Love and Despair in Poetry</Name>
39
- <Handle>27362036</Handle>
40
- <Instructor>Instructor: Jason Edison</Instructor>
41
- <Description>Explore the depths of human emotion through
42
- the power of verse.</Description>
43
- <Permission>
44
- <Credential>Unauthenticated@urn:mace:itunesu.com:sites:
45
- adc.education.apple.com</Credential>
46
- <Access>No Access</Access>
47
- </Permission>
48
- <CoverImage>
49
- <Handle>1312377200</Handle>
50
- <Shared>true</Shared>
51
- </CoverImage>
52
- <BannerImage>
53
- <Handle>28248104</Handle>
54
- <Shared>true</Shared>
55
- </BannerImage>
56
- <ThumbnailImage>
57
- <Handle>28248105</Handle>
58
- <Shared>true</Shared>
59
- </ThumbnailImage>
60
- <Group>
61
- <Name>Love</Name>
62
- <Handle>1250607352</Handle>
63
- <Permission>
64
- <Credential>Student@urn:mace:itunesu.com:sites:
65
- cupertino.edu</Credential>
66
- <Access>Download</Access>
67
- </Permission>
68
- <Track>
69
- <Name>Sonnet 55</Name>
70
- <Handle>1250054257</Handle>
71
- <Kind>song</Kind>
72
- <TrackNumber>0</TrackNumber>
73
- <DiscNumber>1</DiscNumber>
74
- <DurationMilliseconds>75000</DurationMilliseconds>
75
- <AlbumName>LiteralSystems.com Audio Books</AlbumName>
76
- <ArtistName>William Shakespeare</ArtistName>
77
- <DownloadURL>https://deimos.apple.com/WebObjects/
78
- Core.woa/DownloadTrack/adc.education.apple.com.
79
- 27362036.01250607352.1250054257</DownloadURL>
80
- <File>
81
- <Handle>1184601703</Handle>
82
- <Shared>true</Shared>
83
- </File>
84
- <Comment>LiteralSystems.com (c) 2004.
85
- Licensed to the public under
86
- http://creativecommons.org/licenses/by-nd-nc/1.0/</Comment>
87
- <CategoryCode>102108</CategoryCode>
88
- </Track>
89
- <AggregateFileSize>3865860</AggregateFileSize>
90
- </Group>
91
- <Group>
92
- <Name>Despair</Name>
93
- <Handle>1137655816</Handle>
94
- <GroupType>Feed</GroupType>
95
- <ExternalFeed>
96
- <URL>http://www.itunesu.edu/feedpath.xml</URL>
97
- <OwnerEmail>john.doe@email.com</OwnerEmail>
98
- <PollingInterval>Daily</PollingInterval>
99
- </ExternalFeed>
100
- </Group>
101
- <Group>
102
- <Name>Drop Box</Name>
103
- <Handle>1432712681</Handle>
104
- </Group>
105
- <Group>
106
- <Name>Class Podcast</Name>
107
- <Handle>1434954191</Handle>
108
- </Group>
109
- <AggregateFileSize>29094280</AggregateFileSize>
110
- <LinkCollectionSet>
111
- <LinkCollection>
112
- <Name>Links</Name>
113
- <Handle>16409</Handle>
114
- <FeedURL>https://deimos.apple.com/WebObjects/Core.woa/LinkFeed/
115
- adc.education.apple.com.27362036.016408.016409</FeedURL>
116
- </LinkCollection>
117
- </LinkCollectionSet>
118
- </Course>
119
- <Course>
120
- <Name>COMM 410: Digital Storytelling</Name>
121
- <Handle>27362058</Handle>
122
- <Instructor>Marco Torres</Instructor>
123
- <Description>Learn the process of storyboarding,
124
- production, and editing to communicate effectively
125
- in various digital mediums.</Description>
126
- <CoverImage>
127
- <Handle>1312165622</Handle>
128
- <Shared>true</Shared>
129
- </CoverImage>
130
- <BannerImage>
131
- <Handle>28970712</Handle>
132
- <Shared>true</Shared>
133
- </BannerImage>
134
- <ThumbnailImage>
135
- <Handle>28970713</Handle>
136
- <Shared>true</Shared>
137
- </ThumbnailImage>
138
- <Group>
139
- <Name>Video</Name>
140
- <Handle>94505460</Handle>
141
- <Track>
142
- <Name>Air Jesse</Name>
143
- <Handle>33064925</Handle>
144
- <Kind>feature-movie</Kind>
145
- <DiscNumber>1</DiscNumber>
146
- <DurationMilliseconds>200000</DurationMilliseconds>
147
- <AlbumName>Digital Storytelling</AlbumName>
148
- <ArtistName>SFETT</ArtistName>
149
- <DownloadURL>https://deimos.apple.com/WebObjects/
150
- Core.woa/DownloadTrack/adc.education.apple.com.
151
- 27362058.094505460.33064925</DownloadURL>
152
- <File>
153
- <Handle>33064924</Handle>
154
- <Shared>true</Shared>
155
- </File>
156
- <CategoryCode>101104</CategoryCode>
157
- </Track>
158
- <AggregateFileSize>61419318</AggregateFileSize>
159
- </Group>
160
- <AggregateFileSize>61449281</AggregateFileSize>
161
- </Course>
162
- <AggregateFileSize>2730256155</AggregateFileSize>
163
- </Section>
164
- <Templates>
165
- <Name>Templates</Name>
166
- <Handle>1137492150</Handle>
167
- <Course>
168
- <Name>Standard Course</Name>
169
- <Handle>1194148486</Handle>
170
- <ShortName>Standard Course</ShortName>
171
- <Permission>
172
- <Credential>Authenticated@urn:mace:itunesu.com:sites:
173
- adc.education.apple.com</Credential>
174
- <Access>No Access</Access>
175
- </Permission>
176
- <CoverImage>
177
- <Handle>1194148492</Handle>
178
- <Shared>true</Shared>
179
- </CoverImage>
180
- <BannerImage>
181
- <Handle>1194148491</Handle>
182
- <Shared>true</Shared>
183
- </BannerImage>
184
- <ThumbnailImage>
185
- <Handle>1194148493</Handle>
186
- <Shared>true</Shared>
187
- </ThumbnailImage>
188
- <Group>
189
- <Name>Audio</Name>
190
- <Handle>1194148489</Handle>
191
- </Group>
192
- <Group>
193
- <Name>Video</Name>
194
- <Handle>1194148490</Handle>
195
- </Group>
196
- <AggregateFileSize>47369</AggregateFileSize>
197
- <LinkCollectionSet>
198
- <LinkCollection>
199
- <Name>Title</Name>
200
- <Handle>17955</Handle>
201
- <FeedURL>https://deimos.apple.com/WebObjects/Core.woa/LinkFeed/
202
- adc.education.apple.com.1194148486.017954.017955</FeedURL>
203
- </LinkCollection>
204
- </LinkCollectionSet>
205
- </Course>
206
- <AggregateFileSize>47369</AggregateFileSize>
207
- </Templates>
208
- <CoverImage>
209
- <Handle>1138049026</Handle>
210
- <Shared>true</Shared>
211
- </CoverImage>
212
- <BannerImage>
213
- <Handle>27361941</Handle>
214
- <Shared>true</Shared>
215
- </BannerImage>
216
- <ThumbnailImage>
217
- <Handle>1138049027</Handle>
218
- <Shared>true</Shared>
219
- </ThumbnailImage>
220
- <Theme>
221
- <Name>iTunes Original</Name>
222
- <Handle>1133839107</Handle>
223
- <BackgroundColor>b7defc</BackgroundColor>
224
- <LineColor>000000</LineColor>
225
- <LinkArrowColor>000000</LinkArrowColor>
226
- <LinkBackgroundColor>ffffff</LinkBackgroundColor>
227
- <LinkBackgroundColorAlpha>50</LinkBackgroundColorAlpha>
228
- <LinkBoxColor>3366cc</LinkBoxColor>
229
- <LinkTextColor>000000</LinkTextColor>
230
- <LinkTitleColor>ffffff</LinkTitleColor>
231
- <LoginURL>http://deimos.apple.com/adc</LoginURL>
232
- <RegularTextColor>000000</RegularTextColor>
233
- <TitleTextColor>000000</TitleTextColor>
234
- <TimeFormat>h:mm:ss a</TimeFormat>
235
- <DateFormat>E MMM d, yyyy</DateFormat>
236
- </Theme>
237
- <Theme>
238
- <Name>Custom</Name>
239
- <Handle>1133297749</Handle>
240
- <BackgroundColor>ffffff</BackgroundColor>
241
- <LineColor>cccccc</LineColor>
242
- <LinkArrowColor>000000</LinkArrowColor>
243
- <LinkBackgroundColor>000000</LinkBackgroundColor>
244
- <LinkBackgroundColorAlpha>12</LinkBackgroundColorAlpha>
245
- <LinkBoxColor>000066</LinkBoxColor>
246
- <LinkTextColor>000000</LinkTextColor>
247
- <LinkTitleColor>ffffff</LinkTitleColor>
248
- <LoginURL>http://deimos.apple.com/adc</LoginURL>
249
- <RegularTextColor>333333</RegularTextColor>
250
- <TitleTextColor>000000</TitleTextColor>
251
- <TimeFormat>h:mm:ss a</TimeFormat>
252
- <DateFormat>E MMM d, yyyy</DateFormat>
253
- </Theme>
254
- <LinkCollectionSet>
255
- <LinkCollection>
256
- <Name>Links</Name>
257
- <Handle>16407</Handle>
258
- <FeedURL>https://deimos.apple.com/WebObjects/Core.woa/LinkFeed/adc.education.apple.com.016406.016407</FeedURL>
259
- </LinkCollection>
260
- </LinkCollectionSet>
261
- <LoginURL>http://deimos.apple.com/adc</LoginURL>
262
- </Site>
263
- <Reference>
264
- <Category>
265
- <Code>102108</Code>
266
- <Name>Fine Arts - Theater</Name>
267
- </Category>
268
- <Category>
269
- <Code>101104</Code>
270
- <Name>Engineering - Environmental</Name>
271
- </Category>
272
- </Reference>
273
- </ITunesUResponse>
@@ -1,7 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <ITunesUDocument>
3
- <Version>1.1.1</Version>
4
- <UpdateGroup>
5
- <GroupHandle>grouphandle value</GroupHandle>
6
- </UpdateGroup>
7
- </ITunesUDocument>
@@ -1,34 +0,0 @@
1
- desc 'Release the website and new gem version'
2
- task :deploy => [:check_version, :website, :release] do
3
- puts "Remember to create SVN tag:"
4
- puts "svn copy svn+ssh://#{rubyforge_username}@rubyforge.org/var/svn/#{PATH}/trunk " +
5
- "svn+ssh://#{rubyforge_username}@rubyforge.org/var/svn/#{PATH}/tags/REL-#{VERS} "
6
- puts "Suggested comment:"
7
- puts "Tagging release #{CHANGES}"
8
- end
9
-
10
- desc 'Runs tasks website_generate and install_gem as a local deployment of the gem'
11
- task :local_deploy => [:website_generate, :install_gem]
12
-
13
- task :check_version do
14
- unless ENV['VERSION']
15
- puts 'Must pass a VERSION=x.y.z release version'
16
- exit
17
- end
18
- unless ENV['VERSION'] == VERS
19
- puts "Please update your version.rb to match the release version, currently #{VERS}"
20
- exit
21
- end
22
- end
23
-
24
- desc 'Install the package as a gem, without generating documentation(ri/rdoc)'
25
- task :install_gem_no_doc => [:clean, :package] do
26
- sh "#{'sudo ' unless Hoe::WINDOZE }gem install pkg/*.gem --no-rdoc --no-ri"
27
- end
28
-
29
- namespace :manifest do
30
- desc 'Recreate Manifest.txt to include ALL files'
31
- task :refresh do
32
- `rake check_manifest | patch -p0 > Manifest.txt`
33
- end
34
- end
data/tasks/website.rake DELETED
@@ -1,17 +0,0 @@
1
- desc 'Generate website files'
2
- task :website_generate => :ruby_env do
3
- (Dir['website/**/*.txt'] - Dir['website/version*.txt']).each do |txt|
4
- sh %{ #{RUBY_APP} script/txt2html #{txt} > #{txt.gsub(/txt$/,'html')} }
5
- end
6
- end
7
-
8
- desc 'Upload website files to rubyforge'
9
- task :website_upload do
10
- host = "#{rubyforge_username}@rubyforge.org"
11
- remote_dir = "/var/www/gforge-projects/#{PATH}/"
12
- local_dir = 'website'
13
- sh %{rsync -aCv #{local_dir}/ #{host}:#{remote_dir}}
14
- end
15
-
16
- desc 'Generate and upload website files'
17
- task :website => [:website_generate, :website_upload, :publish_docs]
data/website/index.html DELETED
@@ -1,54 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
- <head>
5
- <link rel="stylesheet" href="stylesheets/screen.css" type="text/css" media="screen" />
6
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
7
- <title>
8
- rtunesu
9
- </title>
10
- <script src="javascripts/rounded_corners_lite.inc.js" type="text/javascript"></script>
11
- <style>
12
-
13
- </style>
14
- <script type="text/javascript">
15
- window.onload = function() {
16
- settings = {
17
- tl: { radius: 10 },
18
- tr: { radius: 10 },
19
- bl: { radius: 10 },
20
- br: { radius: 10 },
21
- antiAlias: true,
22
- autoPad: true,
23
- validTags: ["div"]
24
- }
25
- var versionBox = new curvyCorners(settings, document.getElementById("version"));
26
- versionBox.applyCornersToAll();
27
- }
28
- </script>
29
- </head>
30
- <body>
31
- <div id="main">
32
-
33
- <h1>rtunesu</h1>
34
- <div id="version" class="clickable" onclick='document.location = "http://rubyforge.org/projects/rtunesu"; return false'>
35
- <p>Get Version</p>
36
- <a href="http://rubyforge.org/projects/rtunesu" class="numbers">0.2.3</a>
37
- </div>
38
- <h2>Code
39
- RTunesU is hosted on github: <a href="http://github.com/trek/rtunesu/tree/master">http://github.com/trek/rtunesu/tree/master</a></h2>
40
-
41
-
42
- <h2>Installing
43
- RTunesU can be installed via rubygems with
44
- gem install rtunesu</h2>
45
- <p class="coda">
46
- <a href="FIXME email">FIXME full name</a>, 1st August 2008<br>
47
- Theme extended from <a href="http://rb2js.rubyforge.org/">Paul Battley</a>
48
- </p>
49
- </div>
50
-
51
- <!-- insert site tracking codes here, like Google Urchin -->
52
-
53
- </body>
54
- </html>
data/website/index.txt DELETED
@@ -1,7 +0,0 @@
1
- h1. rtunesu
2
- h2. Code
3
- RTunesU is hosted on github: "http://github.com/trek/rtunesu/tree/master":http://github.com/trek/rtunesu/tree/master
4
-
5
- h2. Installing
6
- RTunesU can be installed via rubygems with
7
- gem install rtunesu