googletastic 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/README.textile +47 -0
- data/Rakefile +103 -0
- data/lib/googletastic/access_rule.rb +45 -0
- data/lib/googletastic/album.rb +22 -0
- data/lib/googletastic/app_engine.rb +103 -0
- data/lib/googletastic/attendee.rb +7 -0
- data/lib/googletastic/base.rb +46 -0
- data/lib/googletastic/calendar.rb +60 -0
- data/lib/googletastic/comment.rb +3 -0
- data/lib/googletastic/document.rb +219 -0
- data/lib/googletastic/event.rb +149 -0
- data/lib/googletastic/ext/file.rb +219 -0
- data/lib/googletastic/ext/pretty_print.xsl +47 -0
- data/lib/googletastic/ext/xml.rb +10 -0
- data/lib/googletastic/ext.rb +1 -0
- data/lib/googletastic/form.rb +131 -0
- data/lib/googletastic/group.rb +44 -0
- data/lib/googletastic/helpers/document.rb +70 -0
- data/lib/googletastic/helpers/event.rb +26 -0
- data/lib/googletastic/helpers/form.rb +102 -0
- data/lib/googletastic/helpers.rb +18 -0
- data/lib/googletastic/image.rb +121 -0
- data/lib/googletastic/mixins/actions.rb +113 -0
- data/lib/googletastic/mixins/attributes.rb +27 -0
- data/lib/googletastic/mixins/finders.rb +78 -0
- data/lib/googletastic/mixins/namespaces.rb +42 -0
- data/lib/googletastic/mixins/parsing.rb +68 -0
- data/lib/googletastic/mixins/requesting.rb +84 -0
- data/lib/googletastic/mixins.rb +5 -0
- data/lib/googletastic/person.rb +41 -0
- data/lib/googletastic/spreadsheet.rb +35 -0
- data/lib/googletastic/sync/document.rb +120 -0
- data/lib/googletastic/sync/form.rb +106 -0
- data/lib/googletastic/sync.rb +46 -0
- data/lib/googletastic/thumbnail.rb +7 -0
- data/lib/googletastic/youtube.rb +25 -0
- data/lib/googletastic.rb +115 -0
- data/spec/benchmarks/document_benchmark.rb +40 -0
- data/spec/config.yml +6 -0
- data/spec/fixtures/data/Doing business in the eMarketPlace.doc +0 -0
- data/spec/fixtures/data/basic.txt +1 -0
- data/spec/fixtures/data/calendar.list.xml +64 -0
- data/spec/fixtures/data/doc_as_html.html +3097 -0
- data/spec/fixtures/data/doc_as_html_html.html +0 -0
- data/spec/fixtures/data/doclist.xml +76 -0
- data/spec/fixtures/data/document.single.xml +30 -0
- data/spec/fixtures/data/end.xml +446 -0
- data/spec/fixtures/data/event.list.xml +62 -0
- data/spec/fixtures/data/form.html +66 -0
- data/spec/fixtures/data/group.list.xml +58 -0
- data/spec/fixtures/data/person.list.xml +53 -0
- data/spec/fixtures/data/photo.list.xml +111 -0
- data/spec/fixtures/data/sample_upload.mp4 +0 -0
- data/spec/fixtures/data/spreadsheet.list.xml +43 -0
- data/spec/fixtures/models/document.rb +7 -0
- data/spec/fixtures/models/event.rb +3 -0
- data/spec/fixtures/models/form.rb +6 -0
- data/spec/fixtures/models/test_model.rb +3 -0
- data/spec/fixtures/results/test.txt +185 -0
- data/spec/googletastic/access_rule_spec.rb +13 -0
- data/spec/googletastic/album_spec.rb +9 -0
- data/spec/googletastic/app_engine_spec.rb +12 -0
- data/spec/googletastic/base_spec.rb +49 -0
- data/spec/googletastic/calendar_spec.rb +11 -0
- data/spec/googletastic/document_spec.rb +163 -0
- data/spec/googletastic/event_spec.rb +34 -0
- data/spec/googletastic/form_spec.rb +43 -0
- data/spec/googletastic/group_spec.rb +9 -0
- data/spec/googletastic/image_spec.rb +9 -0
- data/spec/googletastic/person_spec.rb +9 -0
- data/spec/googletastic/post_spec.rb +46 -0
- data/spec/googletastic/spreadsheet_spec.rb +9 -0
- data/spec/googletastic/youtube_spec.rb +58 -0
- data/spec/spec.opts +1 -0
- data/spec/spec_helper.rb +25 -0
- metadata +187 -0
@@ -0,0 +1,49 @@
|
|
1
|
+
require File.expand_path("./spec/spec_helper")
|
2
|
+
|
3
|
+
describe Googletastic::Base do
|
4
|
+
|
5
|
+
# URL
|
6
|
+
describe "url parsing" do
|
7
|
+
it "should convert a hash of params into url parameters" do
|
8
|
+
pending
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should only convert 'valid_params' into url parameters" do
|
12
|
+
pending
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should throw an error if no url is specified in the params" do
|
16
|
+
pending
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should format the url properly with params" do
|
20
|
+
options = {:offset => 10, :with => "LANCE", :reader => "JOHN", :url => "http://docs.google.com/"}
|
21
|
+
# base
|
22
|
+
url = Googletastic::Base.build_url(options)
|
23
|
+
url.should == "http://docs.google.com/?q=LANCE&start-index=10"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
# AUTHENTICATION
|
28
|
+
describe "authentication" do
|
29
|
+
it "should find the configuration file" do
|
30
|
+
pending
|
31
|
+
end
|
32
|
+
|
33
|
+
it "should successfully authenticate" do
|
34
|
+
pending
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
|
39
|
+
# http://code.google.com/apis/gdata/articles/gdata_on_rails.html#AuthSub
|
40
|
+
it "should login via 'AuthSub'" do
|
41
|
+
client = GData::Client::DocList.new
|
42
|
+
next_url = 'http://accd.org'
|
43
|
+
secure = false # set secure = true for signed AuthSub requests
|
44
|
+
sess = true
|
45
|
+
domain = nil#'accd.org' # force users to login to a Google Apps hosted domain
|
46
|
+
authsub_link = client.authsub_url(next_url, secure, sess, domain)
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
@@ -0,0 +1,163 @@
|
|
1
|
+
require File.expand_path("./spec/spec_helper")
|
2
|
+
# spec ./spec/googletastic/document_spec.rb
|
3
|
+
|
4
|
+
describe Googletastic::Document do
|
5
|
+
|
6
|
+
before(:all) do
|
7
|
+
@doc = Document.new
|
8
|
+
@id = "0AT1-fvkm5vJPZGN2NzR3bmJfMGZiMnh3N2R0"
|
9
|
+
end
|
10
|
+
|
11
|
+
# FIND METHODS
|
12
|
+
describe "find methods" do
|
13
|
+
it "should find first document from google docs" do
|
14
|
+
doc = Googletastic::Document.first
|
15
|
+
doc.should_not == nil
|
16
|
+
doc.title.should_not be_empty
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should find all documents from google docs, and they should be an array" do
|
20
|
+
docs = Googletastic::Document.all
|
21
|
+
docs.should_not == nil
|
22
|
+
docs.class.to_s.should == "Array"
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should find single document by id from google docs" do
|
26
|
+
doc = Googletastic::Document.find(@id)
|
27
|
+
doc.should_not == nil
|
28
|
+
doc.id.should == @id
|
29
|
+
end
|
30
|
+
|
31
|
+
it "should find single document by id from google docs, with ACL via ':include => [:acl]'" do
|
32
|
+
pending
|
33
|
+
end
|
34
|
+
|
35
|
+
it "should retrieve ACL for document when called" do
|
36
|
+
doc = Googletastic::Document.first
|
37
|
+
doc.acl.should_not == nil
|
38
|
+
end
|
39
|
+
|
40
|
+
it "should retrieve only the specified fields from the xml" do
|
41
|
+
# result = Googletastic::Document.all(:fields => "title,id", :raw => true)
|
42
|
+
# puts Nokogiri::XML(result.body).to_xml
|
43
|
+
pending
|
44
|
+
end
|
45
|
+
|
46
|
+
it "should get document by 'kind' of 'spreadsheet'" do
|
47
|
+
# Googletastic::Document.first(:kind => "spreadsheet")
|
48
|
+
pending
|
49
|
+
end
|
50
|
+
|
51
|
+
describe "errors" do
|
52
|
+
it "should throw an error if you don't pass 'find' any parameters" do
|
53
|
+
# Googletastic::Document.find.should raise_error
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
describe "document properties" do
|
59
|
+
before(:all) do
|
60
|
+
@doc = Googletastic::Document.first
|
61
|
+
end
|
62
|
+
|
63
|
+
it "should have a valid 'kind'" do
|
64
|
+
@doc.kind.should_not == nil
|
65
|
+
Googletastic::Document.valid_category?(@doc.kind).should == true
|
66
|
+
end
|
67
|
+
|
68
|
+
it "should have an array of categories" do
|
69
|
+
@doc.categories.should be_an_instance_of(Array)
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
# URL PARSING
|
74
|
+
describe "url parsing" do
|
75
|
+
it "should format the url properly with params" do
|
76
|
+
options = {:offset => 10, :with => "LANCE", :reader => "JOHN", :url => "http://docs.google.com/"}
|
77
|
+
# document
|
78
|
+
url = Googletastic::Document.build_url(options)
|
79
|
+
url.should == "http://docs.google.com/?reader=JOHN&q=LANCE&start-index=10"
|
80
|
+
|
81
|
+
options = {:include => [:acl], :url => Googletastic::Document::FEED}
|
82
|
+
url = Googletastic::Document.build_url(options)
|
83
|
+
url.should =~ /#{Googletastic::Document::FEED.gsub(/full$/, "expandAcl")}/
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
describe "marshalling" do
|
88
|
+
before(:all) do
|
89
|
+
@doc = Googletastic::Document.first
|
90
|
+
@xml = @doc.to_xml
|
91
|
+
end
|
92
|
+
|
93
|
+
it "should marshall the document into an entry feed with at least a 'title' and 'id'" do
|
94
|
+
xml = Nokogiri::XML(@xml)
|
95
|
+
xml.xpath("//atom:id", {"atom" => NS['atom']}).first.text.should == "#{@doc.index_url.gsub('http', 'https').gsub('documents', 'default')}/#{@doc.resource_id}"
|
96
|
+
xml.xpath("//atom:title", {"atom" => NS['atom']}).first.text.should == @doc.title
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
describe "viewing" do
|
101
|
+
it "should pull the raw html content of the document down" do
|
102
|
+
doc = Googletastic::Document.find(@id)
|
103
|
+
view = doc.view
|
104
|
+
liquid = Liquid::Template.parse(view.to_xml.to_xml)
|
105
|
+
result = liquid.render("company_name" => "My Company")
|
106
|
+
end
|
107
|
+
|
108
|
+
it "should return a 'Content Not Modified' response" do
|
109
|
+
client = Googletastic::Document.client
|
110
|
+
since = '2010-03-28T22:51:51.488Z'
|
111
|
+
good = '2009-11-04T10:57:00-08:00'
|
112
|
+
# AkQFRnw7fCp7ImA9WxBaGEw.
|
113
|
+
client.headers["If-Modified-Since"] = since
|
114
|
+
url = Googletastic::Document.index_url + "?updated-max=#{good}"
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
describe "uploading" do
|
119
|
+
it "should post a document's content to google docs" do
|
120
|
+
# response = Googletastic::Document.upload(File.join(FIXTURES_DIR, "data/basic.txt"))
|
121
|
+
# response.should_not == nil # better assertion :p, but it works
|
122
|
+
end
|
123
|
+
|
124
|
+
it "should upload the document's content and add a custom title" do
|
125
|
+
|
126
|
+
end
|
127
|
+
end
|
128
|
+
|
129
|
+
# DOWNLOADING
|
130
|
+
describe "downloading" do
|
131
|
+
it "should download a document as plain text" do
|
132
|
+
doc = Googletastic::Document.find(@id)
|
133
|
+
result = doc.download("txt")
|
134
|
+
liquid = Liquid::Template.parse(result.body)
|
135
|
+
result = liquid.render("company_name" => "My Company")
|
136
|
+
File.write(File.join(FIXTURES_DIR, "results/test.txt"), result)
|
137
|
+
result.should_not == nil
|
138
|
+
end
|
139
|
+
|
140
|
+
it "should get a '.doc' file from google docs and return it as html" do
|
141
|
+
pending
|
142
|
+
end
|
143
|
+
|
144
|
+
it "should download all documents as a zip file" do
|
145
|
+
|
146
|
+
end
|
147
|
+
end
|
148
|
+
|
149
|
+
describe "active record wrapper" do
|
150
|
+
it "should have the dynamic method 'find_with_google_doc'" do
|
151
|
+
Document.respond_to?(:find_with_google_doc).should == true
|
152
|
+
end
|
153
|
+
|
154
|
+
it "should find and save all new documents" do
|
155
|
+
# Document.find_with_google_doc.should_not == nil
|
156
|
+
end
|
157
|
+
|
158
|
+
it "should be able to compare previous updated time with current updated time" do
|
159
|
+
doc = Googletastic::Document.first
|
160
|
+
puts doc.inspect
|
161
|
+
end
|
162
|
+
end
|
163
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require File.expand_path("./spec/spec_helper")
|
2
|
+
|
3
|
+
describe Googletastic::Event do
|
4
|
+
|
5
|
+
describe "finding" do
|
6
|
+
it "should retrieve a list of events from google calendar" do
|
7
|
+
Googletastic::Event.all.should_not == nil
|
8
|
+
end
|
9
|
+
|
10
|
+
it "should get a 'content not modified' response from google" do
|
11
|
+
pending
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
describe "posting" do
|
16
|
+
it "should post an event on google calendar" do
|
17
|
+
@event = Googletastic::Event.new
|
18
|
+
@event.title = "Event with DESCRIPTION"
|
19
|
+
@event.start_time = Time.now.xmlschema
|
20
|
+
@event.end_time = 2.days.from_now.xmlschema
|
21
|
+
@event.description = "You know, i hope this works!"
|
22
|
+
# @event.save
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should update (put) an even on google calendar" do
|
26
|
+
@event = Googletastic::Event.first
|
27
|
+
@event.title = "I CHANGED MY TITLE"
|
28
|
+
@event.description = "Now I have a description?"
|
29
|
+
@event.where = "Berkeley"
|
30
|
+
# @event.save
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require File.expand_path("./spec/spec_helper")
|
2
|
+
|
3
|
+
describe Googletastic::Form do
|
4
|
+
|
5
|
+
before(:all) do
|
6
|
+
@form = Form.new
|
7
|
+
end
|
8
|
+
|
9
|
+
describe "find" do
|
10
|
+
it "should list all spreadsheets as forms" do
|
11
|
+
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
describe "dynamic helper methods" do
|
16
|
+
it "should add dynamic methods to form model based on googletastic :form options" do
|
17
|
+
@form.respond_to?(:google_form).should == true
|
18
|
+
end
|
19
|
+
|
20
|
+
it "should respond_to?(:find_with_google_form) dynamic class methods" do
|
21
|
+
Form.respond_to?(:find_with_google_form).should == true
|
22
|
+
pending
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
describe "unmarshalling" do
|
27
|
+
it "should strip the html page down to a form (unmarshall)" do
|
28
|
+
@html = Nokogiri::HTML(IO.read(File.join(FIXTURES_DIR, "data/form.html")))
|
29
|
+
form = Googletastic::Form.unmarshall(@html)
|
30
|
+
form.redirect = "/forms/my-custom-id"
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
describe "redirecting" do
|
35
|
+
it "should add generic redirect" do
|
36
|
+
Googletastic::Form.redirect_to = "/my-generic-redirect"
|
37
|
+
@html = Nokogiri::HTML(IO.read(File.join(FIXTURES_DIR, "data/form.html")))
|
38
|
+
form = Googletastic::Form.unmarshall(@html)
|
39
|
+
Nokogiri::HTML(form.body).xpath("//form").first["action"].should == "/my-generic-redirect"
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
require File.expand_path("./spec/spec_helper")
|
2
|
+
|
3
|
+
describe Googletastic do
|
4
|
+
|
5
|
+
=begin
|
6
|
+
before(:all) do
|
7
|
+
@email = "flexinstyle@gmail.com"
|
8
|
+
@password = "flexyflexy"
|
9
|
+
@blog_id = 178484585982103126
|
10
|
+
@path = "http://www.blogger.com/feeds/#{@blog_id}/posts/full"
|
11
|
+
end
|
12
|
+
|
13
|
+
it "should get a list of blog posts from viatropos.blogspot.com" do
|
14
|
+
client = GData::Client::Blogger.new
|
15
|
+
client.clientlogin(@email, @password)
|
16
|
+
#puts client.get(@path).to_xml()
|
17
|
+
#puts Thing::Google::Document.view(nil, nil).to_xml
|
18
|
+
end
|
19
|
+
|
20
|
+
it "should post a post to blogger" do
|
21
|
+
client = GData::Client::Blogger.new
|
22
|
+
client.clientlogin(@email, @password)
|
23
|
+
post = <<-eof
|
24
|
+
<entry xmlns='http://www.w3.org/2005/Atom'>
|
25
|
+
<title type='text'>Marriage!</title>
|
26
|
+
<content type='xhtml'>
|
27
|
+
<div xmlns="http://www.w3.org/1999/xhtml">
|
28
|
+
<p>Mr. Darcy has <em>proposed marriage</em> to me!</p>
|
29
|
+
<p>He is the last man on earth I would ever desire to marry.</p>
|
30
|
+
<p>Whatever shall I do?</p>
|
31
|
+
</div>
|
32
|
+
</content>
|
33
|
+
<category scheme="http://www.blogger.com/atom/ns#" term="marriage" />
|
34
|
+
<category scheme="http://www.blogger.com/atom/ns#" term="Mr. Darcy" />
|
35
|
+
</entry>
|
36
|
+
eof
|
37
|
+
#post = client.post(@path, post)
|
38
|
+
#post = client.get(@path).to_xml.xpath("//atom:entry", {'atom' => ATOM_NS}).first
|
39
|
+
#puts post.to_xml
|
40
|
+
end
|
41
|
+
=end
|
42
|
+
after(:each) do
|
43
|
+
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
require File.expand_path("./spec/spec_helper")
|
2
|
+
=begin
|
3
|
+
describe Thing::Google::YouTube do
|
4
|
+
|
5
|
+
VIDEOS = "http://gdata.youtube.com/feeds/api/videos" unless defined?(VIDEOS)
|
6
|
+
|
7
|
+
before(:each) do
|
8
|
+
@yt = GData::Client::YouTube.new
|
9
|
+
@keys = Thing::Google.credentials
|
10
|
+
@yt.developer_key = @keys[:youtube_dev_key]
|
11
|
+
@yt.clientlogin(@keys[:youtube_login], @keys[:password])
|
12
|
+
end
|
13
|
+
|
14
|
+
def metadata
|
15
|
+
data = <<EOF
|
16
|
+
<?xml version="1.0"?>
|
17
|
+
<entry xmlns="http://www.w3.org/2005/Atom"
|
18
|
+
xmlns:media="http://search.yahoo.com/mrss/"
|
19
|
+
xmlns:yt="http://gdata.youtube.com/schemas/2007">
|
20
|
+
<media:group>
|
21
|
+
<media:title type="plain">Bad Wedding Toast</media:title>
|
22
|
+
<media:description type="plain">
|
23
|
+
I gave a bad toast at my friend's wedding.
|
24
|
+
</media:description>
|
25
|
+
<media:category scheme="http://gdata.youtube.com/schemas/2007/categories.cat">People</media:category>
|
26
|
+
<media:keywords>toast, wedding</media:keywords>
|
27
|
+
</media:group>
|
28
|
+
</entry>
|
29
|
+
EOF
|
30
|
+
end
|
31
|
+
|
32
|
+
it "should get a list of videos from youtube" do
|
33
|
+
pending
|
34
|
+
response = @yt.get(Thing.paramify_url(VIDEOS, {:q => "dan tocchini"}))
|
35
|
+
response = response.to_xml.xpath("//atom:entry", {'atom' => ATOM_NS}).first.to_xml
|
36
|
+
puts "response! " + response.inspect
|
37
|
+
end
|
38
|
+
|
39
|
+
it "should upload video metadata to youtube" do
|
40
|
+
url = File.join(Thing::Google::YouTube::API, Thing::Google::YouTube::GET_UPLOAD_TOKEN)
|
41
|
+
#response = @yt.post(url, metadata).to_xml
|
42
|
+
#puts response.to_xml
|
43
|
+
end
|
44
|
+
|
45
|
+
it "should upload the actual video to youtube" do
|
46
|
+
url = File.join(Thing::Google::YouTube::UPLOAD, @keys[:youtube_login], "uploads")
|
47
|
+
puts url
|
48
|
+
mime_type = Thing::Google::YouTube::MULTIPART
|
49
|
+
response = @yt.post_file(url, File.join(FIXTURES_DIR, "sample_upload.mp4"), mime_type).to_xml
|
50
|
+
puts response.to_xml
|
51
|
+
end
|
52
|
+
|
53
|
+
after(:each) do
|
54
|
+
|
55
|
+
end
|
56
|
+
|
57
|
+
end
|
58
|
+
=end
|
data/spec/spec.opts
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--colour
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
begin
|
2
|
+
require 'spec'
|
3
|
+
rescue LoadError
|
4
|
+
require 'rubygems' unless ENV['NO_RUBYGEMS']
|
5
|
+
gem 'rspec'
|
6
|
+
require 'spec'
|
7
|
+
end
|
8
|
+
require 'benchmark'
|
9
|
+
|
10
|
+
$:.unshift(File.dirname(__FILE__) + '/../lib')
|
11
|
+
require 'googletastic'
|
12
|
+
|
13
|
+
FIXTURES_DIR = File.expand_path(File.join(File.dirname(__FILE__), 'fixtures')) unless defined?(FIXTURES_DIR)
|
14
|
+
MODELS_DIR = File.join(FIXTURES_DIR, "models") unless defined?(MODELS_DIR)
|
15
|
+
DATA_DIR = File.join(FIXTURES_DIR, "data") unless defined?(DATA_DIR)
|
16
|
+
|
17
|
+
$:.unshift(MODELS_DIR)
|
18
|
+
require 'test_model'
|
19
|
+
|
20
|
+
Googletastic::TestModel.send(:include, Googletastic::Helpers)
|
21
|
+
Dir.glob("#{MODELS_DIR}/*") {|file| require file}
|
22
|
+
|
23
|
+
Googletastic.keys = YAML.load_file("spec/config.yml").symbolize_keys
|
24
|
+
|
25
|
+
NS = Googletastic::Mixins::Namespaces::NAMESPACES
|
metadata
ADDED
@@ -0,0 +1,187 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: googletastic
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 0
|
8
|
+
- 1
|
9
|
+
version: 0.0.1
|
10
|
+
platform: ruby
|
11
|
+
authors:
|
12
|
+
- Lance Pollard
|
13
|
+
autorequire:
|
14
|
+
bindir: bin
|
15
|
+
cert_chain: []
|
16
|
+
|
17
|
+
date: 2010-03-22 00:00:00 -07:00
|
18
|
+
default_executable:
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
21
|
+
name: nokogiri
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - ">="
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
segments:
|
28
|
+
- 0
|
29
|
+
version: "0"
|
30
|
+
type: :runtime
|
31
|
+
version_requirements: *id001
|
32
|
+
- !ruby/object:Gem::Dependency
|
33
|
+
name: activesupport
|
34
|
+
prerelease: false
|
35
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - ">="
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
segments:
|
40
|
+
- 2
|
41
|
+
- 3
|
42
|
+
- 5
|
43
|
+
version: 2.3.5
|
44
|
+
type: :runtime
|
45
|
+
version_requirements: *id002
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: activerecord
|
48
|
+
prerelease: false
|
49
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - ">="
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
segments:
|
54
|
+
- 2
|
55
|
+
- 3
|
56
|
+
- 5
|
57
|
+
version: 2.3.5
|
58
|
+
type: :runtime
|
59
|
+
version_requirements: *id003
|
60
|
+
- !ruby/object:Gem::Dependency
|
61
|
+
name: gdata
|
62
|
+
prerelease: false
|
63
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - ">="
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
segments:
|
68
|
+
- 0
|
69
|
+
version: "0"
|
70
|
+
type: :runtime
|
71
|
+
version_requirements: *id004
|
72
|
+
description: "Googletastic: A New Way of Googling"
|
73
|
+
email: lancejpollard@gmail.com
|
74
|
+
executables: []
|
75
|
+
|
76
|
+
extensions: []
|
77
|
+
|
78
|
+
extra_rdoc_files:
|
79
|
+
- README.textile
|
80
|
+
files:
|
81
|
+
- README.textile
|
82
|
+
- Rakefile
|
83
|
+
- lib/googletastic/access_rule.rb
|
84
|
+
- lib/googletastic/album.rb
|
85
|
+
- lib/googletastic/app_engine.rb
|
86
|
+
- lib/googletastic/attendee.rb
|
87
|
+
- lib/googletastic/base.rb
|
88
|
+
- lib/googletastic/calendar.rb
|
89
|
+
- lib/googletastic/comment.rb
|
90
|
+
- lib/googletastic/document.rb
|
91
|
+
- lib/googletastic/event.rb
|
92
|
+
- lib/googletastic/ext/file.rb
|
93
|
+
- lib/googletastic/ext/pretty_print.xsl
|
94
|
+
- lib/googletastic/ext/xml.rb
|
95
|
+
- lib/googletastic/ext.rb
|
96
|
+
- lib/googletastic/form.rb
|
97
|
+
- lib/googletastic/group.rb
|
98
|
+
- lib/googletastic/helpers/document.rb
|
99
|
+
- lib/googletastic/helpers/event.rb
|
100
|
+
- lib/googletastic/helpers/form.rb
|
101
|
+
- lib/googletastic/helpers.rb
|
102
|
+
- lib/googletastic/image.rb
|
103
|
+
- lib/googletastic/mixins/actions.rb
|
104
|
+
- lib/googletastic/mixins/attributes.rb
|
105
|
+
- lib/googletastic/mixins/finders.rb
|
106
|
+
- lib/googletastic/mixins/namespaces.rb
|
107
|
+
- lib/googletastic/mixins/parsing.rb
|
108
|
+
- lib/googletastic/mixins/requesting.rb
|
109
|
+
- lib/googletastic/mixins.rb
|
110
|
+
- lib/googletastic/person.rb
|
111
|
+
- lib/googletastic/spreadsheet.rb
|
112
|
+
- lib/googletastic/sync/document.rb
|
113
|
+
- lib/googletastic/sync/form.rb
|
114
|
+
- lib/googletastic/sync.rb
|
115
|
+
- lib/googletastic/thumbnail.rb
|
116
|
+
- lib/googletastic/youtube.rb
|
117
|
+
- lib/googletastic.rb
|
118
|
+
- spec/benchmarks/document_benchmark.rb
|
119
|
+
- spec/config.yml
|
120
|
+
- spec/fixtures/data/basic.txt
|
121
|
+
- spec/fixtures/data/calendar.list.xml
|
122
|
+
- spec/fixtures/data/doc_as_html.html
|
123
|
+
- spec/fixtures/data/doc_as_html_html.html
|
124
|
+
- spec/fixtures/data/doclist.xml
|
125
|
+
- spec/fixtures/data/document.single.xml
|
126
|
+
- spec/fixtures/data/Doing business in the eMarketPlace.doc
|
127
|
+
- spec/fixtures/data/end.xml
|
128
|
+
- spec/fixtures/data/event.list.xml
|
129
|
+
- spec/fixtures/data/form.html
|
130
|
+
- spec/fixtures/data/group.list.xml
|
131
|
+
- spec/fixtures/data/person.list.xml
|
132
|
+
- spec/fixtures/data/photo.list.xml
|
133
|
+
- spec/fixtures/data/sample_upload.mp4
|
134
|
+
- spec/fixtures/data/spreadsheet.list.xml
|
135
|
+
- spec/fixtures/models/document.rb
|
136
|
+
- spec/fixtures/models/event.rb
|
137
|
+
- spec/fixtures/models/form.rb
|
138
|
+
- spec/fixtures/models/test_model.rb
|
139
|
+
- spec/fixtures/results/test.txt
|
140
|
+
- spec/googletastic/access_rule_spec.rb
|
141
|
+
- spec/googletastic/album_spec.rb
|
142
|
+
- spec/googletastic/app_engine_spec.rb
|
143
|
+
- spec/googletastic/base_spec.rb
|
144
|
+
- spec/googletastic/calendar_spec.rb
|
145
|
+
- spec/googletastic/document_spec.rb
|
146
|
+
- spec/googletastic/event_spec.rb
|
147
|
+
- spec/googletastic/form_spec.rb
|
148
|
+
- spec/googletastic/group_spec.rb
|
149
|
+
- spec/googletastic/image_spec.rb
|
150
|
+
- spec/googletastic/person_spec.rb
|
151
|
+
- spec/googletastic/post_spec.rb
|
152
|
+
- spec/googletastic/spreadsheet_spec.rb
|
153
|
+
- spec/googletastic/youtube_spec.rb
|
154
|
+
- spec/spec.opts
|
155
|
+
- spec/spec_helper.rb
|
156
|
+
has_rdoc: true
|
157
|
+
homepage: http://github.com/viatropos/googletastic
|
158
|
+
licenses: []
|
159
|
+
|
160
|
+
post_install_message:
|
161
|
+
rdoc_options: []
|
162
|
+
|
163
|
+
require_paths:
|
164
|
+
- lib
|
165
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
166
|
+
requirements:
|
167
|
+
- - ">="
|
168
|
+
- !ruby/object:Gem::Version
|
169
|
+
segments:
|
170
|
+
- 0
|
171
|
+
version: "0"
|
172
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
173
|
+
requirements:
|
174
|
+
- - ">="
|
175
|
+
- !ruby/object:Gem::Version
|
176
|
+
segments:
|
177
|
+
- 0
|
178
|
+
version: "0"
|
179
|
+
requirements: []
|
180
|
+
|
181
|
+
rubyforge_project: googletastic
|
182
|
+
rubygems_version: 1.3.6
|
183
|
+
signing_key:
|
184
|
+
specification_version: 3
|
185
|
+
summary: More than Syncing Rails Apps with the Google Data API
|
186
|
+
test_files: []
|
187
|
+
|