Class: Factual

Inherits:
Object
  • Object
show all
Defined in:
lib/factual.rb,
lib/factual/api.rb,
lib/factual/multi.rb,
lib/factual/query/base.rb,
lib/factual/write/base.rb,
lib/factual/write/flag.rb,
lib/factual/query/match.rb,
lib/factual/query/table.rb,
lib/factual/write/clear.rb,
lib/factual/query/facets.rb,
lib/factual/write/insert.rb,
lib/factual/write/submit.rb,
lib/factual/query/geocode.rb,
lib/factual/query/resolve.rb,
lib/factual/query/geopulse.rb,
lib/factual/query/monetize.rb

Defined Under Namespace

Modules: Query, Write Classes: API, Multi

Instance Method Summary collapse

Constructor Details

#initialize(key, secret, options = {}) ⇒ Factual

Returns a new instance of Factual.



20
21
22
23
24
25
# File 'lib/factual.rb', line 20

def initialize(key, secret, options = {})
  debug_mode = options[:debug].nil? ? false : options[:debug]
  host = options[:host]
  timeout = options[:timeout]
  @api = API.new(generate_token(key, secret), debug_mode, host, timeout)
end

Instance Method Details

#clear(*params) ⇒ Object



72
73
74
75
76
77
78
79
80
81
82
83
84
# File 'lib/factual.rb', line 72

def clear(*params)
  fields = []
  fields = params.pop if params.last.is_a? Array

  table, user, factual_id = params
  clear_params = {
    :table => table,
    :factual_id => factual_id,
    :fields => fields.join(","),
    :user => user }

  Write::Clear.new(@api, clear_params)
end

#diffs(view, params = {}) ⇒ Object



63
64
65
# File 'lib/factual.rb', line 63

def diffs(view, params = {})
  @api.diffs(view, params)
end

#facets(table_id_or_alias) ⇒ Object



31
32
33
# File 'lib/factual.rb', line 31

def facets(table_id_or_alias)
  Query::Facets.new(@api, "t/#{table_id_or_alias}")
end

#flag(table, user, factual_id, problem) ⇒ Object



86
87
88
89
90
91
92
93
94
# File 'lib/factual.rb', line 86

def flag(table, user, factual_id, problem)
  flag_params = {
    :table => table,
    :factual_id => factual_id,
    :problem => problem,
    :user => user }

  Write::Flag.new(@api, flag_params)
end

#geocode(lat, lng) ⇒ Object



47
48
49
# File 'lib/factual.rb', line 47

def geocode(lat, lng)
  Query::Geocode.new(@api, lat, lng)
end

#geopulse(lat, lng) ⇒ Object



51
52
53
# File 'lib/factual.rb', line 51

def geopulse(lat, lng)
  Query::Geopulse.new(@api, lat, lng)
end

#get(path, query = {}) ⇒ Object



55
56
57
# File 'lib/factual.rb', line 55

def get(path, query={})
  @api.raw_get(path, query)
end

#insert(*params) ⇒ Object



109
110
111
112
113
114
115
116
117
118
119
# File 'lib/factual.rb', line 109

def insert(*params)
  values = {}
  values = params.pop if params.last.is_a? Hash

  table, user = params
  insert_params = {
    :table => table,
    :user => user,
    :values => values }
  Write::Insert.new(@api, insert_params)
end

#match(values) ⇒ Object



39
40
41
# File 'lib/factual.rb', line 39

def match(values)
  Query::Match.new(@api, :values => values)
end

#monetizeObject



35
36
37
# File 'lib/factual.rb', line 35

def monetize
  Query::Monetize.new(@api)
end

#multi(queries) ⇒ Object



67
68
69
70
# File 'lib/factual.rb', line 67

def multi(queries)
  multi = Multi.new(@api, queries)
  multi.send
end

#post(path, body = {}) ⇒ Object



59
60
61
# File 'lib/factual.rb', line 59

def post(path, body={})
  @api.raw_post(path, body)
end

#resolve(values) ⇒ Object



43
44
45
# File 'lib/factual.rb', line 43

def resolve(values)
  Query::Resolve.new(@api, :values => values)
end

#submit(*params) ⇒ Object



96
97
98
99
100
101
102
103
104
105
106
107
# File 'lib/factual.rb', line 96

def submit(*params)
  values = {}
  values = params.pop if params.last.is_a? Hash

  table, user, factual_id = params
  submit_params = {
    :table => table,
    :user => user,
    :factual_id => factual_id,
    :values => values }
  Write::Submit.new(@api, submit_params)
end

#table(table_id_or_alias) ⇒ Object



27
28
29
# File 'lib/factual.rb', line 27

def table(table_id_or_alias)
  Query::Table.new(@api, "t/#{table_id_or_alias}")
end