gdata-jruby-client 0.7.0

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 (74) hide show
  1. data/MIT-LICENSE +22 -0
  2. data/README +25 -0
  3. data/lib/base.rb +16 -0
  4. data/lib/base_entry.rb +20 -0
  5. data/lib/calendar_event_entry.rb +3 -0
  6. data/lib/calendar_service.rb +19 -0
  7. data/lib/contacts_service.rb +17 -0
  8. data/lib/email.rb +16 -0
  9. data/lib/extended_property.rb +14 -0
  10. data/lib/gdata/COPYING +202 -0
  11. data/lib/gdata/RELEASE_NOTES.txt +448 -0
  12. data/lib/gdata/java/deps/google-collect-1.0-rc1.jar +0 -0
  13. data/lib/gdata/java/deps/jsr305.jar +0 -0
  14. data/lib/gdata/java/lib/gdata-analytics-2.0.jar +0 -0
  15. data/lib/gdata/java/lib/gdata-analytics-meta-2.0.jar +0 -0
  16. data/lib/gdata/java/lib/gdata-appsforyourdomain-1.0.jar +0 -0
  17. data/lib/gdata/java/lib/gdata-appsforyourdomain-meta-1.0.jar +0 -0
  18. data/lib/gdata/java/lib/gdata-base-1.0.jar +0 -0
  19. data/lib/gdata/java/lib/gdata-blogger-2.0.jar +0 -0
  20. data/lib/gdata/java/lib/gdata-blogger-meta-2.0.jar +0 -0
  21. data/lib/gdata/java/lib/gdata-books-1.0.jar +0 -0
  22. data/lib/gdata/java/lib/gdata-books-meta-1.0.jar +0 -0
  23. data/lib/gdata/java/lib/gdata-calendar-2.0.jar +0 -0
  24. data/lib/gdata/java/lib/gdata-calendar-meta-2.0.jar +0 -0
  25. data/lib/gdata/java/lib/gdata-client-1.0.jar +0 -0
  26. data/lib/gdata/java/lib/gdata-client-meta-1.0.jar +0 -0
  27. data/lib/gdata/java/lib/gdata-codesearch-2.0.jar +0 -0
  28. data/lib/gdata/java/lib/gdata-codesearch-meta-2.0.jar +0 -0
  29. data/lib/gdata/java/lib/gdata-contacts-3.0.jar +0 -0
  30. data/lib/gdata/java/lib/gdata-contacts-meta-3.0.jar +0 -0
  31. data/lib/gdata/java/lib/gdata-core-1.0.jar +0 -0
  32. data/lib/gdata/java/lib/gdata-docs-3.0.jar +0 -0
  33. data/lib/gdata/java/lib/gdata-docs-meta-3.0.jar +0 -0
  34. data/lib/gdata/java/lib/gdata-finance-2.0.jar +0 -0
  35. data/lib/gdata/java/lib/gdata-finance-meta-2.0.jar +0 -0
  36. data/lib/gdata/java/lib/gdata-health-2.0.jar +0 -0
  37. data/lib/gdata/java/lib/gdata-health-meta-2.0.jar +0 -0
  38. data/lib/gdata/java/lib/gdata-maps-2.0.jar +0 -0
  39. data/lib/gdata/java/lib/gdata-maps-meta-2.0.jar +0 -0
  40. data/lib/gdata/java/lib/gdata-media-1.0.jar +0 -0
  41. data/lib/gdata/java/lib/gdata-photos-2.0.jar +0 -0
  42. data/lib/gdata/java/lib/gdata-photos-meta-2.0.jar +0 -0
  43. data/lib/gdata/java/lib/gdata-projecthosting-2.0.jar +0 -0
  44. data/lib/gdata/java/lib/gdata-projecthosting-meta-2.0.jar +0 -0
  45. data/lib/gdata/java/lib/gdata-sidewiki-2.0.jar +0 -0
  46. data/lib/gdata/java/lib/gdata-sidewiki-meta-2.0.jar +0 -0
  47. data/lib/gdata/java/lib/gdata-sites-2.0.jar +0 -0
  48. data/lib/gdata/java/lib/gdata-sites-meta-2.0.jar +0 -0
  49. data/lib/gdata/java/lib/gdata-spreadsheet-3.0.jar +0 -0
  50. data/lib/gdata/java/lib/gdata-spreadsheet-meta-3.0.jar +0 -0
  51. data/lib/gdata/java/lib/gdata-webmastertools-2.0.jar +0 -0
  52. data/lib/gdata/java/lib/gdata-webmastertools-meta-2.0.jar +0 -0
  53. data/lib/gdata/java/lib/gdata-youtube-2.0.jar +0 -0
  54. data/lib/gdata/java/lib/gdata-youtube-meta-2.0.jar +0 -0
  55. data/lib/gdata/java/version.properties +46 -0
  56. data/lib/gdata_jruby_client.rb +22 -0
  57. data/lib/google_helpers.rb +14 -0
  58. data/lib/google_oauth_parameters.rb +13 -0
  59. data/lib/google_service.rb +58 -0
  60. data/lib/im.rb +16 -0
  61. data/lib/query.rb +12 -0
  62. data/lib/recurrence.rb +14 -0
  63. data/lib/string_ext.rb +10 -0
  64. data/lib/text_content.rb +5 -0
  65. data/lib/time_ext.rb +49 -0
  66. data/lib/when.rb +16 -0
  67. data/spec/entry_spec.rb +22 -0
  68. data/spec/google_calendar_service_spec.rb +296 -0
  69. data/spec/google_contacts_service_spec.rb +149 -0
  70. data/spec/google_keys.rb +11 -0
  71. data/spec/google_oauth_parameters_spec.rb +20 -0
  72. data/spec/images/sergey.jpg +0 -0
  73. data/spec/images/sergey_out.jpg +0 -0
  74. metadata +126 -0
@@ -0,0 +1,149 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
+ require File.dirname(__FILE__) + '/../lib/gdata_jruby_client'
3
+ require File.dirname(__FILE__) + '/google_keys.rb'
4
+
5
+ include GoogleHelpers
6
+
7
+ describe GData::ContactsService do
8
+ NO_YOMI = nil
9
+
10
+ before(:each) do
11
+ create_service
12
+ end
13
+
14
+ it "should able to create, update, and delete a contact" do
15
+ name = GData::Name.new
16
+ name.full_name = GData::FullName.new('Full Name', NO_YOMI)
17
+ name.given_name = GData::GivenName.new('First', NO_YOMI)
18
+ name.family_name = GData::FamilyName.new('Last', NO_YOMI)
19
+
20
+ contact = GData::ContactEntry.new(:name => name, :content => 'Test contact'.to_plain_text)
21
+
22
+ email = GData::Email.new(:address => 'test@gmail.com',
23
+ :rel => 'http://schemas.google.com/g/2005#home',
24
+ :primary => true)
25
+ contact.add_email_address email
26
+
27
+ # Create a new contact
28
+ contact = @service.create_entry(:url => GData::ContactsService::DEFAULT_CONTACTS_URI,
29
+ :entry => contact)
30
+ contact.id.should_not be_nil
31
+ contact.email_addresses.first.address.should == 'test@gmail.com'
32
+
33
+ #Update a new contact
34
+ contact.content = "New Content".to_plain_text
35
+ contact = contact.update
36
+ contact.content.plain_text.should == "New Content"
37
+
38
+ # Delete the contact
39
+ lambda do
40
+ contact.delete
41
+ end.should_not raise_error
42
+
43
+ feed = @service.find_feed(:url => GData::ContactsService::DEFAULT_CONTACTS_URI)
44
+ entries = feed.entries
45
+ entries.each do |e|
46
+ e.id.should_not == contact.id
47
+ end
48
+ end
49
+
50
+ describe "Retrieving contacts" do
51
+ before(:all) do
52
+ create_service
53
+ @now = Time.new
54
+ @name = GData::Name.new
55
+ @name.full_name = GData::FullName.new('Sergey Bin', NO_YOMI)
56
+ @name.given_name = GData::GivenName.new('Sergey', NO_YOMI)
57
+ @name.family_name = GData::FamilyName.new('Bin', NO_YOMI)
58
+
59
+ @contact = GData::ContactEntry.new(:name => @name, :content => 'Google CoFounder'.to_plain_text)
60
+
61
+ @email = GData::Email.new(:address => 'sergey@google.com',
62
+ :rel => 'http://schemas.google.com/g/2005#work',
63
+ :primary => true)
64
+ @contact.add_email_address @email
65
+
66
+ @im = GData::Im.new(
67
+ :address => 'sergey@google.com',
68
+ :rel => 'http://schemas.google.com/g/2005#other',
69
+ :protocol => 'http://schemas.google.com/g/2005#MSN')
70
+
71
+ @contact.add_im_address @im
72
+
73
+ @contact = @service.create_entry(:url => GData::ContactsService::DEFAULT_CONTACTS_URI,
74
+ :entry => @contact)
75
+
76
+ # Add a photo to the contact
77
+ photo = open(File.dirname(__FILE__) + '/images/sergey.jpg', 'rb') { |io| io.read }
78
+ photo_url = @contact.contact_photo_link.href
79
+ request = @service.create_request(GData::ContactsService::GDataRequest::RequestType::UPDATE,
80
+ url_for(photo_url), GData::ContentType.new('image/jpeg'))
81
+ request_stream = request.request_stream
82
+ request_stream.write(photo.to_java_bytes)
83
+ request.execute
84
+ end
85
+
86
+ def assert_contact(c)
87
+ c.name.full_name.value.should == @name.full_name.value
88
+ c.name.given_name.value.should == @name.given_name.value
89
+ c.name.family_name.value.should == @name.family_name.value
90
+ c.email_addresses.first.address.should == @email.address
91
+ c.im_addresses.first.address.should == @im.address
92
+ c.contact_photo_link.href.should_not be_nil
93
+ c.contact_photo_link.etag.should_not be_nil
94
+
95
+ # Read the photo
96
+ # stream = @service.get_stream_from_link(c.contact_photo_link)
97
+ # photo = open(File.dirname(__FILE__) + '/images/sergey_out.jpg', 'wb') do |f|
98
+ # while (byte = stream.read) > -1
99
+ # f << byte.chr
100
+ # end
101
+ # end
102
+
103
+ # Now we know c is @contact, assign c to @contact so it has updated information (photo)
104
+ @contact = c
105
+ end
106
+
107
+ it "should able to retrieve all contacts" do
108
+ found_contact = false
109
+ feed = @service.find_feed(:url => GData::ContactsService::DEFAULT_CONTACTS_URI)
110
+ feed.should_not be_nil
111
+ entries = feed.entries
112
+ entries.size.should > 0
113
+ entries.each do |e|
114
+ if e.id == @contact.id
115
+ found_contact = true
116
+ assert_contact(e)
117
+ end
118
+ end
119
+ found_contact.should be_true
120
+ end
121
+
122
+ it "should able to retrieve contacts using query parameters" do
123
+ query = GData::Query.new(
124
+ :url => GData::ContactsService::DEFAULT_CONTACTS_URI,
125
+ :updatedMin => @now)
126
+ entries = @service.find_feed(:query => query).entries
127
+ entries.size.should == 1
128
+ assert_contact(entries.first)
129
+ end
130
+
131
+ after(:all) do
132
+ @contact.delete
133
+ end
134
+
135
+ end
136
+
137
+ def create_service
138
+ @service = GData::ContactsService.new DEFAULT_APPLICATION_NAME
139
+ credentials = GData::GoogleOAuthParameters.new
140
+ credentials.attributes = {
141
+ :consumer_key => CONSUMER_KEY,
142
+ :consumer_secret => CONSUMER_SECRET,
143
+ :token => TOKEN,
144
+ :token_secret => TOKEN_SECRET }
145
+ @service.oauth_credentials = credentials
146
+ @service
147
+ end
148
+
149
+ end
@@ -0,0 +1,11 @@
1
+ CONSUMER_KEY = "oxygen.homeunix.org"
2
+ CONSUMER_SECRET = "/tO50sDR2F/8tckdObSBgJLl"
3
+ # jerryluk@gmail.com
4
+ # TOKEN = "1/2k058r5meyuiaB162lnsOQ"
5
+ # TOKEN_SECRET = "Gsh2TlW33UBQ7oBgd3mSagMo"
6
+
7
+ # gdatafu@gmail.com
8
+ TOKEN = "1/V1lDQFRoAgAMv-cvoIOmQmATiaQZnWPB51nTvo8n9Sw"
9
+ TOKEN_SECRET = "uObNrVylI3S8vWeQXQboyC+8"
10
+
11
+ SESSION_TOKEN = "CM-jpoTEHxDIxcORBg"
@@ -0,0 +1,20 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
+ require File.dirname(__FILE__) + '/../lib/gdata_jruby_client'
3
+ require File.dirname(__FILE__) + '/google_keys.rb'
4
+
5
+ describe GData::CalendarService do
6
+
7
+ it "should able to assign credentials attributes" do
8
+ credentials = GData::GoogleOAuthParameters.new
9
+ credentials.attributes = {
10
+ :consumer_key => CONSUMER_KEY,
11
+ :consumer_secret => CONSUMER_SECRET,
12
+ :token => TOKEN,
13
+ :token_secret => TOKEN_SECRET }
14
+ credentials.oauth_consumer_key.should == CONSUMER_KEY
15
+ credentials.oauth_consumer_secret.should == CONSUMER_SECRET
16
+ credentials.oauth_token.should == TOKEN
17
+ credentials.oauth_token_secret.should == TOKEN_SECRET
18
+ end
19
+
20
+ end
Binary file
Binary file
metadata ADDED
@@ -0,0 +1,126 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: gdata-jruby-client
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.7.0
5
+ platform: ruby
6
+ authors:
7
+ - Jerry Luk
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2010-01-22 00:00:00 -08:00
13
+ default_executable:
14
+ dependencies: []
15
+
16
+ description: The GData JRuby Client allows you to easily access data through Google Data APIs. It uses the GData Java Client Library from Google.
17
+ email: jerry@presdo.com
18
+ executables: []
19
+
20
+ extensions: []
21
+
22
+ extra_rdoc_files: []
23
+
24
+ files:
25
+ - README
26
+ - MIT-LICENSE
27
+ - lib/base.rb
28
+ - lib/base_entry.rb
29
+ - lib/calendar_event_entry.rb
30
+ - lib/calendar_service.rb
31
+ - lib/contacts_service.rb
32
+ - lib/email.rb
33
+ - lib/extended_property.rb
34
+ - lib/gdata_jruby_client.rb
35
+ - lib/google_helpers.rb
36
+ - lib/google_oauth_parameters.rb
37
+ - lib/google_service.rb
38
+ - lib/im.rb
39
+ - lib/query.rb
40
+ - lib/recurrence.rb
41
+ - lib/string_ext.rb
42
+ - lib/text_content.rb
43
+ - lib/time_ext.rb
44
+ - lib/when.rb
45
+ - lib/gdata/COPYING
46
+ - lib/gdata/RELEASE_NOTES.txt
47
+ - lib/gdata/java/version.properties
48
+ - lib/gdata/java/deps/google-collect-1.0-rc1.jar
49
+ - lib/gdata/java/deps/jsr305.jar
50
+ - lib/gdata/java/lib/gdata-analytics-2.0.jar
51
+ - lib/gdata/java/lib/gdata-analytics-meta-2.0.jar
52
+ - lib/gdata/java/lib/gdata-appsforyourdomain-1.0.jar
53
+ - lib/gdata/java/lib/gdata-appsforyourdomain-meta-1.0.jar
54
+ - lib/gdata/java/lib/gdata-base-1.0.jar
55
+ - lib/gdata/java/lib/gdata-blogger-2.0.jar
56
+ - lib/gdata/java/lib/gdata-blogger-meta-2.0.jar
57
+ - lib/gdata/java/lib/gdata-books-1.0.jar
58
+ - lib/gdata/java/lib/gdata-books-meta-1.0.jar
59
+ - lib/gdata/java/lib/gdata-calendar-2.0.jar
60
+ - lib/gdata/java/lib/gdata-calendar-meta-2.0.jar
61
+ - lib/gdata/java/lib/gdata-client-1.0.jar
62
+ - lib/gdata/java/lib/gdata-client-meta-1.0.jar
63
+ - lib/gdata/java/lib/gdata-codesearch-2.0.jar
64
+ - lib/gdata/java/lib/gdata-codesearch-meta-2.0.jar
65
+ - lib/gdata/java/lib/gdata-contacts-3.0.jar
66
+ - lib/gdata/java/lib/gdata-contacts-meta-3.0.jar
67
+ - lib/gdata/java/lib/gdata-core-1.0.jar
68
+ - lib/gdata/java/lib/gdata-docs-3.0.jar
69
+ - lib/gdata/java/lib/gdata-docs-meta-3.0.jar
70
+ - lib/gdata/java/lib/gdata-finance-2.0.jar
71
+ - lib/gdata/java/lib/gdata-finance-meta-2.0.jar
72
+ - lib/gdata/java/lib/gdata-health-2.0.jar
73
+ - lib/gdata/java/lib/gdata-health-meta-2.0.jar
74
+ - lib/gdata/java/lib/gdata-maps-2.0.jar
75
+ - lib/gdata/java/lib/gdata-maps-meta-2.0.jar
76
+ - lib/gdata/java/lib/gdata-media-1.0.jar
77
+ - lib/gdata/java/lib/gdata-photos-2.0.jar
78
+ - lib/gdata/java/lib/gdata-photos-meta-2.0.jar
79
+ - lib/gdata/java/lib/gdata-projecthosting-2.0.jar
80
+ - lib/gdata/java/lib/gdata-projecthosting-meta-2.0.jar
81
+ - lib/gdata/java/lib/gdata-sidewiki-2.0.jar
82
+ - lib/gdata/java/lib/gdata-sidewiki-meta-2.0.jar
83
+ - lib/gdata/java/lib/gdata-sites-2.0.jar
84
+ - lib/gdata/java/lib/gdata-sites-meta-2.0.jar
85
+ - lib/gdata/java/lib/gdata-spreadsheet-3.0.jar
86
+ - lib/gdata/java/lib/gdata-spreadsheet-meta-3.0.jar
87
+ - lib/gdata/java/lib/gdata-webmastertools-2.0.jar
88
+ - lib/gdata/java/lib/gdata-webmastertools-meta-2.0.jar
89
+ - lib/gdata/java/lib/gdata-youtube-2.0.jar
90
+ - lib/gdata/java/lib/gdata-youtube-meta-2.0.jar
91
+ has_rdoc: true
92
+ homepage: http://github.com/jerryluk/gdata-jruby-client
93
+ licenses: []
94
+
95
+ post_install_message:
96
+ rdoc_options:
97
+ - --charset=UTF-8
98
+ require_paths:
99
+ - lib
100
+ required_ruby_version: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ version: "0"
105
+ version:
106
+ required_rubygems_version: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: "0"
111
+ version:
112
+ requirements: []
113
+
114
+ rubyforge_project:
115
+ rubygems_version: 1.3.5
116
+ signing_key:
117
+ specification_version: 3
118
+ summary: The GData JRuby Client allows you to easily access data through Google Data APIs. It uses the GData Java Client Library from Google.
119
+ test_files:
120
+ - spec/entry_spec.rb
121
+ - spec/google_calendar_service_spec.rb
122
+ - spec/google_contacts_service_spec.rb
123
+ - spec/google_keys.rb
124
+ - spec/google_oauth_parameters_spec.rb
125
+ - spec/images/sergey.jpg
126
+ - spec/images/sergey_out.jpg