Class: Twitter::List

Inherits:
Object
  • Object
show all
Defined in:
lib/twitter-lists/list.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#descriptionObject

Returns the value of attribute description.



5
6
7
# File 'lib/twitter-lists/list.rb', line 5

def description
  @description
end

#idObject

Returns the value of attribute id.



5
6
7
# File 'lib/twitter-lists/list.rb', line 5

def id
  @id
end

#membersObject

Returns the value of attribute members.



5
6
7
# File 'lib/twitter-lists/list.rb', line 5

def members
  @members
end

#nameObject

Returns the value of attribute name.



5
6
7
# File 'lib/twitter-lists/list.rb', line 5

def name
  @name
end

#userObject

Returns the value of attribute user.



5
6
7
# File 'lib/twitter-lists/list.rb', line 5

def user
  @user
end

Class Method Details

.intersection(*lists) ⇒ Object



42
43
44
45
# File 'lib/twitter-lists/list.rb', line 42

def intersection(*lists)
  sets = lists_to_sets(lists)
  sets.inject { |i,s| s.intersection i }.to_a
end

.lists_to_sets(lists) ⇒ Object



32
33
34
35
# File 'lib/twitter-lists/list.rb', line 32

def lists_to_sets(lists)
  lists = lists.collect { |l| l.is_a?(List) ? l : parse(l) }
  lists.collect { |l| l.load_members ; Set.new(l.members) }
end

.parse(str) ⇒ Object



20
21
22
23
24
# File 'lib/twitter-lists/list.rb', line 20

def parse(str)
  n = new
  n.user, n.name = str.sub(/^@/,'').split('/')
  n
end

.parse_and_load(str) ⇒ Object



26
27
28
29
30
# File 'lib/twitter-lists/list.rb', line 26

def parse_and_load(str)
  n = parse(str)
  n.load_members
  n
end

.setup_basic_auth(username, password) ⇒ Object



16
17
18
# File 'lib/twitter-lists/list.rb', line 16

def setup_basic_auth(username, password)
  self.twitter_base = Twitter::Base.new(Twitter::HTTPAuth.new(username, password))
end

.twitter_baseObject



8
9
10
# File 'lib/twitter-lists/list.rb', line 8

def twitter_base
  @twitter_base
end

.twitter_base=(base) ⇒ Object



12
13
14
# File 'lib/twitter-lists/list.rb', line 12

def twitter_base=(base)
  @twitter_base=base
end

.union(*lists) ⇒ Object



37
38
39
40
# File 'lib/twitter-lists/list.rb', line 37

def union(*lists)
  sets = lists_to_sets(lists)
  sets.inject { |u,s| s.union u }.to_a
end

Instance Method Details

#load_membersObject



52
53
54
# File 'lib/twitter-lists/list.rb', line 52

def load_members
  self.members = load_members_paged.collect { |x| [x.id, x.screen_name] }
end

#load_members_paged(acc = [], cursor = -1)) ⇒ Object



64
65
66
67
68
# File 'lib/twitter-lists/list.rb', line 64

def load_members_paged(acc=[],cursor=-1)
  response = twitter_base.list_members(user,name,cursor)
  acc += response.users
  response.next_cursor == 0 ? acc : load_members_paged(acc,response.next_cursor)
end

#member_idsObject



60
61
62
# File 'lib/twitter-lists/list.rb', line 60

def member_ids
  members.collect { |x| userid(x) }
end

#member_namesObject



56
57
58
# File 'lib/twitter-lists/list.rb', line 56

def member_names
  members.collect { |x| username(x) }
end

#twitter_baseObject



48
49
50
# File 'lib/twitter-lists/list.rb', line 48

def twitter_base
  self.class.twitter_base
end