Sample Usage

A block of code is worth a thousand words.

require 'rubygems'
gem 'ruby-factual'
require 'factual'

api = Factual::Api.new(:api_key => "<YOUR_FACTUAL_API_KEY>")

# get table and its metadata
# table metadata: name, description, rating, source, creator, created_at,
#                 updated_at, total_row_count, geo_enabled, downloadable, 
#                 fields (array of hash)
table = api.get_table("g9R1u2")
puts table.name, table.creator

# read rows after filtering and sorting
table.filter(:two_letter_abbrev => "CA").sort(:state => -1).page(1, :size => 5).each_row do |state_info|

  # read facts
  # fact attributes: value, subject_key, field_ref, field (hash)
  fact = state_info["state"]
  puts fact.value, fact.subject_key

  # write facts
  if fact.input("Kalifornia", :source => "source", :comment => "comment")
    puts "inputted"
  end
end

# you can also get rows by search
row = table.search("hawaii").find_one
puts row["state"]

# add a row
ret = table.input(:state => "Nebraska", :two_letter_abbrev => "NE")

# get a row object from resp
subject_key = ret["subjectKey"]
row = Factual::Row.new(table, subject_key)
puts row["state"].value