Module: Flumtter

Defined in:
lib/flumtter/version.rb,
lib/flumtter/app/core/cli.rb,
lib/flumtter/app/core/core.rb,
lib/flumtter/app/core/util.rb,
lib/flumtter/app/core/toast.rb,
lib/flumtter/app/core/client.rb,
lib/flumtter/app/core/curses.rb,
lib/flumtter/app/plugins/cli.rb,
lib/flumtter/app/plugins/pry.rb,
lib/flumtter/app/core/command.rb,
lib/flumtter/app/core/plugins.rb,
lib/flumtter/app/plugins/load.rb,
lib/flumtter/app/plugins/tmux.rb,
lib/flumtter/app/core/keyboard.rb,
lib/flumtter/app/core/terminal.rb,
lib/flumtter/app/plugins/toast.rb,
lib/flumtter/app/core/command/dm.rb,
lib/flumtter/app/plugins/commands.rb,
lib/flumtter/app/plugins/timeline.rb,
lib/flumtter/app/core/command/user.rb,
lib/flumtter/app/core/windows/base.rb,
lib/flumtter/app/core/windows/list.rb,
lib/flumtter/app/core/command/tweet.rb,
lib/flumtter/app/core/windows/popup.rb,
lib/flumtter/app/core/windows/tweet.rb,
lib/flumtter/app/core/windows/dialog.rb,
lib/flumtter/app/core/windows/dmbase.rb,
lib/flumtter/app/plugins/timeline/dm.rb,
lib/flumtter/app/core/windows/mention.rb,
lib/flumtter/app/plugins/timeline/fav.rb,
lib/flumtter/app/core/account_selector.rb,
lib/flumtter/app/core/command/userlist.rb,
lib/flumtter/app/core/windows/favorite.rb,
lib/flumtter/app/core/windows/follower.rb,
lib/flumtter/app/core/windows/userbase.rb,
lib/flumtter/app/plugins/commands/list.rb,
lib/flumtter/app/plugins/commands/user.rb,
lib/flumtter/app/plugins/timeline/base.rb,
lib/flumtter/app/core/windows/following.rb,
lib/flumtter/app/core/windows/tweetbase.rb,
lib/flumtter/app/plugins/commands/reply.rb,
lib/flumtter/app/plugins/plugin_manager.rb,
lib/flumtter/app/plugins/timeline/event.rb,
lib/flumtter/app/plugins/timeline/tweet.rb,
lib/flumtter/app/core/windows/buf_window.rb,
lib/flumtter/app/plugins/commands/delete.rb,
lib/flumtter/app/plugins/commands/mention.rb,
lib/flumtter/app/plugins/commands/retweet.rb,
lib/flumtter/app/plugins/commands/utility.rb,
lib/flumtter/app/core/windows/conversation.rb,
lib/flumtter/app/core/windows/dynamic_view.rb,
lib/flumtter/app/plugins/commands/favorite.rb,
lib/flumtter/app/plugins/commands/new_tweet.rb,
lib/flumtter/app/plugins/commands/unfavorite.rb,
lib/flumtter/app/plugins/commands/conversation.rb,
lib/flumtter/app/plugins/commands/directmessage.rb,
lib/flumtter/app/plugins/timeline/deleted_tweet.rb,
lib/flumtter/app/plugins/commands/change_profile.rb,
lib/flumtter/app/plugins/commands/directmessages.rb,
lib/flumtter/app/plugins/commands/account_changer.rb

Defined Under Namespace

Modules: Plugins, TimeLine, Util, Window Classes: Account, AccountSelector, Cli, Client, Command, ExecutedError, Keyboard, NoContentError, Terminal, Toast, UnSupportError

Constant Summary collapse

VERSION =
"5.9.2"
StartTime =
Time.now
SourcePath =
File.expand_path('../../', __FILE__)
UserPath =
File.expand_path('~/.flumtter')
Logger =
Logger.new(UserPath.join('flumtter.log'))
Config =
Marshal.load(File.read(data_path)) rescue {}
TITLE =
"Flumtter"

Class Method Summary collapse

Class Method Details

.callback(event, object = nil) ⇒ Object



58
59
60
# File 'lib/flumtter/app/core/core.rb', line 58

def callback(event,object=nil)
  @events[event].each{|blk|blk.call(object)}
end

.load_plugin(source, path, file = nil) ⇒ Object



37
38
39
40
41
42
43
# File 'lib/flumtter/app/core/core.rb', line 37

def load_plugin(source, path, file=nil)
  path = file.nil? ? source.join(path, '*.rb') : source.join(path, file)
  Dir.glob(path).each do |plugin|
    logger.debug("Load: #{plugin}")
    require plugin
  end
end

.loggerObject



33
34
35
# File 'lib/flumtter/app/core/core.rb', line 33

def logger
  Logger
end

.on_event(event, &blk) ⇒ Object



54
55
56
# File 'lib/flumtter/app/core/core.rb', line 54

def on_event(event,&blk)
  @events[event] << blk
end

.sarastire(*args) ⇒ Object



45
46
47
# File 'lib/flumtter/app/core/core.rb', line 45

def sarastire(*args)
  load_plugin(SourcePath, *args)
end

.sarastire_user(*args) ⇒ Object



49
50
51
# File 'lib/flumtter/app/core/core.rb', line 49

def sarastire_user(*args)
  load_plugin(UserPath, *args)
end

.startObject



76
77
78
79
80
81
82
83
84
85
86
87
# File 'lib/flumtter/app/core/core.rb', line 76

def start
  options = Initializer.optparse
  Setting.merge!(options)
  Client.new AccountSelector.select(options)
rescue Interrupt
rescue Exception => ex
  logger.fatal(<<~EOS)
    #{ex.backtrace.shift}: #{ex.message} (#{ex.class})
    #{ex.backtrace.join("\n")}
  EOS
  raise ex
end