ass_launcher 0.1.1.alpha → 0.2.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.
- checksums.yaml +4 -4
- data/README.md +69 -67
- data/Rakefile +19 -0
- data/ass_launcher.gemspec +8 -2
- data/bin/dev-helper +7 -0
- data/bin/lib/dev_helper/cli_def_report.rb +191 -0
- data/bin/lib/dev_helper/cli_def_snippets.rb +426 -0
- data/bin/lib/dev_helper/designer.rb +172 -0
- data/bin/lib/dev_helper.rb +59 -0
- data/examples/arguments_builder_example.rb +150 -0
- data/examples/binary_wrappers_example.rb +211 -0
- data/examples/connection_string_example.rb +59 -0
- data/examples/create_infobase_example.rb +45 -0
- data/examples/enterprise_ole_example.rb +238 -0
- data/examples/enterprise_out_example.rb +87 -0
- data/examples/enterprise_running_example.rb +103 -0
- data/examples/example_helper.rb +122 -0
- data/examples/templates/example_template.cf +0 -0
- data/examples/templates/example_template.v8i +9 -0
- data/examples/templates/hello.epf +0 -0
- data/examples/troubles/with_creteinfobase_example.rb +408 -0
- data/examples/troubles/with_running_1c_example.rb +212 -0
- data/examples/v8i_file_example.rb +72 -0
- data/examples/webclient_example.rb +67 -0
- data/lib/ass_launcher/api.rb +113 -0
- data/lib/ass_launcher/enterprise/binary_wrapper.rb +159 -144
- data/lib/ass_launcher/enterprise/cli/arguments_builder.rb +177 -16
- data/lib/ass_launcher/enterprise/cli/binary_matcher.rb +69 -0
- data/lib/ass_launcher/enterprise/cli/parameters.rb +297 -44
- data/lib/ass_launcher/enterprise/cli/spec_dsl/dsl_helpers.rb +111 -5
- data/lib/ass_launcher/enterprise/cli/spec_dsl.rb +102 -51
- data/lib/ass_launcher/enterprise/cli.rb +50 -90
- data/lib/ass_launcher/enterprise/cli_def/8.2.17.rb +317 -0
- data/lib/ass_launcher/enterprise/cli_def/8.2.18.rb +3 -0
- data/lib/ass_launcher/enterprise/cli_def/8.3.3.rb +90 -0
- data/lib/ass_launcher/enterprise/cli_def/8.3.4.rb +58 -0
- data/lib/ass_launcher/enterprise/cli_def/8.3.5.rb +21 -0
- data/lib/ass_launcher/enterprise/cli_def/8.3.6.rb +91 -0
- data/lib/ass_launcher/enterprise/cli_def/8.3.7.rb +34 -0
- data/lib/ass_launcher/enterprise/cli_def/8.3.8.rb +127 -0
- data/lib/ass_launcher/enterprise/cli_def/8.3.9.rb +131 -0
- data/lib/ass_launcher/enterprise/cli_def.rb +46 -0
- data/lib/ass_launcher/enterprise/cli_defs_loader.rb +36 -0
- data/lib/ass_launcher/enterprise/ole/ole_binaries.rb +9 -2
- data/lib/ass_launcher/enterprise/ole/win32ole.rb +1 -1
- data/lib/ass_launcher/enterprise/ole.rb +17 -1
- data/lib/ass_launcher/enterprise/web_client.rb +164 -0
- data/lib/ass_launcher/enterprise.rb +33 -6
- data/lib/ass_launcher/support/connection_string.rb +33 -8
- data/lib/ass_launcher/support/linux.rb +88 -0
- data/lib/ass_launcher/support/platforms.rb +42 -10
- data/lib/ass_launcher/support/shell.rb +33 -6
- data/lib/ass_launcher/support/v8i_file.rb +3 -1
- data/lib/ass_launcher/support/v8i_section.rb +88 -40
- data/lib/ass_launcher/support.rb +1 -0
- data/lib/ass_launcher/version.rb +8 -1
- data/lib/ass_launcher.rb +1 -0
- metadata +79 -17
- data/lib/ass_launcher/enterprise/cli/cli.spec +0 -256
- data/lib/ass_launcher/enterprise/web_clients.rb +0 -59
@@ -0,0 +1,212 @@
|
|
1
|
+
require 'example_helper'
|
2
|
+
|
3
|
+
module Examples
|
4
|
+
module TroublesWithRunning1C
|
5
|
+
describe '1C:Enterprise show stupid GUI' do
|
6
|
+
# In this cases 1C:Enterprise open GUI dialog.
|
7
|
+
# Such stupid 1C:Enerprise behavior made difficult to run 1C:Enterprise
|
8
|
+
# without human watching
|
9
|
+
|
10
|
+
# For show dialogs set $SHOW_STUPID_GUI
|
11
|
+
|
12
|
+
it 'Thin client show dialog with error message' do
|
13
|
+
skip unless TROUBLES_EXECUTE_CONTROL::SHOW_STUPID_GUI
|
14
|
+
command = CLIENTS::THIN.command(['/F','bad infobase path', '/L', 'en'])
|
15
|
+
# It show error message window
|
16
|
+
command.run.wait
|
17
|
+
# But 1C:Enterprise process exit with status 0
|
18
|
+
command.process_holder.result.success?.must_equal true
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'Thick client show dialog with offer for create new infobase' do
|
22
|
+
skip unless TROUBLES_EXECUTE_CONTROL::SHOW_STUPID_GUI
|
23
|
+
command = CLIENTS::THICK\
|
24
|
+
.command(:enterprise, ['/F','bad infobase path', '/L', 'en'])
|
25
|
+
# It show GUI dialg with offer create new infobase
|
26
|
+
command.run.wait
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'Designer show dialg with error message for serevr infobase' do
|
30
|
+
skip unless TROUBLES_EXECUTE_CONTROL::SHOW_STUPID_GUI
|
31
|
+
designer = CLIENTS::THICK.command :designer do
|
32
|
+
_S 'example.org/fake_ib'
|
33
|
+
_L 'en'
|
34
|
+
end
|
35
|
+
|
36
|
+
# It show GUI
|
37
|
+
designer.run.wait
|
38
|
+
end
|
39
|
+
|
40
|
+
describe 'Solution. For file infobase only!!!' do
|
41
|
+
it 'Arguments builder check existing path for /F parameter' do
|
42
|
+
proc {
|
43
|
+
CLIENTS::THICK.command(:enterprise) do
|
44
|
+
_F 'bad infobase path'
|
45
|
+
end
|
46
|
+
}.must_raise ArgumentError
|
47
|
+
end
|
48
|
+
|
49
|
+
it 'Connection string fails in #to_args method if path not exists' do
|
50
|
+
extend AssLauncher::Api
|
51
|
+
conns = cs_file file: 'bad infobase path'
|
52
|
+
|
53
|
+
# Call #to_args directly
|
54
|
+
proc {
|
55
|
+
CLIENTS::THIN.command(conns.to_args)
|
56
|
+
}.must_raise Errno::ENOENT
|
57
|
+
|
58
|
+
# Passing connection string into arguments builder
|
59
|
+
# have the same effect
|
60
|
+
proc {
|
61
|
+
CLIENTS::THIN.command do
|
62
|
+
connection_string conns
|
63
|
+
end
|
64
|
+
}.must_raise Errno::ENOENT
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
describe '1C:Enterprise ignores mistakes in CLI parameters' do
|
70
|
+
# Usually command line apps are checking CLI parameters and
|
71
|
+
# exits with non zero status but usually 1C:Enterprise doesn't it
|
72
|
+
|
73
|
+
it 'Pass wrong parameter name /WrongParameter' do
|
74
|
+
command = CLIENTS::THICK\
|
75
|
+
.command(:designer, ['/F', TMP::EMPTY_IB, '/WrongParameter','']) do
|
76
|
+
checkModules do
|
77
|
+
thinClient
|
78
|
+
end
|
79
|
+
end
|
80
|
+
command.run.wait.result.exitstatus.must_equal 0
|
81
|
+
end
|
82
|
+
|
83
|
+
it 'Pass wrong parameter value' do
|
84
|
+
skip unless CLIENTS::THICK.version < Gem::Version.new('8.3.4')
|
85
|
+
command = CLIENTS::THICK\
|
86
|
+
.command(:designer, ['/F', TMP::EMPTY_IB,
|
87
|
+
'/SetPredefinedDataUpdate','Bad value'
|
88
|
+
])
|
89
|
+
command.run.wait.result.exitstatus.must_equal 0
|
90
|
+
end
|
91
|
+
|
92
|
+
it 'One of the rare cases when 1C:Enterprise verifies of paramter value' do
|
93
|
+
command = CLIENTS::THICK\
|
94
|
+
.command(:designer, ['/F', TMP::EMPTY_IB]) do
|
95
|
+
checkModules do
|
96
|
+
thinClient
|
97
|
+
eXtension 'bad value'
|
98
|
+
end
|
99
|
+
end
|
100
|
+
command.run.wait.result.exitstatus.wont_equal 0
|
101
|
+
|
102
|
+
# But doesn't explains cause of error
|
103
|
+
command.process_holder.result.assout.must_equal ''
|
104
|
+
end
|
105
|
+
|
106
|
+
describe 'Solutions this troubles with arguments builder' do
|
107
|
+
it 'Arguments builder fails BuildError if unknown parameter given' do
|
108
|
+
proc {
|
109
|
+
CLIENTS::THICK\
|
110
|
+
.command (:enterprise) do
|
111
|
+
uncknownParameter
|
112
|
+
end
|
113
|
+
}.must_raise AssLauncher::Enterprise::Cli::ArgumentsBuilder::BuildError
|
114
|
+
end
|
115
|
+
|
116
|
+
it 'Cli::Parameter instance verifies given value' do
|
117
|
+
proc {
|
118
|
+
CLIENTS::THICK\
|
119
|
+
.command (:designer) do
|
120
|
+
setPredefinedDataUpdate 'Bad value'
|
121
|
+
end
|
122
|
+
}.must_raise ArgumentError
|
123
|
+
|
124
|
+
proc {
|
125
|
+
CLIENTS::THICK\
|
126
|
+
.command (:enterprise) do
|
127
|
+
debuggerURL 'tcp:/baduri'
|
128
|
+
end
|
129
|
+
}.must_raise ArgumentError
|
130
|
+
end
|
131
|
+
end
|
132
|
+
end
|
133
|
+
|
134
|
+
describe 'Trouble with /C CLI parameter' do
|
135
|
+
it 'Transform value if value contains double quote char' do
|
136
|
+
source_string = 'Hello "World"'
|
137
|
+
|
138
|
+
enterprise = CLIENTS::THICK\
|
139
|
+
.command :enterprise, ['/C', source_string] do
|
140
|
+
connection_string TMP::EMPTY_IB_CS
|
141
|
+
_Execute TEMPLATES::HELLO_EPF
|
142
|
+
end
|
143
|
+
|
144
|
+
enterprise.run.wait
|
145
|
+
ret_string = enterprise.process_holder.result.assout.strip
|
146
|
+
|
147
|
+
source_string.wont_equal ret_string
|
148
|
+
ret_string.must_equal 'Hello \\'
|
149
|
+
end
|
150
|
+
|
151
|
+
it 'Transform value if value contains escaped double quote char' do
|
152
|
+
source_string = 'Hello \"World\"'
|
153
|
+
|
154
|
+
enterprise = CLIENTS::THICK\
|
155
|
+
.command :enterprise, ['/C', source_string] do
|
156
|
+
connection_string TMP::EMPTY_IB_CS
|
157
|
+
_Execute TEMPLATES::HELLO_EPF
|
158
|
+
end
|
159
|
+
|
160
|
+
enterprise.run.wait
|
161
|
+
ret_string = enterprise.process_holder.result.assout.strip
|
162
|
+
|
163
|
+
source_string.wont_equal ret_string
|
164
|
+
ret_string.must_equal 'Hello \\\\\\'
|
165
|
+
end
|
166
|
+
|
167
|
+
describe 'Solutions' do
|
168
|
+
it 'Check value /C parameter with arguments builder' do
|
169
|
+
proc {
|
170
|
+
CLIENTS::THIN.command do
|
171
|
+
_C '"'
|
172
|
+
end
|
173
|
+
}.must_raise ArgumentError
|
174
|
+
end
|
175
|
+
|
176
|
+
it 'Passing value with single quote char' do
|
177
|
+
source_string = 'Hello \'World\''
|
178
|
+
|
179
|
+
enterprise = CLIENTS::THICK\
|
180
|
+
.command :enterprise do
|
181
|
+
_C source_string
|
182
|
+
connection_string TMP::EMPTY_IB_CS
|
183
|
+
_Debug
|
184
|
+
debuggerURL 'tcp://localhost'
|
185
|
+
_Execute TEMPLATES::HELLO_EPF
|
186
|
+
end
|
187
|
+
|
188
|
+
enterprise.run.wait
|
189
|
+
ret_string = enterprise.process_holder.result.assout.strip
|
190
|
+
|
191
|
+
source_string.must_equal ret_string
|
192
|
+
end
|
193
|
+
end
|
194
|
+
end
|
195
|
+
|
196
|
+
describe 'Designer talks "Infobase not found!" but exit with 0 for file infobase' do
|
197
|
+
designer = CLIENTS::THICK.command :designer, ['/F','./fake_ib'] do
|
198
|
+
_L 'en'
|
199
|
+
end
|
200
|
+
|
201
|
+
designer.run.wait
|
202
|
+
|
203
|
+
it 'Exitstatus == 0' do
|
204
|
+
designer.process_holder.result.exitstatus.must_equal 0
|
205
|
+
end
|
206
|
+
|
207
|
+
it 'Error message in out' do
|
208
|
+
designer.process_holder.result.assout.strip.must_equal 'Infobase not found!'
|
209
|
+
end
|
210
|
+
end
|
211
|
+
end
|
212
|
+
end
|
@@ -0,0 +1,72 @@
|
|
1
|
+
require 'example_helper'
|
2
|
+
|
3
|
+
module Examples
|
4
|
+
module V8iFile
|
5
|
+
require 'ass_launcher'
|
6
|
+
|
7
|
+
describe 'Build new v8i file' do
|
8
|
+
|
9
|
+
it 'V8i section must have :Connect field' do
|
10
|
+
proc do
|
11
|
+
AssLauncher::Support::V8iSection\
|
12
|
+
.new('Info base 1', {})
|
13
|
+
end.must_raise(ArgumentError)
|
14
|
+
end
|
15
|
+
|
16
|
+
# Build v8i section
|
17
|
+
v8i_section = AssLauncher::Support::V8iSection\
|
18
|
+
.new('Info base 1', 'Connect' => 'File="path"') do |s|
|
19
|
+
s[:ClientConnectionSpeed] = :Normal
|
20
|
+
s[:App] = :Auto
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'V8i section is case insensitive' do
|
24
|
+
v8i_section[:app].must_equal :Auto
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'For v8i section a Symbol key equal a String key' do
|
28
|
+
v8i_section[:app].must_equal :Auto
|
29
|
+
v8i_section[:app.to_s].must_equal :Auto
|
30
|
+
end
|
31
|
+
|
32
|
+
# Write section to file
|
33
|
+
v8i_file = File.join(Dir.tmpdir,'v8i_file_example.v8i')
|
34
|
+
# v8i file may contain many of sections
|
35
|
+
AssLauncher::Support::V8iFile.save(v8i_file, [v8i_section])
|
36
|
+
|
37
|
+
|
38
|
+
it 'File exists and valid' do
|
39
|
+
File.read(v8i_file).must_equal "[Info base 1]\r\n"\
|
40
|
+
"Connect=File=\"path\"\r\n"\
|
41
|
+
"ClientConnectionSpeed=Normal\r\n"\
|
42
|
+
"App=Auto\r\n"\
|
43
|
+
"\r\n"
|
44
|
+
FileUtils.rm_f v8i_file if File.exists? v8i_file
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
describe 'Use exists v8i file' do
|
49
|
+
extend AssLauncher::Api
|
50
|
+
|
51
|
+
# Read v8i file
|
52
|
+
v8i_sections = load_v8i(Examples::TEMPLATES::V8I)
|
53
|
+
|
54
|
+
# Get sections contained in v8i file
|
55
|
+
v8i_ib1 = v8i_sections.find {|s| s.caption == 'Info base 1'}
|
56
|
+
v8i_ib2 = v8i_sections.find {|s| s.caption == 'Info base 2'}
|
57
|
+
|
58
|
+
it 'v8i file contain sections describe two 1C:Enterprise applications' do
|
59
|
+
v8i_ib1.must_be_instance_of AssLauncher::Support::V8iSection
|
60
|
+
v8i_ib2.must_be_instance_of AssLauncher::Support::V8iSection
|
61
|
+
end
|
62
|
+
|
63
|
+
# Build connection string for 'Info base 1'
|
64
|
+
conns_ib1 = cs(v8i_ib1[:connect])
|
65
|
+
|
66
|
+
it 'Server connection string' do
|
67
|
+
conns_ib1.must_be_instance_of\
|
68
|
+
AssLauncher::Support::ConnectionString::Server
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
require 'example_helper'
|
2
|
+
|
3
|
+
module Examples
|
4
|
+
module WebClient
|
5
|
+
require 'ass_launcher'
|
6
|
+
|
7
|
+
describe 'Get web client instanse for connect to infobase' do
|
8
|
+
describe 'Whith URL of infobase' do
|
9
|
+
extend AssLauncher::Api
|
10
|
+
|
11
|
+
wc = web_client('http://host/path/infobase', '8.3.8')
|
12
|
+
loc = wc.location do
|
13
|
+
# Buld arguments
|
14
|
+
_N 'user name'
|
15
|
+
_P 'pass'
|
16
|
+
_L 'en'
|
17
|
+
testClientID 'id'
|
18
|
+
debuggerURL 'http://debugger:5668'
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'We get URI::HTTP instanse' do
|
22
|
+
loc.must_be_instance_of URI::HTTP
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'We get perfect string for connect to infobase' do
|
26
|
+
loc.to_s.must_equal 'http://host/path/infobase?'\
|
27
|
+
'DisableStartupMessages&'\
|
28
|
+
'N=user%20name&'\
|
29
|
+
'P=pass&'\
|
30
|
+
'L=en&'\
|
31
|
+
'TESTCLIENTID=id&'\
|
32
|
+
'DebuggerURL=http%3A%2F%2Fdebugger%3A5668'
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
describe 'Whith connection string' do
|
37
|
+
extend AssLauncher::Api
|
38
|
+
|
39
|
+
cs = cs_http(ws: 'http://host/path/infobase', usr: 'user name',
|
40
|
+
pwd: 'pass')
|
41
|
+
wc = web_client(cs.uri, '8.3.8')
|
42
|
+
|
43
|
+
loc = wc.location do
|
44
|
+
# Buld arguments
|
45
|
+
_L 'en'
|
46
|
+
testClientID 'id'
|
47
|
+
debuggerURL 'http://debugger:5668'
|
48
|
+
end
|
49
|
+
|
50
|
+
it 'We get URI::HTTP instanse' do
|
51
|
+
loc.must_be_instance_of URI::HTTP
|
52
|
+
end
|
53
|
+
|
54
|
+
it 'We get perfect string for connect to infobase' do
|
55
|
+
loc.to_s.must_equal 'http://host/path/infobase?'\
|
56
|
+
'N=user%20name&'\
|
57
|
+
'P=pass&'\
|
58
|
+
'DisableStartupMessages&'\
|
59
|
+
'L=en&'\
|
60
|
+
'TESTCLIENTID=id&'\
|
61
|
+
'DebuggerURL=http%3A%2F%2Fdebugger%3A5668'
|
62
|
+
end
|
63
|
+
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
@@ -0,0 +1,113 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
module AssLauncher
|
3
|
+
# Helpers for easy to use ass_launcher
|
4
|
+
module Api
|
5
|
+
# Return sorted array of instaled 1C binary wrappers
|
6
|
+
# @example
|
7
|
+
# inclide AssLauncher::Api
|
8
|
+
# # I can get 1C thick client specific version
|
9
|
+
# cl = thicks('~> 8.3.8.0').last
|
10
|
+
# fail "Client '~> 8.3.8.0' not found" if cl.nil?
|
11
|
+
# @param requiremet [String, Gem::Version::Requirement] spec require version
|
12
|
+
# @return [Array<AssLauncher::Enterprise::BinaryWrapper::ThickClient>]
|
13
|
+
def thicks(requiremet = '>= 0')
|
14
|
+
AssLauncher::Enterprise.thick_clients(requiremet).sort
|
15
|
+
end
|
16
|
+
|
17
|
+
# Return sorted array of instaled 1C binary wrappers
|
18
|
+
# @example
|
19
|
+
# inclide AssLauncher::Api
|
20
|
+
# # I can get 1C thin client specific version
|
21
|
+
# cl = thins('~> 8.3.8.0').last
|
22
|
+
# fail "Client '~> 8.3.8.0' not found" if cl.nil?
|
23
|
+
# @param (see .thicks)
|
24
|
+
# @return [Array<AssLauncher::Enterprise::BinaryWrapper::ThinClient>]
|
25
|
+
def thins(requiremet = '>= 0')
|
26
|
+
AssLauncher::Enterprise.thin_clients(requiremet).sort
|
27
|
+
end
|
28
|
+
|
29
|
+
# (see AssLauncher::Support::ConnectionString.new)
|
30
|
+
# @example
|
31
|
+
# include AssLauncher::Api
|
32
|
+
# file_cs = cs 'file="path";'
|
33
|
+
# srv_cs = cs 'srvr="host";ref="ib_name";'
|
34
|
+
# http_cs = cs 'ws="http://host/ib";'
|
35
|
+
def cs(connstr)
|
36
|
+
AssLauncher::Support::ConnectionString.new(connstr)
|
37
|
+
end
|
38
|
+
|
39
|
+
# @example
|
40
|
+
# include AssLauncher::Api
|
41
|
+
# fcs = cs_file({:file => 'path'})
|
42
|
+
# @return [AssLauncher::Support::ConnectionString::File]
|
43
|
+
def cs_file(hash)
|
44
|
+
AssLauncher::Support::ConnectionString::File.new hash
|
45
|
+
end
|
46
|
+
|
47
|
+
# @example
|
48
|
+
# include AssLauncher::Api
|
49
|
+
# httpcs = cs_http({:ws => 'http://host/ib'})
|
50
|
+
# @return [AssLauncher::Support::ConnectionString::Http]
|
51
|
+
def cs_http(hash)
|
52
|
+
AssLauncher::Support::ConnectionString::Http.new hash
|
53
|
+
end
|
54
|
+
|
55
|
+
# @example
|
56
|
+
# include AssLauncher::Api
|
57
|
+
# srvcs = cs_srv({:srvr => 'host', :ref=> 'ib'})
|
58
|
+
# @return [AssLauncher::Support::ConnectionString::Server]
|
59
|
+
def cs_srv(hash)
|
60
|
+
AssLauncher::Support::ConnectionString::Server.new hash
|
61
|
+
end
|
62
|
+
|
63
|
+
# (see AssLauncher::Support::V8iFile.load)
|
64
|
+
# @example
|
65
|
+
# include AssLauncher::Api
|
66
|
+
#
|
67
|
+
# v8i = load_v8i('infobase.v8i')[0]
|
68
|
+
# conn_str = cs(v8i[:connect])
|
69
|
+
# conn_str.usr = 'admin'
|
70
|
+
# conn_str.pwd = 'password'
|
71
|
+
# designer = thicks.last.command(:designer, conn_str.to_args)
|
72
|
+
# designer.run.wait
|
73
|
+
def load_v8i(filename)
|
74
|
+
AssLauncher::Support::V8iFile.load(filename)
|
75
|
+
end
|
76
|
+
|
77
|
+
# Return 1C ole client suitable class instance
|
78
|
+
# @param type [Symbol] type of 1C ole client.
|
79
|
+
# See {Enterprise::Ole::OLE_CLIENT_TYPES}
|
80
|
+
# @param requiremet [String, Gem::Version::Requirement] require version spec
|
81
|
+
# @raise [ArgumentError] if invalid +type+ given
|
82
|
+
def ole(type, requiremet = '>= 0')
|
83
|
+
AssLauncher::Enterprise::Ole.ole_client(type).new(requiremet)
|
84
|
+
end
|
85
|
+
|
86
|
+
# (see Enterprise.web_client)
|
87
|
+
# @example
|
88
|
+
# include AssLauncher::Api
|
89
|
+
#
|
90
|
+
# # Get web client instanse for connect to
|
91
|
+
# # infobase 'http://host/port/path/infobase'
|
92
|
+
# wc = web_client('http://host/path/infobase')
|
93
|
+
#
|
94
|
+
# loc = wc.location do
|
95
|
+
# _N 'user_name'
|
96
|
+
# _P 'password'
|
97
|
+
# _L 'en'
|
98
|
+
# end # => URI
|
99
|
+
#
|
100
|
+
# # Or do it with uses connecton string
|
101
|
+
# connstr = cs 'ws="http://host/path/infobase";usr="user";pwd="password"'
|
102
|
+
# wc = web_client(connstr.uri)
|
103
|
+
# loc = wc.location do
|
104
|
+
# _L 'en'
|
105
|
+
# end # => URI
|
106
|
+
#
|
107
|
+
# # And use given location URI with selenium driver:
|
108
|
+
# # driver.navigate.to loc.to_s
|
109
|
+
def web_client(uri = nil, version = nil)
|
110
|
+
AssLauncher::Enterprise.web_client(uri, version)
|
111
|
+
end
|
112
|
+
end
|
113
|
+
end
|