Class: FacebookTestUsers::App

Inherits:
Object
  • Object
show all
Defined in:
lib/facebook_test_users/app.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(attrs) ⇒ App

Returns a new instance of App.



8
9
10
11
# File 'lib/facebook_test_users/app.rb', line 8

def initialize(attrs)
  @name, @id, @secret = attrs[:name].to_s, attrs[:id].to_s, attrs[:secret].to_s
  validate!
end

Instance Attribute Details

#idObject (readonly)

Returns the value of attribute id.



6
7
8
# File 'lib/facebook_test_users/app.rb', line 6

def id
  @id
end

#nameObject (readonly)

Returns the value of attribute name.



6
7
8
# File 'lib/facebook_test_users/app.rb', line 6

def name
  @name
end

#secretObject (readonly)

Returns the value of attribute secret.



6
7
8
# File 'lib/facebook_test_users/app.rb', line 6

def secret
  @secret
end

Class Method Details

.allObject

query methods



49
50
51
52
53
54
55
# File 'lib/facebook_test_users/app.rb', line 49

def self.all
  if DB[:apps]
    DB[:apps].map {|attrs| new(attrs) }
  else
    []
  end
end

.create!(attrs) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/facebook_test_users/app.rb', line 17

def self.create!(attrs)
  new_guy = new(attrs)

  if all.find {|app| app.name == new_guy.name }
    raise ArgumentError, "App names must be unique, and there is already an app named \"#{new_guy.name}\"."
  end

  DB.update do |data|
    data[:apps] ||= []
    data[:apps] << new_guy.attrs
  end
end

.find_by_name(name) ⇒ Object



57
58
59
# File 'lib/facebook_test_users/app.rb', line 57

def self.find_by_name(name)
  all.find {|a| a.name == name}
end

Instance Method Details

#access_tokenObject



61
62
63
# File 'lib/facebook_test_users/app.rb', line 61

def access_token
  @access_token ||= AccessToken.get(id, secret)
end

#attrsObject



13
14
15
# File 'lib/facebook_test_users/app.rb', line 13

def attrs
  {:name => name, :id => id, :secret => secret}
end

#create_userObject



40
41
42
43
44
45
46
# File 'lib/facebook_test_users/app.rb', line 40

def create_user
  user_data = RestClient.post(users_url,
    :access_token => access_token,
    :installed => true)

  User.new(JSON[user_data])
end

#usersObject



30
31
32
33
34
35
36
37
38
# File 'lib/facebook_test_users/app.rb', line 30

def users
  users_data = RestClient.get(users_url, :params => {
      :access_token => access_token
    })

  JSON[users_data]["data"].map do |user_data|
    User.new(user_data)
  end
end