Ruby gem for accessing Google Fusion Tables
Pull request Compare This branch is 52 commits behind tokumine:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


<iframe style="float:right;" width="280px" height="150px" scrolling="no" src=""></iframe>

This gem lets you easily interact with Google Fusion Tables API from your Ruby application via a plain SQL interface, or an object orientated interface.

Demo and examples


gem install fusion_tables

Gem Dependencies

  • gdata_19 >= 1.1.2


  • 1.8.7
  • 1.9.2


require 'fusion_tables'
# Connect to service	
@ft =      
@ft.clientlogin(username, password)

# 1. SQL interface
# =========================
@ft.execute "SHOW TABLES" 
@ft.execute "INSERT INTO #{my_table_id} (name, geo) VALUES ('tokyo', '35.6894 139.6917');"
@ft.execute "SELECT count() FROM #{my_table_id};"

# 2. ORM interface
# ========================
# Browse existing tables
 # => [table_1, table_2] 

# Getting table id suitable for using with google maps (see more below) #=> 42342 (the table's google id)

# Count data
table_1.count #=> 1

# Select data 
 #=> data

# Select data with conditions "name", "WHERE x=n"
 #=> data

# Select ROWIDs
row_ids = "ROWID"

# Drop tables
@ft.drop                    # table id
@ft.drop [,]     # arrays of table ids
@ft.drop /yacht/                      # regex on table name

# Creating a table
cols = [{:name => "friend name",    :type => 'string' },
        {:name => "age",            :type => 'number' },
        {:name => "meeting time",   :type => 'datetime' },
        {:name => "where",          :type => 'location' }]

new_table = @ft.create_table "My upcoming meetings", cols

# Inserting rows (auto chunks every 500)
data = [{"friend name" 	=> "Eric Wimp", 
         "age"          => 25, 
         "meeting time" => Time.utc(2010,"aug",10,20,15,1),
         "where"        => "29 Acacia Road, Nuttytown"}]
new_table.insert data

# Currently FT API only supports single row UPDATE.
new_table.update 1, [{"friend name"	=> "Bananaman"}]

# Delete row
new_table.delete 1

# Delete all rows

Known Issues

  • The Google gdata_19 gem conflicts with the GData2 gem. Only current fix is to uninstall GData2.
  • You have to make a table public before you can display it on a map. This can only be done via FT web interface.

Note on Patches/Pull Requests

  • Fork the project.
  • Make your feature addition or bug fix.
  • Add tests for it. This is important so I don't break it in a future version unintentionally.
  • Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
  • Send me a pull request. Bonus points for topic branches.


Largely based on Tom Verbeure's work for MTBGuru

  • tokumine
  • sikachu
  • troy
  • wynst