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.
- data/MIT-LICENSE +22 -0
- data/README +25 -0
- data/lib/base.rb +16 -0
- data/lib/base_entry.rb +20 -0
- data/lib/calendar_event_entry.rb +3 -0
- data/lib/calendar_service.rb +19 -0
- data/lib/contacts_service.rb +17 -0
- data/lib/email.rb +16 -0
- data/lib/extended_property.rb +14 -0
- data/lib/gdata/COPYING +202 -0
- data/lib/gdata/RELEASE_NOTES.txt +448 -0
- data/lib/gdata/java/deps/google-collect-1.0-rc1.jar +0 -0
- data/lib/gdata/java/deps/jsr305.jar +0 -0
- data/lib/gdata/java/lib/gdata-analytics-2.0.jar +0 -0
- data/lib/gdata/java/lib/gdata-analytics-meta-2.0.jar +0 -0
- data/lib/gdata/java/lib/gdata-appsforyourdomain-1.0.jar +0 -0
- data/lib/gdata/java/lib/gdata-appsforyourdomain-meta-1.0.jar +0 -0
- data/lib/gdata/java/lib/gdata-base-1.0.jar +0 -0
- data/lib/gdata/java/lib/gdata-blogger-2.0.jar +0 -0
- data/lib/gdata/java/lib/gdata-blogger-meta-2.0.jar +0 -0
- data/lib/gdata/java/lib/gdata-books-1.0.jar +0 -0
- data/lib/gdata/java/lib/gdata-books-meta-1.0.jar +0 -0
- data/lib/gdata/java/lib/gdata-calendar-2.0.jar +0 -0
- data/lib/gdata/java/lib/gdata-calendar-meta-2.0.jar +0 -0
- data/lib/gdata/java/lib/gdata-client-1.0.jar +0 -0
- data/lib/gdata/java/lib/gdata-client-meta-1.0.jar +0 -0
- data/lib/gdata/java/lib/gdata-codesearch-2.0.jar +0 -0
- data/lib/gdata/java/lib/gdata-codesearch-meta-2.0.jar +0 -0
- data/lib/gdata/java/lib/gdata-contacts-3.0.jar +0 -0
- data/lib/gdata/java/lib/gdata-contacts-meta-3.0.jar +0 -0
- data/lib/gdata/java/lib/gdata-core-1.0.jar +0 -0
- data/lib/gdata/java/lib/gdata-docs-3.0.jar +0 -0
- data/lib/gdata/java/lib/gdata-docs-meta-3.0.jar +0 -0
- data/lib/gdata/java/lib/gdata-finance-2.0.jar +0 -0
- data/lib/gdata/java/lib/gdata-finance-meta-2.0.jar +0 -0
- data/lib/gdata/java/lib/gdata-health-2.0.jar +0 -0
- data/lib/gdata/java/lib/gdata-health-meta-2.0.jar +0 -0
- data/lib/gdata/java/lib/gdata-maps-2.0.jar +0 -0
- data/lib/gdata/java/lib/gdata-maps-meta-2.0.jar +0 -0
- data/lib/gdata/java/lib/gdata-media-1.0.jar +0 -0
- data/lib/gdata/java/lib/gdata-photos-2.0.jar +0 -0
- data/lib/gdata/java/lib/gdata-photos-meta-2.0.jar +0 -0
- data/lib/gdata/java/lib/gdata-projecthosting-2.0.jar +0 -0
- data/lib/gdata/java/lib/gdata-projecthosting-meta-2.0.jar +0 -0
- data/lib/gdata/java/lib/gdata-sidewiki-2.0.jar +0 -0
- data/lib/gdata/java/lib/gdata-sidewiki-meta-2.0.jar +0 -0
- data/lib/gdata/java/lib/gdata-sites-2.0.jar +0 -0
- data/lib/gdata/java/lib/gdata-sites-meta-2.0.jar +0 -0
- data/lib/gdata/java/lib/gdata-spreadsheet-3.0.jar +0 -0
- data/lib/gdata/java/lib/gdata-spreadsheet-meta-3.0.jar +0 -0
- data/lib/gdata/java/lib/gdata-webmastertools-2.0.jar +0 -0
- data/lib/gdata/java/lib/gdata-webmastertools-meta-2.0.jar +0 -0
- data/lib/gdata/java/lib/gdata-youtube-2.0.jar +0 -0
- data/lib/gdata/java/lib/gdata-youtube-meta-2.0.jar +0 -0
- data/lib/gdata/java/version.properties +46 -0
- data/lib/gdata_jruby_client.rb +22 -0
- data/lib/google_helpers.rb +14 -0
- data/lib/google_oauth_parameters.rb +13 -0
- data/lib/google_service.rb +58 -0
- data/lib/im.rb +16 -0
- data/lib/query.rb +12 -0
- data/lib/recurrence.rb +14 -0
- data/lib/string_ext.rb +10 -0
- data/lib/text_content.rb +5 -0
- data/lib/time_ext.rb +49 -0
- data/lib/when.rb +16 -0
- data/spec/entry_spec.rb +22 -0
- data/spec/google_calendar_service_spec.rb +296 -0
- data/spec/google_contacts_service_spec.rb +149 -0
- data/spec/google_keys.rb +11 -0
- data/spec/google_oauth_parameters_spec.rb +20 -0
- data/spec/images/sergey.jpg +0 -0
- data/spec/images/sergey_out.jpg +0 -0
- 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
|
data/spec/google_keys.rb
ADDED
|
@@ -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
|