-
Notifications
You must be signed in to change notification settings - Fork 1
/
rakefile.rb
81 lines (66 loc) · 1.57 KB
/
rakefile.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
require 'rake'
require 'awesome_print'
require 'colorize'
require_relative 'lib/dialog'
require_relative 'lib/session'
require_relative 'lib/adapters/stdio'
# http://stackoverflow.com/a/11320444/1786393
Rake::TaskManager.record_task_metadata = true
# http://stackoverflow.com/a/11320444/1786393
task :default do
Rake::application.options.show_tasks = :tasks # this solves sidewaysmilk problem
Rake::application.options.show_task_pattern = //
Rake::application.display_tasks_and_comments
end
=begin
namespace :telegram do
desc "Create bot app template for given token"
task :new, [:token] do |t, args|
bot_name = Tokens.find_bot_name(args.token)
Template.build_app(bot_name, args.token, Config.app_directory)
end
end
=end
namespace :run do
desc "run dialog from terminal"
task :terminal do
run_terminal
end
desc "run dialog as telegram bot"
task :telegram do
# TODO
end
end
def run_terminal
#
# require all necessary dialogs
#
Dialog.require :main
Dialog.require :order
Dialog.require :list
#
# initial default session (start from main dialog)
#
Dialog.root Main
#
# CTRl-C to exit the loop
#
trap_ctrlc
#
# start Dialog as a terminal chat
#
Dialog.run ClientAdapter::Terminal
end
def trap_ctrlc
trap('INT') do
# Marshal.dump @notified_orders_set
#File.open(@notified_orders_filename,'w') { |file| Marshal.dump(@notified_orders_set, file) }
puts
puts Session.load.to_s.yellow
puts
puts "#{$0} has ended (crowd applauds)"
exit 0
end
end
# aliases
#task :server => 'server:show'