Class: Twterm::App

Inherits:
Object
  • Object
show all
Includes:
Singleton
Defined in:
lib/twterm/app.rb

Constant Summary collapse

DATA_DIR =
"#{ENV['HOME']}/.twterm"

Instance Method Summary collapse

Constructor Details

#initializeApp

Returns a new instance of App.



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/twterm/app.rb', line 7

def initialize
  Dir.mkdir(DATA_DIR, 0700) unless File.directory?(DATA_DIR)

  Auth.authenticate_user(config) if config[:screen_name].nil?

  Screen.instance
  FilterQueryWindow.instance

  timeline = Tab::Statuses::Home.new(client)
  TabManager.instance.add_and_show(timeline)

  mentions_tab = Tab::Statuses::Mentions.new(client)
  TabManager.instance.add(mentions_tab)
  TabManager.instance.recover_tabs

  Screen.instance.refresh

  client.user_stream

  reset_interruption_handler

  Signal.trap(:WINCH) { Screen.instance.resize }
end

Instance Method Details

#quitObject



47
48
49
50
51
# File 'lib/twterm/app.rb', line 47

def quit
  Curses.close_screen
  TabManager.instance.dump_tabs
  exit
end

#register_interruption_handler(&block) ⇒ Object



38
39
40
41
# File 'lib/twterm/app.rb', line 38

def register_interruption_handler(&block)
  fail ArgumentError, 'no block given' unless block_given?
  Signal.trap(:INT) { block.call }
end

#reset_interruption_handlerObject



43
44
45
# File 'lib/twterm/app.rb', line 43

def reset_interruption_handler
  Signal.trap(:INT) { App.instance.quit }
end

#runObject



31
32
33
34
35
36
# File 'lib/twterm/app.rb', line 31

def run
  run_periodic_cleanup

  Screen.instance.wait
  Screen.instance.refresh
end