Class: S41C::Server
Instance Method Summary collapse
-
#at_exit(&block) ⇒ Object
Задать блок кода, который будет выполнен при выключении сервера.
-
#db(database, user = nil, password = nil) ⇒ Object
Параметры подключения к базе 1C.
-
#initialize(host = 'localhost', port = 1421, log_file = nil) ⇒ Server
constructor
Создать инстанс сервера.
-
#login(username, password) ⇒ Object
Задать данные для авторизации подключающихся клиентов.
-
#ole_name=(name) ⇒ Object
Название ole-объекта, который будет использоваться для подключения к 1С.
-
#start ⇒ Object
Запустить сервер.
Methods included from Utils
Constructor Details
#initialize(host = 'localhost', port = 1421, log_file = nil) ⇒ Server
Создать инстанс сервера
14 15 16 17 18 19 20 21 22 |
# File 'lib/s41c/server.rb', line 14 def initialize(host='localhost', port=1421, log_file=nil) require 'socket' require 'win32ole' @host, @port = host, port @logger = log_file ? ::STDOUT.reopen(log_file, 'a') : ::STDOUT @ole_name = 'V77.Application' end |
Instance Method Details
#at_exit(&block) ⇒ Object
Задать блок кода, который будет выполнен при выключении сервера
60 61 62 63 64 65 66 |
# File 'lib/s41c/server.rb', line 60 def at_exit(&block) ::Kernel::at_exit do yield end self end |
#db(database, user = nil, password = nil) ⇒ Object
Параметры подключения к базе 1C
40 41 42 43 44 45 46 |
# File 'lib/s41c/server.rb', line 40 def db(database, user=nil, password=nil) @conn_options = "/d #{database}" @conn_options << " /n #{user}" if user @conn_options << " /p #{password}" if password self end |
#login(username, password) ⇒ Object
Задать данные для авторизации подключающихся клиентов
28 29 30 31 32 33 |
# File 'lib/s41c/server.rb', line 28 def login(username, password) @login = username @password = password self end |
#ole_name=(name) ⇒ Object
Название ole-объекта, который будет использоваться для подключения к 1С
51 52 53 54 55 |
# File 'lib/s41c/server.rb', line 51 def ole_name=(name) @ole_name = name self end |
#start ⇒ Object
Запустить сервер
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
# File 'lib/s41c/server.rb', line 69 def start ["INT", "TERM"].each do |signal| ::Kernel::trap(signal) { log "\n*** Exiting" exit } end connect_to_1c server = TCPServer.open(@host, @port) log "*** Server has been started on #{@host}:#{@port}" log "*** Ctrl+C for stopping" begin main_loop(server) rescue Errno::ECONNABORTED log "*** [#{Time.now}] Session aborted" retry end end |