/
person.rb
35 lines (32 loc) · 1.13 KB
/
person.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
require_relative 'api'
module Jammed #:nodoc:
# Provides methods for calling API endpoint /username.json? and accessing user specific data
class Person < API
# Calls API for a specific user's profile
#
# ==== Examples
#
# Jammed::Person.profile('IFTFOM', '08972935872035') #returns IFTFOM's profile data
def self.profile(username, api_key, https=false)
response = request(:get, "/#{username}.json", {:https => https,
:query => {:key => api_key}})
JSON.parse(response.body)["person"]
end
# Calls API for a specific user's name
#
# ==== Examples
#
# Jammed::Person.name('IFTFOM', '08972935872035') #returns 'IFTFOM'
def self.name(username, api_key)
self.profile(username, api_key)['name']
end
# Calls API for a specific attribute of a user's profile
#
# ==== Examples
#
# Jammed::Person.joinedDate('IFTFOM', '08972935872035') #returns IFTFOM's joined date
def self.method_missing(name, *args, &block)
Jammed::Person.profile(args[0],args[1]).has_key?(name.to_s) ? self.profile(args[0],args[1])[name.to_s] : super
end
end
end