Class: S41C::Client

Inherits:
Object
  • Object
show all
Includes:
Utils
Defined in:
lib/s41c/client.rb

Instance Method Summary collapse

Methods included from Utils

#get_1c_id, #to_bin, #to_utf8

Constructor Details

#initialize(host = 'localhost', port = 1421) ⇒ Client

Создать инстанс клиента

Parameters:

  • адрес (String)

    сервера

  • порт (Integer)

    сервера



13
14
15
16
17
18
19
20
21
# File 'lib/s41c/client.rb', line 13

def initialize(host='localhost', port=1421)
  require 'net/telnet'
  require 's41c/parser'

  @host, @port = host, port
  @prompt = /^\+OK/n
  @errors = []

end

Instance Method Details

#disconnectObject

Отключиться от сервера



47
48
49
# File 'lib/s41c/client.rb', line 47

def disconnect
  cmd "disconnect"
end

#errorsArray

Возвращает массив ошибок

Returns:

  • (Array)

    массив ошибок



37
38
39
# File 'lib/s41c/client.rb', line 37

def errors
  @errors
end

#eval(code) ⇒ String

Выполнить на сервере строку

Parameters:

  • строка (String)

    кода

Returns:

  • (String)

    результат выполнения



74
75
76
# File 'lib/s41c/client.rb', line 74

def eval(code)
  cmd "eval\0\n#{code}\nend_of_code"
end

#login(username, password = nil) ⇒ Object

Задать данные для авторизации

Parameters:

  • логин (String)
  • пароль (String)


27
28
29
30
31
32
# File 'lib/s41c/client.rb', line 27

def (username, password = nil)
  @login = username.nil? || username.empty? ? nil : username
  @password = password

  self
end

#pingObject

Проверка соединения с сервером



42
43
44
# File 'lib/s41c/client.rb', line 42

def ping
  cmd "ping"
end

#request(vars = {}, &block) ⇒ String

Выполнить на сервере блок кода

Parameters:

  • переменные, (Hash)

    которые будут доступны внутри блока

  • блок (Proc)

    кода

Returns:

  • (String)

    результат выполнения блока



62
63
64
65
66
67
# File 'lib/s41c/client.rb', line 62

def request(vars = {}, &block)
  code = S41C::Parser.new(block).parse
  dump = Marshal.dump({vars: vars, code: code})

  self.eval dump
end

#shutdownObject

Остановить сервер и отключиться от него



52
53
54
# File 'lib/s41c/client.rb', line 52

def shutdown
  cmd "shutdown"
end