Project

dewey

0.0
No commit activity in last 3 years
No release in over 3 years
Light, simple Google Docs library for Ruby.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 0.8.7
~> 2.6.0
~> 1.7.6
~> 0.7.2
 Project Readme
:::::::::  :::::::::: :::       ::: :::::::::: :::   :::
:+:    :+: :+:        :+:       :+: :+:        :+:   :+:
+:+    +:+ +:+        +:+       +:+ +:+         +:+ +:+
+#+    +:+ +#++:++#   +#+  +:+  +#+ +#++:++#     +#++:
+#+    +#+ +#+        +#+ +#+#+ +#+ +#+           +#+
#+#    #+# #+#         #+#+# #+#+#  #+#           #+#
#########  ##########   ###   ###   ##########    ###

Deprecated

Dewey was written to interact with Google Docs, which has officially been deprecated in favor of Google Drive. I am no longer maintaining Dewey, and would recommend that anybody interested in interacting with Google Drive look into the official command line tools GoogleCL.

Light, simple Google Docs library for Ruby.

Dewey focuses on the simple cases of authorizing, searching, and managing the files on a Google Docs account. Really, it stemmed from the need to use Docs great document conversion services.

Authentication

You can configure Dewey to connect with ClientLogin.

ClientLogin

Dewey.authentication :client, :email => 'example@gmail.com', :password => 'password'

AuthSub and OAuth support is planned for a future release.

File Operations

You can put, get, delete and convert documents, spreadsheets or presentations in any of the formats that Docs accepts. There is a full listing in dewey/validations.rb or available here: http://code.google.com/apis/documents/faq.html#WhatKindOfFilesCanIUpload

Be sure to set up authorization before attempting any file operations! You don't need to explictely call authorize though, as it will attempt to do that on the first operation.

Putting a Document

document = File.new('my_document.doc')
resource = Dewey.put(document, :title => 'My First Upload') #=> 'document:12345'

Searching Documents

Exact search

Dewey.search('My Document', :exact => true) #=> ['document:12345']

Loose search

ids = Dewey.search('notes') #=> ['document:12', 'document:456']

Getting a Document

Upload your file

id = Dewey.put(File.new('my_document.doc'), 'My Second Upload')

Get it in various formats

original = Dewey.get(id)                #=> Tempfile
pdf  = Dewey.get(id, :format => :pdf)   #=> Tempfile
html = Dewey.get(id, :format => :html)  #=> Tempfile

A tempfile is returned, so you'll have to move it

FileUtils.mv html.path, 'path/to/destination'

Getting a document by title. Since only one file will be returned at a time you must use an exact match.

Dewey.get('My Document') #=> Tempfile
Dewey.get('No Match')    #=> nil

Other file types are supported as well, including spreadsheets, drawings and presentations:

Dewey.get('Mine')               #=> ['presentation:12345', 'spreadsheet:12345', 'drawing:12345']
Dewey.get('presentation:12345') #=> Tempfile
Dewey.get('spreadsheet:12345')  #=> Tempfile
Dewey.get('drawing:12345')      #=> Tempfile

Deleting a Document

Deleting a document from a resource id

id = Dewey.put(File.new('my_spreadsheet.xls'))
Dewey.delete(id) #=> true

Deleting by title. Unmatched searches return false

Dewey.delete('My Document') #=> true
Dewey.delete('No Match')    #=> false

Sending to the trash rather than deleting

Dewey.delete('My Document', :trash => true) #=> true

If you would prefer an error when deletion fails

Dewey.delete!('My Document') #=> raise DeweyException

Converting a Document

If you are just trying to convert from one format to another you can simply use the convert method, which is a simple wrapper around put, get, and delete:

textfile = File.new('my_document.txt')
tempfile = Dewey.convert(textfile, :format => :doc) #=> Tempfile