Class: Facemock::FbGraph::Application::User

Inherits:
Database::User show all
Defined in:
lib/facemock/fb_graph/application/user.rb,
lib/facemock/fb_graph/application/user/permission.rb

Defined Under Namespace

Classes: Permission

Constant Summary

Constants inherited from Database::User

Database::User::CHILDREN, Database::User::COLUMN_NAMES, Database::User::TABLE_NAME

Constants inherited from Database::Table

Database::Table::CHILDREN, Database::Table::COLUMN_NAMES, Database::Table::TABLE_NAME

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Database::Table

all, children, #column_names, column_names, column_type, create!, first, last, method_missing, #method_missing, #persisted?, table_info, #table_name, table_name, #update_attributes!, where

Constructor Details

#initialize(options = {}) ⇒ User

Returns a new instance of User.



10
11
12
13
14
15
16
17
18
19
20
# File 'lib/facemock/fb_graph/application/user.rb', line 10

def initialize(options={})
  opts = Hashie::Mash.new(options)
  if opts.identifier
    opts[:id] = opts.identifier
    opts.delete(:identifier)
  end
  super(opts)

  @permission_objects = User::Permission.find_all_by_user_id(self.id)
  set_permissions(opts.permissions) if opts.permissions
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class Facemock::Database::Table

Instance Attribute Details

#permission_objectsObject (readonly)

Returns the value of attribute permission_objects.



8
9
10
# File 'lib/facemock/fb_graph/application/user.rb', line 8

def permission_objects
  @permission_objects
end

Instance Method Details

#destroyObject



40
41
42
43
# File 'lib/facemock/fb_graph/application/user.rb', line 40

def destroy
  super
  @permission_objects = []
end

#fetchObject



35
36
37
38
# File 'lib/facemock/fb_graph/application/user.rb', line 35

def fetch
  @permission_objects = User::Permission.find_all_by_user_id(self.id)
  super
end

#permissionsObject



22
23
24
25
26
# File 'lib/facemock/fb_graph/application/user.rb', line 22

def permissions
  @permission_objects.inject([]) do |names, perm|
    names << perm.name.to_sym
  end
end

#revoke!Object



45
46
47
48
49
50
# File 'lib/facemock/fb_graph/application/user.rb', line 45

def revoke!
  @permission_objects.each do |permission|
    permission.destroy
  end
  @permission_objects = []
end

#save!Object



28
29
30
31
32
33
# File 'lib/facemock/fb_graph/application/user.rb', line 28

def save!
  super
  @permission_objects.each do |permission|
    permission.save!
  end
end