Module: Twitter

Defined in:
lib/twitter/api.rb,
lib/twitter/store.rb,
lib/twitter/session.rb,
lib/twitter/twitter.rb,
lib/twitter/connection.rb,
lib/core_ext/delegation.rb

Defined Under Namespace

Modules: API, Delegation Classes: Connection, Session, Store

Class Method Summary collapse

Class Method Details

.authenticate(username, password) ⇒ Object

Create new session from passed credentials



47
48
49
50
51
52
# File 'lib/twitter/twitter.rb', line 47

def authenticate(username, password)
  session = Session.new(username, password)
  session.connect!
  sessions[username] = session
  @username = username
end

.authenticated?(loaded = false) ⇒ Boolean

Check for presence of session or try to load saved session

Returns:

  • (Boolean)


38
39
40
41
42
43
44
# File 'lib/twitter/twitter.rb', line 38

def authenticated?(loaded=false)
  return true if current_session and current_session.connected?
  if not loaded
    load
    authenticated?(true)
  end
end

.load(filename = nil) ⇒ Object



19
20
21
22
23
24
25
26
# File 'lib/twitter/twitter.rb', line 19

def load(filename=nil)
  store = Store.new
  store.filename = filename if filename
  if store.load
    @sessions = store.sessions
    @username = @sessions.keys.first
  end
end

.load_sessionObject

Load saved session from a .twitter file



55
56
57
58
59
60
# File 'lib/twitter/twitter.rb', line 55

def load_session
  session = Session.new(nil, nil)
  if session.load
    @session = session ; true
  end
end

.method_missing(sym, *args, &blk) ⇒ Object

Delegate method missing calls to session



29
30
31
32
33
34
35
# File 'lib/twitter/twitter.rb', line 29

def method_missing(sym, *args, &blk)
  if authenticated? and delegating?(sym)
    current_session.send(sym, *args, &blk)
  else
    super
  end
end

.reset!Object

Reset session



4
5
6
7
# File 'lib/twitter/twitter.rb', line 4

def reset!
  sessions.clear
  @username = nil
end

.save(filename = nil) ⇒ Object



13
14
15
16
17
# File 'lib/twitter/twitter.rb', line 13

def save(filename=nil)
  store = Store.new(:sessions => sessions.values)
  store.filename = filename if filename
  store.save
end

.use(username) ⇒ Object



9
10
11
# File 'lib/twitter/twitter.rb', line 9

def use(username)
  @username = username
end