s41c 0.0.9 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|