Class: S41C::Server
Instance Method Summary collapse
-
#at_exit(&block) ⇒ Object
Задать блок кода, который будет выполнен при выключении сервера.
-
#db(database, user = nil, password = nil) ⇒ Object
Параметры подключения к базе 1C.
-
#initialize(host = '0.0.0.0', port = 1421, log_file = nil) ⇒ Server
constructor
Создать инстанс сервера.
-
#login(username, password) ⇒ Object
Задать данные для авторизации подключающихся клиентов.
-
#ole_name=(name) ⇒ Object
Название ole-объекта, который будет использоваться для подключения к 1С.
-
#start ⇒ Object
Запустить сервер.
-
#white_list(*args) ⇒ Object
Задать IP-адреса, с которых разрешено подключение.
Methods included from Utils
Constructor Details
#initialize(host = '0.0.0.0', port = 1421, log_file = nil) ⇒ Server
Создать инстанс сервера
14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/s41c/server.rb', line 14 def initialize(host='0.0.0.0', 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' @local_storage = {} end |
Instance Method Details
#at_exit(&block) ⇒ Object
Задать блок кода, который будет выполнен при выключении сервера
69 70 71 72 73 74 75 |
# File 'lib/s41c/server.rb', line 69 def at_exit(&block) ::Kernel::at_exit do yield end self end |
#db(database, user = nil, password = nil) ⇒ Object
Параметры подключения к базе 1C
49 50 51 52 53 54 55 |
# File 'lib/s41c/server.rb', line 49 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
Задать данные для авторизации подключающихся клиентов
30 31 32 33 34 35 |
# File 'lib/s41c/server.rb', line 30 def login(username, password) @login = username @password = password self end |
#ole_name=(name) ⇒ Object
Название ole-объекта, который будет использоваться для подключения к 1С
60 61 62 63 64 |
# File 'lib/s41c/server.rb', line 60 def ole_name=(name) @ole_name = name self end |
#start ⇒ Object
Запустить сервер
78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 |
# File 'lib/s41c/server.rb', line 78 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 |
#white_list(*args) ⇒ Object
Задать IP-адреса, с которых разрешено подключение
40 41 42 |
# File 'lib/s41c/server.rb', line 40 def white_list(*args) @white_list = args end |