ass_launcher 0.1.1.alpha → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
@@ -25,7 +25,7 @@ module AssLauncher
|
|
25
25
|
end
|
26
26
|
|
27
27
|
def parameters
|
28
|
-
@parameters ||= Parameters::
|
28
|
+
@parameters ||= Parameters::AllParameters.new
|
29
29
|
end
|
30
30
|
|
31
31
|
attr_accessor :current_modes
|
@@ -44,21 +44,127 @@ module AssLauncher
|
|
44
44
|
end
|
45
45
|
private :current_parent
|
46
46
|
|
47
|
-
def new_param(klass, name, desc,
|
48
|
-
|
47
|
+
def new_param(klass, name, desc, clients = [], options = {}, &block)
|
48
|
+
fail 'Group must be specifed' if current_group.nil?
|
49
|
+
fail 'Modes must be specifed' if current_modes.nil?
|
50
|
+
p = klass.new(name, desc,
|
51
|
+
new_binary_matcher(clients),
|
52
|
+
current_group,
|
49
53
|
current_modes, current_parent, **options)
|
50
|
-
|
51
|
-
parameters << p
|
54
|
+
add_parameter(p)
|
52
55
|
eval_sub_params(p, &block) if block_given?
|
53
56
|
end
|
54
57
|
private :new_param
|
55
58
|
|
59
|
+
def new_binary_matcher(clients)
|
60
|
+
return (inherid_binary_matcher || auto_binary_matcher) if\
|
61
|
+
clients.size == 0
|
62
|
+
BinaryMatcher.new(clients, from_current_version)
|
63
|
+
end
|
64
|
+
private :new_binary_matcher
|
65
|
+
|
66
|
+
def auto_binary_matcher
|
67
|
+
BinaryMatcher.auto(current_modes, from_current_version)
|
68
|
+
end
|
69
|
+
private :auto_binary_matcher
|
70
|
+
|
71
|
+
def inherid_binary_matcher
|
72
|
+
BinaryMatcher.new(current_parent.binary_matcher.clients,
|
73
|
+
from_current_version) if current_parent
|
74
|
+
end
|
75
|
+
private :inherid_binary_matcher
|
76
|
+
|
77
|
+
def change_param(name, &block)
|
78
|
+
p = get_parameter(name)
|
79
|
+
old_g = current_group
|
80
|
+
old_m = current_modes
|
81
|
+
self.current_group = p.group
|
82
|
+
self.current_modes = p.modes
|
83
|
+
eval_sub_params(p, &block) if block_given?
|
84
|
+
self.current_group = old_g
|
85
|
+
self.current_modes = old_m
|
86
|
+
end
|
87
|
+
private :change_param
|
88
|
+
|
89
|
+
def get_parameter(name)
|
90
|
+
p = parameters.find_for_version(name,
|
91
|
+
current_parent,
|
92
|
+
current_version)
|
93
|
+
fail "Parameter #{name} not found for #{current_version}." unless p
|
94
|
+
p
|
95
|
+
end
|
96
|
+
private :get_parameter
|
97
|
+
|
98
|
+
def add_parameter(p)
|
99
|
+
parameters.add p, current_version
|
100
|
+
end
|
101
|
+
private :add_parameter
|
102
|
+
|
103
|
+
# @return [nil]
|
104
|
+
def restrict_params(name, v)
|
105
|
+
get_parameters(name).each do |p|
|
106
|
+
p.restrict_from(v)
|
107
|
+
end
|
108
|
+
nil
|
109
|
+
end
|
110
|
+
private :restrict_params
|
111
|
+
|
112
|
+
def get_parameters(name)
|
113
|
+
p = parameters.find(name, current_parent)
|
114
|
+
fail "Parameter #{name} not found." if p.size == 0
|
115
|
+
p
|
116
|
+
end
|
117
|
+
private :get_parameters
|
118
|
+
|
56
119
|
def eval_sub_params(p, &block)
|
57
120
|
parents_stack.unshift p
|
58
121
|
instance_eval(&block)
|
59
122
|
parents_stack.shift
|
60
123
|
end
|
61
124
|
private :eval_sub_params
|
125
|
+
|
126
|
+
def enterprise_versions
|
127
|
+
@enterprise_versions ||= []
|
128
|
+
end
|
129
|
+
|
130
|
+
def add_enterprise_versions(v)
|
131
|
+
fail ArgumentError, 'Invalid version sequences. Expects version >'\
|
132
|
+
" #{current_version} but given #{v}" unless v > current_version
|
133
|
+
enterprise_versions << v
|
134
|
+
end
|
135
|
+
private :add_enterprise_versions
|
136
|
+
|
137
|
+
def reset_all
|
138
|
+
reset_group
|
139
|
+
reset_modes
|
140
|
+
end
|
141
|
+
private :reset_all
|
142
|
+
|
143
|
+
def reset_group
|
144
|
+
self.current_group = nil
|
145
|
+
end
|
146
|
+
private :reset_group
|
147
|
+
|
148
|
+
def reset_modes
|
149
|
+
self.current_modes = nil
|
150
|
+
end
|
151
|
+
private :reset_modes
|
152
|
+
|
153
|
+
def current_version
|
154
|
+
return Gem::Version.new('0') if enterprise_versions.last.nil?
|
155
|
+
enterprise_versions.last
|
156
|
+
end
|
157
|
+
private :current_version
|
158
|
+
|
159
|
+
def from_current_version
|
160
|
+
from_version current_version
|
161
|
+
end
|
162
|
+
private :from_current_version
|
163
|
+
|
164
|
+
def from_version(v)
|
165
|
+
Gem::Version::Requirement.new ">= #{v}"
|
166
|
+
end
|
167
|
+
private :from_version
|
62
168
|
end
|
63
169
|
end
|
64
170
|
end
|
@@ -7,13 +7,14 @@ module AssLauncher
|
|
7
7
|
# @api public
|
8
8
|
module SpecDsl
|
9
9
|
require 'ass_launcher/enterprise/cli/spec_dsl/dsl_helpers'
|
10
|
-
require 'uri'
|
10
|
+
require 'addressable/uri'
|
11
11
|
include DslHelpers
|
12
12
|
|
13
13
|
# Define 1C:Enterprise version for defined CLI specifications
|
14
14
|
# @param v [String] 1C:Enterprise verion string
|
15
|
-
def enterprise_version(v
|
16
|
-
|
15
|
+
def enterprise_version(v)
|
16
|
+
reset_all
|
17
|
+
add_enterprise_versions Gem::Version.new(v)
|
17
18
|
end
|
18
19
|
|
19
20
|
# Describe run modes specifications
|
@@ -35,28 +36,23 @@ module AssLauncher
|
|
35
36
|
{ desc: _t(desc), priority: priority }
|
36
37
|
end
|
37
38
|
|
38
|
-
|
39
|
-
#
|
40
|
-
# @
|
41
|
-
|
42
|
-
|
43
|
-
BinaryMatcher.new(:thick, v)
|
39
|
+
|
40
|
+
# Return 1C client identifier see {BinaryMatcher::ALL_CLIENTS}
|
41
|
+
# @return [Symbol] :thick
|
42
|
+
def thick
|
43
|
+
:thick
|
44
44
|
end
|
45
45
|
|
46
|
-
#
|
47
|
-
#
|
48
|
-
|
49
|
-
|
50
|
-
def thin_client(v = '>= 0')
|
51
|
-
BinaryMatcher.new(:thin, v)
|
46
|
+
# Return 1C client identifier see {BinaryMatcher::ALL_CLIENTS}
|
47
|
+
# @return [Symbol] :thin
|
48
|
+
def thin
|
49
|
+
:thin
|
52
50
|
end
|
53
51
|
|
54
|
-
#
|
55
|
-
#
|
56
|
-
|
57
|
-
|
58
|
-
def all_client(v = '>= 0')
|
59
|
-
BinaryMatcher.new(:all, v)
|
52
|
+
# Return 1C client identifier see {BinaryMatcher::ALL_CLIENTS}
|
53
|
+
# @return [Symbol] :web
|
54
|
+
def web
|
55
|
+
:web
|
60
56
|
end
|
61
57
|
|
62
58
|
# Block to define CLI parameters for run modes
|
@@ -64,11 +60,17 @@ module AssLauncher
|
|
64
60
|
# @raise if passed invalid 1C:Enterprise run mode
|
65
61
|
# @raise if call without block
|
66
62
|
def mode(*modes, &block)
|
67
|
-
|
68
|
-
fail '
|
63
|
+
fail_if_wrong_modes modes
|
64
|
+
fail 'Block required' unless block_given?
|
69
65
|
self.current_modes = modes
|
70
66
|
instance_eval(&block)
|
67
|
+
reset_modes
|
68
|
+
end
|
69
|
+
|
70
|
+
def fail_if_wrong_modes(modes)
|
71
|
+
fail "Undefined modes #{modes}" if (defined_modes & modes).size == 0
|
71
72
|
end
|
73
|
+
private :fail_if_wrong_modes
|
72
74
|
|
73
75
|
# Block to grouping CLI parameters into parameters group.
|
74
76
|
# Group must be defined as {#define_group}
|
@@ -76,13 +78,19 @@ module AssLauncher
|
|
76
78
|
# @raise if passed undefined group
|
77
79
|
# @raise if call without block
|
78
80
|
def group(key, &block)
|
79
|
-
|
80
|
-
|
81
|
-
fail 'method `group` block required' unless block_given?
|
81
|
+
fail_if_wrong_group(key)
|
82
|
+
fail 'Block required' unless block_given?
|
82
83
|
self.current_group = key
|
83
84
|
instance_eval(&block)
|
85
|
+
reset_group
|
84
86
|
end
|
85
87
|
|
88
|
+
def fail_if_wrong_group(key)
|
89
|
+
fail "Undefined parameters group #{key}" unless parameters_groups
|
90
|
+
.key? key
|
91
|
+
end
|
92
|
+
private :fail_if_wrong_group
|
93
|
+
|
86
94
|
# Build switch or chose list for CLI parameters clases:
|
87
95
|
# {Cli::Parameters::Switch} or {Cli::Parameters::Chose}
|
88
96
|
# @param options [Hash] +:key+ is argument for CLI parameter, +value+ is
|
@@ -99,33 +107,57 @@ module AssLauncher
|
|
99
107
|
# @param name [String] name of 1C:Enterprise CLI parameter
|
100
108
|
# @param desc [String] description of 1C:Enterprise CLI parameter for
|
101
109
|
# build help message
|
102
|
-
# @param
|
103
|
-
# {#
|
104
|
-
#
|
105
|
-
# verions like returns {#all_client} method
|
110
|
+
# @param clients [Array] uses DSL:
|
111
|
+
# {#thick}, {#thin} or {#web}. On default uses
|
112
|
+
# array for all 1C clients {BinaryMatcher::ALL_CLIENTS}
|
106
113
|
# @param options (see Cli::Parameters::StringParam#initialize)
|
107
114
|
# @return [Cli::Parameters::Path]
|
108
|
-
def path(name, desc,
|
115
|
+
def path(name, desc, *clients, **options, &block)
|
109
116
|
new_param(Parameters::Path, name, desc,
|
110
|
-
|
117
|
+
clients, **options, &block)
|
118
|
+
end
|
119
|
+
|
120
|
+
# Path with exist validation.
|
121
|
+
# @see #path
|
122
|
+
# @param (see #path)
|
123
|
+
# @return (see #path)
|
124
|
+
def path_exist(name, desc, *clients, **options, &block)
|
125
|
+
path(name, desc, *clients, options.merge(must_be: :exist),
|
126
|
+
&block)
|
127
|
+
end
|
128
|
+
|
129
|
+
# Path with not exist validation.
|
130
|
+
# @see #path
|
131
|
+
# @param (see #path)
|
132
|
+
# @return (see #path)
|
133
|
+
def path_not_exist(name, desc, *clients, **options, &block)
|
134
|
+
path(name, desc, *clients,
|
135
|
+
options.merge(must_be: :not_exist),
|
136
|
+
&block)
|
137
|
+
end
|
138
|
+
|
139
|
+
# @return [Cli::Parameters::PathTwice]
|
140
|
+
def path_twice(name, desc, *clients, **options, &block)
|
141
|
+
new_param(Parameters::PathTwice, name, desc,
|
142
|
+
clients, **options, &block)
|
111
143
|
end
|
112
144
|
|
113
145
|
# Define {Cli::Parameters::StringParam} parameter and him subparameters.
|
114
146
|
# Subparameters defines in the block.
|
115
147
|
# @param (see #path)
|
116
148
|
# @return [Cli::Parameters::StringParam]
|
117
|
-
def string(name, desc,
|
149
|
+
def string(name, desc, *clients, **options, &block)
|
118
150
|
new_param(Parameters::StringParam, name, desc,
|
119
|
-
|
151
|
+
clients, **options, &block)
|
120
152
|
end
|
121
153
|
|
122
154
|
# Define {Cli::Parameters::Flag} parameter and him subparameters.
|
123
155
|
# Subparameters defines in the block.
|
124
156
|
# @param (see #path)
|
125
157
|
# @return [Cli::Parameters::Flag]
|
126
|
-
def flag(name, desc,
|
158
|
+
def flag(name, desc, *clients, **options, &block)
|
127
159
|
new_param(Parameters::Flag, name, desc,
|
128
|
-
|
160
|
+
clients, **options, &block)
|
129
161
|
end
|
130
162
|
|
131
163
|
# Define {Cli::Parameters::Switch} parameter and him subparameters.
|
@@ -133,9 +165,9 @@ module AssLauncher
|
|
133
165
|
# @note use helper {#switch_list} for build +:switch_list+ option
|
134
166
|
# @param (see #path)
|
135
167
|
# @return [Cli::Parameters::Switch]
|
136
|
-
def switch(name, desc,
|
168
|
+
def switch(name, desc, *clients, **options, &block)
|
137
169
|
new_param(Parameters::Switch, name, desc,
|
138
|
-
|
170
|
+
clients, options, &block)
|
139
171
|
end
|
140
172
|
|
141
173
|
# Define {Cli::Parameters::Chose} parameter and him subparameters.
|
@@ -143,9 +175,9 @@ module AssLauncher
|
|
143
175
|
# @note use helper {#chose_list} for build +:chose_list+ option
|
144
176
|
# @param (see #path)
|
145
177
|
# @return [Cli::Parameters::Chose]
|
146
|
-
def chose(name, desc,
|
178
|
+
def chose(name, desc, *clients, **options, &block)
|
147
179
|
new_param(Parameters::Chose, name, desc,
|
148
|
-
|
180
|
+
clients, options, &block)
|
149
181
|
end
|
150
182
|
|
151
183
|
# Define {Cli::Parameters::StringParam} parameter suitable for
|
@@ -153,18 +185,19 @@ module AssLauncher
|
|
153
185
|
# @note It initialize +:value_validator+ option with +Proc+
|
154
186
|
# @param (see #path)
|
155
187
|
# @return [Cli::Parameters::StringParam]
|
156
|
-
def url(name, desc,
|
188
|
+
def url(name, desc, *clients, **options, &block)
|
157
189
|
options[:value_validator] = url_value_validator(name)
|
158
|
-
string(name, desc,
|
190
|
+
string(name, desc, *clients, **options, &block)
|
159
191
|
end
|
160
192
|
|
161
193
|
def url_value_validator(n)
|
162
194
|
proc do |value|
|
163
195
|
begin
|
164
|
-
URI(value)
|
165
|
-
|
196
|
+
uri = Addressable::URI.parse(value)
|
197
|
+
fail 'Host is nil' if uri.host.nil?
|
198
|
+
rescue Exception => e
|
166
199
|
raise ArgumentError,
|
167
|
-
|
200
|
+
"Invalid URL for parameter `#{n}': `#{value}' #{e.message}"
|
168
201
|
end
|
169
202
|
value
|
170
203
|
end
|
@@ -176,9 +209,9 @@ module AssLauncher
|
|
176
209
|
# @note It initialize +:value_validator+ option with +Proc+
|
177
210
|
# @param (see #path)
|
178
211
|
# @return [Cli::Parameters::StringParam]
|
179
|
-
def num(name, desc,
|
212
|
+
def num(name, desc, *clients, **options, &block)
|
180
213
|
options[:value_validator] = num_value_validator(name)
|
181
|
-
string(name, desc,
|
214
|
+
string(name, desc, *clients, **options, &block)
|
182
215
|
end
|
183
216
|
|
184
217
|
def num_value_validator(n)
|
@@ -194,14 +227,32 @@ module AssLauncher
|
|
194
227
|
end
|
195
228
|
private :num_value_validator
|
196
229
|
|
230
|
+
# Restrict already specified parameter +name+
|
231
|
+
# recursively with all subparameters
|
232
|
+
# @param name (see #path)
|
233
|
+
# @return (see DslHelpers#restrict_params)
|
234
|
+
def restrict(name)
|
235
|
+
restrict_params(name, current_version)
|
236
|
+
end
|
237
|
+
|
238
|
+
# Change specifications of subparameters for already
|
239
|
+
# specified parameter +name+
|
240
|
+
def change(name, &block)
|
241
|
+
change_param name, &block
|
242
|
+
end
|
243
|
+
|
197
244
|
# Stub for skipped parameter. Many 1C:Enterprise CLI parameters is not
|
198
245
|
# imprtant for describe in {Cli::CliSpec}. For define it fact, you can
|
199
246
|
# use this method.
|
200
|
-
# @todo may be registring skipped parameter for worning?
|
201
247
|
# @param (see #path)
|
202
|
-
# @return [
|
203
|
-
def skip(name, desc = ''
|
204
|
-
|
248
|
+
# @return [Cli::Parameters::Skip]
|
249
|
+
def skip(name, desc = '')
|
250
|
+
p = Parameters::Skip.new(name, desc,
|
251
|
+
new_binary_matcher([:skip]),
|
252
|
+
:skip,
|
253
|
+
[:skip], current_parent)
|
254
|
+
add_parameter p
|
255
|
+
p
|
205
256
|
end
|
206
257
|
end # SpecDsl
|
207
258
|
end
|
@@ -1,12 +1,6 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
|
3
3
|
module AssLauncher
|
4
|
-
class Configuration
|
5
|
-
# 1C Enterprise cli specifications text written on Cli::SpecDsl
|
6
|
-
def platform_cli_spec
|
7
|
-
@platform_cli_spec ||= Enterprise::Cli::CliSpec.load
|
8
|
-
end
|
9
|
-
end
|
10
4
|
module Enterprise
|
11
5
|
# @api private
|
12
6
|
# 1C:Enterprise cli api wrapper
|
@@ -14,117 +8,83 @@ module AssLauncher
|
|
14
8
|
require 'ass_launcher/enterprise/cli/arguments_builder'
|
15
9
|
require 'ass_launcher/enterprise/cli/parameters'
|
16
10
|
require 'ass_launcher/enterprise/cli/spec_dsl'
|
11
|
+
require 'ass_launcher/enterprise/cli/binary_matcher'
|
17
12
|
|
18
|
-
# Run modes defined for 1C Enterprise
|
13
|
+
# Run modes defined for 1C Enterprise clients
|
19
14
|
DEFINED_MODES = [
|
20
15
|
:createinfobase,
|
21
16
|
:enterprise,
|
22
|
-
:designer
|
17
|
+
:designer,
|
18
|
+
:webclient
|
23
19
|
].freeze
|
24
20
|
|
25
21
|
# Return suitable run_mode see {DEFINED_MODES} for
|
26
22
|
# 1c client
|
27
|
-
# @param
|
23
|
+
# @param klass [BinaryWrapper::ThinClient, BinaryWrapper::ThickClient,
|
24
|
+
# WebClient]
|
28
25
|
# @return [Array<Symbol>]
|
29
|
-
def self.defined_modes_for(
|
30
|
-
return [DEFINED_MODES[1]] if
|
31
|
-
return DEFINED_MODES
|
26
|
+
def self.defined_modes_for(klass)
|
27
|
+
return [DEFINED_MODES[1]] if klass == BinaryWrapper::ThinClient
|
28
|
+
return DEFINED_MODES - [:webclient]\
|
29
|
+
if klass == BinaryWrapper::ThickClient
|
30
|
+
return [DEFINED_MODES.last] if klass == WebClient
|
32
31
|
end
|
33
32
|
|
34
|
-
#
|
35
|
-
# for
|
33
|
+
# 1C Enterprise cli specifications
|
34
|
+
# for {BinaryWrapper::ThinClient}, {BinaryWrapper::ThickClient}
|
35
|
+
# or for {WebClient}
|
36
|
+
# @api public
|
36
37
|
class CliSpec
|
37
|
-
def self.loader(binary, run_mode)
|
38
|
-
Class.new do
|
39
|
-
include AssLauncher::Enterprise::Cli::SpecDsl
|
40
|
-
attr_reader :run_mode, :binary_wrapper
|
41
|
-
def initialize(binary_wrapper, run_mode)
|
42
|
-
@binary_wrapper = binary_wrapper
|
43
|
-
@run_mode = run_mode
|
44
|
-
end
|
45
|
-
end.new(binary, run_mode)
|
46
|
-
end
|
47
|
-
private_class_method :loader
|
48
|
-
|
49
|
-
# @api private
|
50
|
-
# @todo In future, may be, should extract +cli.spec+ and use
|
51
|
-
# configurable +cli.spec+ path
|
52
|
-
def self.load
|
53
|
-
spec = File.read(File.expand_path('../cli/cli.spec',__FILE__))
|
54
|
-
end
|
55
|
-
|
56
|
-
# Max 1C Enterprise version
|
57
|
-
# for which defined parameters
|
58
|
-
# @return [Gem::Version]
|
59
|
-
attr_reader :enterprise_version
|
60
|
-
# Defined 1C Enterprise cli parameters
|
61
|
-
# @return [Parameters::ParamtersList]
|
62
|
-
attr_reader :parameters
|
63
|
-
# 1C Enterprise run modes descriptions for build cli api help
|
64
|
-
# @return (see Cli::SpecDsl#described_modes)
|
65
|
-
attr_reader :run_modes
|
66
|
-
# Description for 1C Enterprise cli parameters group for group
|
67
|
-
# parameters in cli help
|
68
|
-
# @return (see Cli::SpecDsl#described_modes)
|
69
|
-
attr_reader :groups
|
70
38
|
|
71
|
-
|
39
|
+
# see +binary_wrapper+ parameter for {#initialize}
|
40
|
+
attr_reader :binary_wrapper
|
41
|
+
alias_method :current_binary_wrapper, :binary_wrapper
|
72
42
|
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
enterprise_version, binary_wrapper, run_mode)
|
78
|
-
@run_modes = modes.select { |k, v| binary_wrapper.run_modes.include? k }
|
79
|
-
@groups = groups
|
80
|
-
@enterprise_version = enterprise_version
|
81
|
-
@current_run_mode = run_mode
|
82
|
-
@current_binary_wrapper = binary_wrapper
|
83
|
-
@parameters = parameters
|
43
|
+
# @param binary_wrapper
|
44
|
+
# (see Cli::Parameters::AllParameters#to_parameters_list)
|
45
|
+
def initialize(binary_wrapper)
|
46
|
+
@binary_wrapper = binary_wrapper
|
84
47
|
end
|
85
48
|
|
86
|
-
#
|
87
|
-
#
|
88
|
-
#
|
89
|
-
# @param run_mode
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
l.described_modes,
|
95
|
-
l.parameters_groups,
|
96
|
-
l.enterprise_version,
|
97
|
-
binary,
|
98
|
-
run_mode)
|
49
|
+
# Return parameters specified for
|
50
|
+
# 1C:Enterprise client wrappend into {#binary_wrapper}
|
51
|
+
# for given +run_mode+
|
52
|
+
# @param run_mode (see
|
53
|
+
# Cli::Parameters::AllParameters#to_parameters_list)
|
54
|
+
# @return [Cli::Parameters::ParametersList]
|
55
|
+
def parameters(run_mode)
|
56
|
+
cli_def.parameters.to_parameters_list(binary_wrapper, run_mode)
|
99
57
|
end
|
100
58
|
|
101
|
-
|
102
|
-
|
59
|
+
# @return [CliDef]
|
60
|
+
def self.cli_def
|
61
|
+
@cli_def ||= load_cli_def
|
103
62
|
end
|
104
|
-
end
|
105
63
|
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
def initialize(client = :all, version = '>= 0')
|
110
|
-
@client = client.to_sym
|
111
|
-
@requirement = Gem::Requirement.new version
|
64
|
+
# (see .cli_def)
|
65
|
+
def cli_def
|
66
|
+
self.class.cli_def
|
112
67
|
end
|
113
68
|
|
114
|
-
def
|
115
|
-
|
69
|
+
def self.load_cli_def
|
70
|
+
require 'ass_launcher/enterprise/cli_def'
|
71
|
+
CliDef
|
116
72
|
end
|
73
|
+
private_class_method :load_cli_def
|
117
74
|
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
75
|
+
# Build suitable cli specifications for 1C Enterprise binary type,
|
76
|
+
# version and run mode
|
77
|
+
# @param (see #initialize)
|
78
|
+
def self.for(binary_wrapper)
|
79
|
+
new(binary_wrapper)
|
123
80
|
end
|
124
81
|
|
125
|
-
|
126
|
-
|
82
|
+
# :nocov:
|
83
|
+
# @todo Implemets this
|
84
|
+
def usage(run_mode = nil)
|
85
|
+
raise NotImplementedError
|
127
86
|
end
|
87
|
+
# :nocov:
|
128
88
|
end
|
129
89
|
end
|
130
90
|
end
|