Class: Twitter::Store

Inherits:
Object
  • Object
show all
Defined in:
lib/twitter/store.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(env = {}) ⇒ Store

Returns a new instance of Store.



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

def initialize(env={})
  @env = env
  @sessions = @env[:sessions]
end

Instance Attribute Details

#filenameObject

Allow custom name for dot file used to persist sessions



23
24
25
# File 'lib/twitter/store.rb', line 23

def filename
  @filename || '.twitter'
end

Instance Method Details

#loadObject

Attempt to load the current session from a dot file



18
19
20
# File 'lib/twitter/store.rb', line 18

def load
  YAML.load_file(File.join(ENV['HOME'], filename)) || {}
end

#saveObject

Persist the current session to a dot file



11
12
13
14
15
# File 'lib/twitter/store.rb', line 11

def save
  f = File.new(File.join(ENV['HOME'], filename), 'w+')
  f << yaml_dump
  f.close
end

#sessionsObject



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

def sessions
  @sessions ||= begin
    load[:sessions].inject({}) do |res, (key, val)|
      password = crypter.decrypt_string(val)
      res[key] = Session.new(key, password, :connected => true)
      res
    end
  end
end