s41c 0.0.9 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +8 -4
- data/lib/s41c/client.rb +9 -4
- data/lib/s41c/parser.rb +1 -1
- data/lib/s41c/sandbox.rb +3 -1
- data/lib/s41c/server.rb +6 -1
- data/lib/s41c/version.rb +1 -1
- metadata +2 -5
- data/s41c-0.0.6.gem +0 -0
- data/s41c-0.0.7.gem +0 -0
- data/s41c-0.0.8.gem +0 -0
data/README.md
CHANGED
@@ -28,13 +28,14 @@ TCP-socket-сервер и клиент для платформы "1С:Пред
|
|
28
28
|
server.start
|
29
29
|
|
30
30
|
Или чуть сложнее: запустить сервер для 1С:Предприятия (локальная версия) на
|
31
|
-
127.0.0.1:2000,
|
32
|
-
"username" и пароль "password",
|
33
|
-
остановки сервера в файл
|
31
|
+
127.0.0.1:2000, разрешать подключения только с адреса 123.45.67.8, использовать
|
32
|
+
базу "C:\Base\", при подключении требовать логин "username" и пароль "password",
|
33
|
+
писать лог в c:\server.log и записать время остановки сервера в файл
|
34
34
|
|
35
35
|
require 's41c'
|
36
36
|
|
37
37
|
server = S41C::Server.new('127.0.0.1', 2000, 'c:\server.log')
|
38
|
+
server.white_list('123.45.67.8')
|
38
39
|
server.ole_name = 'V77L.Application'
|
39
40
|
server.db('C:\Base\\')
|
40
41
|
|
@@ -51,7 +52,10 @@ TCP-socket-сервер и клиент для платформы "1С:Пред
|
|
51
52
|
При подключении можно указать хост и порт сервера (если не указаны, будут
|
52
53
|
использоваться localhost:1421), а также данные для авторизации. После
|
53
54
|
подключения на сервер передаётся руби-код, который и выполняет все,
|
54
|
-
что нам
|
55
|
+
что нам нужно.
|
56
|
+
Внимание! В передаваемом коде нельзя использовать комментарии и условия вида
|
57
|
+
"do_somthing if some_condition", вместо это следует писать "if some_condition
|
58
|
+
do_somthing;end", аналогично для unless
|
55
59
|
|
56
60
|
require 's41c'
|
57
61
|
|
data/lib/s41c/client.rb
CHANGED
@@ -9,12 +9,13 @@ module S41C
|
|
9
9
|
# Создать инстанс клиента
|
10
10
|
#
|
11
11
|
# @param [ String ] адрес сервера
|
12
|
-
# @param [ Integer ] порт сервера
|
13
|
-
|
12
|
+
# @param [ Integer ] порт сервера (по умолчанию 1421)
|
13
|
+
# @param [ Integer ] таймаут (по умолчанию 30 секунд)
|
14
|
+
def initialize(host='localhost', port=1421, timeout=30)
|
14
15
|
require 'net/telnet'
|
15
16
|
require 's41c/parser'
|
16
17
|
|
17
|
-
@host, @port = host, port
|
18
|
+
@host, @port, @timeout = host, port, timeout
|
18
19
|
@prompt = /^\+OK/n
|
19
20
|
@errors = []
|
20
21
|
|
@@ -81,7 +82,11 @@ module S41C
|
|
81
82
|
return true if @client
|
82
83
|
begin
|
83
84
|
|
84
|
-
@client = Net::Telnet.new('Host' => @host,
|
85
|
+
@client = Net::Telnet.new('Host' => @host,
|
86
|
+
'Port' => @port,
|
87
|
+
'Prompt' => @prompt,
|
88
|
+
'Timeout' => @timeout
|
89
|
+
)
|
85
90
|
|
86
91
|
if @login
|
87
92
|
resp = @client.login(@login, @password)
|
data/lib/s41c/parser.rb
CHANGED
data/lib/s41c/sandbox.rb
CHANGED
data/lib/s41c/server.rb
CHANGED
@@ -19,6 +19,8 @@ module S41C
|
|
19
19
|
@logger = log_file ? ::STDOUT.reopen(log_file, 'a') : ::STDOUT
|
20
20
|
@ole_name = 'V77.Application'
|
21
21
|
|
22
|
+
@local_storage = {}
|
23
|
+
|
22
24
|
end
|
23
25
|
|
24
26
|
# Задать данные для авторизации подключающихся клиентов
|
@@ -32,6 +34,9 @@ module S41C
|
|
32
34
|
self
|
33
35
|
end
|
34
36
|
|
37
|
+
# Задать IP-адреса, с которых разрешено подключение
|
38
|
+
#
|
39
|
+
# @param [ Array ] список адресов
|
35
40
|
def white_list(*args)
|
36
41
|
@white_list = args
|
37
42
|
end
|
@@ -125,7 +130,7 @@ module S41C
|
|
125
130
|
def eval_code(dump)
|
126
131
|
return "Error: not connected to 1C" unless @conn
|
127
132
|
|
128
|
-
S41C::Sandbox.new(@ole, dump).eval_code
|
133
|
+
S41C::Sandbox.new(@ole, @local_storage, dump).eval_code
|
129
134
|
end
|
130
135
|
|
131
136
|
def main_loop(server)
|
data/lib/s41c/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: s41c
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-04-
|
12
|
+
date: 2012-04-30 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: TCP-socket сервер и клиент для платформы "1С:Предприятие"
|
15
15
|
email:
|
@@ -20,7 +20,6 @@ extra_rdoc_files: []
|
|
20
20
|
files:
|
21
21
|
- LICENSE.BSD
|
22
22
|
- s41c.gemspec
|
23
|
-
- s41c-0.0.6.gem
|
24
23
|
- README.md
|
25
24
|
- lib/s41c/sandbox.rb
|
26
25
|
- lib/s41c/version.rb
|
@@ -29,10 +28,8 @@ files:
|
|
29
28
|
- lib/s41c/server.rb
|
30
29
|
- lib/s41c/client.rb
|
31
30
|
- lib/s41c.rb
|
32
|
-
- s41c-0.0.8.gem
|
33
31
|
- Gemfile
|
34
32
|
- Rakefile
|
35
|
-
- s41c-0.0.7.gem
|
36
33
|
homepage: https://github.com/dancingbytes/s41c
|
37
34
|
licenses: []
|
38
35
|
post_install_message:
|
data/s41c-0.0.6.gem
DELETED
Binary file
|
data/s41c-0.0.7.gem
DELETED
Binary file
|
data/s41c-0.0.8.gem
DELETED
Binary file
|