Class: Tagcrumbs::User

Inherits:
Model
  • Object
show all
Defined in:
lib/tagcrumbs/resources/models/user.rb

Overview

The main actor in the webservice.

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.find_by_username(username) ⇒ Object

Load a User by its username



97
98
99
# File 'lib/tagcrumbs/resources/models/user.rb', line 97

def self.find_by_username(username)
  User.load("/#{username}")
end

.search(args = {}) ⇒ Object

Search Users by many different criterias



92
93
94
# File 'lib/tagcrumbs/resources/models/user.rb', line 92

def self.search(args={})
  Collection.load(Tagcrumbs.root.users_url, args)
end

Instance Method Details

#createObject

Custom create method as the AccessToken has to be fetched and the configuration must be updated



106
107
108
109
110
111
112
113
114
115
# File 'lib/tagcrumbs/resources/models/user.rb', line 106

def create      
  if super && access_token.is_a?(AccessToken)        
    Tagcrumbs.options[:access_token]  = access_token.token
	  Tagcrumbs.options[:access_secret] = access_token.secret
    
    true
  else
    false
  end
end

#create_urlObject



117
118
119
# File 'lib/tagcrumbs/resources/models/user.rb', line 117

def create_url
  Tagcrumbs.root.users_url # has to be overwritten, cannot be based on the current_user
end

#fan_of?(user) ⇒ Boolean

Is this user a fan of user?

Returns:

  • (Boolean)


86
87
88
# File 'lib/tagcrumbs/resources/models/user.rb', line 86

def fan_of?(user)
  fanship_with(user) ? true : false
end

#fansObject

An array of all fans of a User (people that follow this user)



56
57
58
59
60
61
62
63
64
# File 'lib/tagcrumbs/resources/models/user.rb', line 56

def fans
  array = []
  
  fanships.each_page do |page|
    array += page.map{|f| f.fan}
  end
  
  array      
end

#fanship_with(user) ⇒ Object

The fanship with a specific user



79
80
81
82
83
# File 'lib/tagcrumbs/resources/models/user.rb', line 79

def fanship_with(user)
  Fanship.load("/#{self.username}/fans/#{user}")
rescue Net::HTTPServerException => error
  self.requestor.response.code == '404' ? nil : (raise error) # not found  
end

#friend_with?(user) ⇒ Boolean

Is this user friend with user?

Returns:

  • (Boolean)


74
75
76
# File 'lib/tagcrumbs/resources/models/user.rb', line 74

def friend_with?(user)
  friendship_with(user) ? true : false
end

#friendsObject

An array of all friends of a User (people the user is following)



45
46
47
48
49
50
51
52
53
# File 'lib/tagcrumbs/resources/models/user.rb', line 45

def friends
  array = []
  
  friendships.each_page do |page|
    array += page.map{|f| f.friend}
  end
  
  array
end

#friendship_with(user) ⇒ Object

The friendship with a specific user



67
68
69
70
71
# File 'lib/tagcrumbs/resources/models/user.rb', line 67

def friendship_with(user)
  f = Friendship.load("/#{self.username}/friends/#{user}")     
rescue Net::HTTPServerException => error
  f.requestor.response.code == '404' ? nil : (raise error) # not found
end

#to_sObject



101
102
103
# File 'lib/tagcrumbs/resources/models/user.rb', line 101

def to_s
  self.username
end