tla-sbuilder 0.2.2 → 0.3.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +150 -116
- data/VERSION +1 -1
- data/lib/cli/cli-customer.rb +23 -3
- data/lib/cli/cli-pet.rb +66 -12
- data/lib/cli/cli-text.rb +127 -8
- data/lib/cli/cli.rb +49 -6
- data/lib/sbuilder.rb +26 -3
- data/lib/sbuilder/constants.rb +165 -6
- data/lib/sbuilder/controller.rb +943 -169
- data/lib/sbuilder/controller_utils.rb +122 -0
- data/lib/sbuilder/default-sbuilder.yaml +38 -44
- data/lib/sbuilder/domain.rb +160 -36
- data/lib/sbuilder/domain_cardinality.rb +1 -1
- data/lib/sbuilder/domain_range.rb +102 -0
- data/lib/sbuilder/domain_type.rb +150 -0
- data/lib/sbuilder/domain_value.rb +21 -13
- data/lib/sbuilder/exception.rb +16 -0
- data/lib/sbuilder/extension_loader.rb +67 -686
- data/lib/sbuilder/extension_loader_deprecated_step_extensions.rb +711 -0
- data/lib/sbuilder/extension_loader_step_generator.rb +876 -0
- data/lib/sbuilder/facade/{api_loader.rb → api_loader_facade.rb} +176 -45
- data/lib/sbuilder/facade/api_loader_plugin.rb +6 -32
- data/lib/sbuilder/facade/api_loader_plugin_mixer.rb +35 -0
- data/lib/sbuilder/facade/facade_constants.rb +23 -0
- data/lib/sbuilder/facade/loader_plugin_root.rb +56 -0
- data/lib/sbuilder/facade/param_set_root.rb +55 -0
- data/lib/sbuilder/facade/snippet_loader_facade.rb +600 -0
- data/lib/sbuilder/facade/snippet_loader_plugin.rb +76 -0
- data/lib/sbuilder/facade/snippet_loader_plugin_mixer.rb +56 -0
- data/lib/sbuilder/factory.rb +224 -45
- data/lib/sbuilder/model.rb +125 -45
- data/lib/sbuilder/mustache/template.rb +107 -58
- data/lib/sbuilder/mustache/template_reader.rb +56 -46
- data/lib/sbuilder/mustache/template_reader_context.rb +64 -234
- data/lib/sbuilder/mustache/template_resolve.rb +103 -0
- data/lib/sbuilder/mustache/template_root.rb +71 -0
- data/lib/sbuilder/param_set.rb +30 -15
- data/lib/sbuilder/param_set_db.rb +1 -1
- data/lib/sbuilder/param_set_def.rb +6 -1
- data/lib/sbuilder/param_set_def_func.rb +39 -0
- data/lib/sbuilder/param_set_if.rb +45 -10
- data/lib/sbuilder/param_set_loader_swagger.rb +56 -26
- data/lib/sbuilder/param_set_step.rb +1 -1
- data/lib/sbuilder/param_sets.rb +2 -1
- data/lib/sbuilder/parameter.rb +9 -3
- data/lib/sbuilder/parameter_container.rb +1 -1
- data/lib/sbuilder/parameter_dom.rb +17 -5
- data/lib/sbuilder/parameter_ref.rb +39 -10
- data/lib/sbuilder/parser/parser_facade.rb +310 -0
- data/lib/sbuilder/resolver.rb +11 -6
- data/lib/sbuilder/resolver_loader.rb +1 -1
- data/lib/sbuilder/resolver_loader_yaml.rb +1 -1
- data/lib/sbuilder/resolver_rule.rb +1 -1
- data/lib/sbuilder/resolver_rule_match.rb +10 -4
- data/lib/sbuilder/resolver_rule_ref.rb +1 -1
- data/lib/sbuilder/setup_loader.rb +49 -0
- data/lib/sbuilder/setup_loader_env.rb +478 -0
- data/lib/sbuilder/setup_loader_pref.rb +56 -0
- data/lib/sbuilder/snippet_loader_simple.rb +125 -0
- data/lib/sbuilder/spec/api_loader.rb +34 -0
- data/lib/sbuilder/spec/api_loader_facade.rb +169 -32
- data/lib/sbuilder/spec/loader_plugin.rb +98 -0
- data/lib/sbuilder/spec/snippet_loader.rb +228 -0
- data/lib/sbuilder/symbol_table.rb +279 -0
- data/lib/utils/{cache_lines.rb → fileio.rb} +8 -1
- data/lib/utils/logger.rb +2 -1
- data/lib/utils/powerset.rb +13 -0
- data/lib/utils/validate.rb +38 -0
- data/mustache/cfg/const_def.mustache +2 -0
- data/mustache/cfg/macro_run.mustache +1 -4
- data/mustache/data-model-header.mustache +1 -0
- data/mustache/definition_types.mustache +34 -4
- data/mustache/domains.mustache +1 -1
- data/mustache/domains_assign.mustache +1 -1
- data/mustache/infrastructure-service-init.mustache +1 -1
- data/mustache/interface_processes.mustache +16 -10
- data/mustache/interface_types.mustache +37 -11
- data/mustache/operator-infrastructure-service.mustache +1 -1
- data/mustache/resources/schedule_operator_new_step.tla +8 -0
- data/mustache/resources/schedule_process_macro.tla +37 -0
- data/mustache/resources/schedule_process_procedure.tla +22 -0
- data/mustache/resources/schedule_throw.tla +16 -0
- data/mustache/setup/domains_run.mustache +8 -2
- data/mustache/setup/operator_run.mustache +0 -4
- data/mustache/setup/steps_run.mustache +4 -3
- data/mustache/setup/steps_run_parameterBind.mustache +14 -6
- data/mustache/setup/steps_run_parameterExact.mustache +7 -3
- data/mustache/state_type_invariant-infrastructure-service.mustache +9 -4
- data/mustache/tla/const_def.mustache +1 -1
- data/mustache/tla/macro_run.mustache +7 -1
- data/mustache/tla/module_header.mustache +1 -1
- data/mustache/tla/operator_run.mustache +8 -5
- data/mustache/tla/plc_define_run.mustache +45 -36
- data/mustache/tla/plc_run_state.mustache +12 -5
- data/src-extend/extend/extend_assumptions.mustache +3 -0
- data/src-extend/extend/extend_const.mustache +3 -0
- data/src-extend/extend/extend_implementation.mustache +3 -0
- data/src-extend/extend/extend_invariant.mustache +3 -0
- data/src-extend/extend/extend_macros.mustache +3 -0
- data/src-extend/extend/extend_operations.mustache +3 -0
- data/src-extend/extend/extend_state.mustache +3 -0
- data/src/pet/extend/extend_assumptions.mustache +4 -0
- data/src/pet/extend/extend_implementation.mustache +3 -0
- data/src/pet/extend/extend_invariant.mustache +3 -0
- data/src/pet/extend/extend_macros.mustache +3 -0
- data/src/pet/extend/extend_operations.mustache +4 -0
- data/src/pet/extend/extend_state.mustache +3 -0
- data/src/pet/interface +5 -5
- data/src/pet/interface_delete_pet.tla +1 -1
- data/src/pet/interface_get_pet.tla +1 -1
- data/src/pet/interface_post_pet.tla +4 -2
- data/src/pet/interface_post_tag.tla +1 -1
- data/src/pet/interface_put_tag.tla +1 -1
- data/tla-sbuilder.gemspec +3 -3
- metadata +44 -19
- data/mustache/name_definition_type.mustache +0 -5
- data/mustache/name_domain.mustache +0 -5
- data/mustache/name_domain_value.mustache +0 -5
- data/mustache/name_domain_value_prefix.mustache +0 -5
- data/mustache/name_interface_response_type.mustache +0 -6
- data/mustache/name_interface_type.mustache +0 -6
- data/mustache/name_parameter_type.mustache +0 -6
- data/mustache/name_process.mustache +0 -6
- data/mustache/state_type_invariant.mustache +0 -17
- data/mustache/state_variables.mustache +0 -20
- data/src-extend/extend/extend_invariant_cfg.mustache +0 -7
@@ -10,13 +10,17 @@ module Sbuilder
|
|
10
10
|
# model objects, and build sbuilder model
|
11
11
|
#
|
12
12
|
|
13
|
-
class
|
13
|
+
class ApiLoaderFacade
|
14
14
|
|
15
15
|
extend Forwardable # for easy delegation
|
16
16
|
|
17
|
-
# facade configuration
|
18
17
|
|
19
|
-
|
18
|
+
# @attr [Boolean] infrastructureServices generate response, default 'false'
|
19
|
+
attr_reader :infrastructureServices
|
20
|
+
|
21
|
+
# @attr [Boolean] interfaceService genarate interface process, default 'true'
|
22
|
+
attr_reader :interfaceServices
|
23
|
+
|
20
24
|
|
21
25
|
# string to prefix to all definitions (default 'nil' ie. no
|
22
26
|
# prefix). Allow homonymous API definition names ie. same
|
@@ -42,15 +46,13 @@ module Sbuilder
|
|
42
46
|
|
43
47
|
# ------------------------------------------------------------------
|
44
48
|
|
45
|
-
|
46
49
|
# progname for logger
|
47
|
-
PROGNAME =
|
48
|
-
|
49
|
-
include Sbuilder::Utils::MyLogger # mix logger
|
50
|
+
PROGNAME = nil # progname for logger default class name
|
51
|
+
include Sbuilder::Utils::MyLogger # mix logger
|
50
52
|
|
51
53
|
|
52
54
|
# ------------------------------------------------------------------
|
53
|
-
# @!group
|
55
|
+
# @!group Construtor
|
54
56
|
|
55
57
|
def initialize( factory, options = {} )
|
56
58
|
@logger = getLogger( PROGNAME, options )
|
@@ -61,7 +63,9 @@ module Sbuilder
|
|
61
63
|
@controller = nil
|
62
64
|
|
63
65
|
# configuration init
|
64
|
-
|
66
|
+
configureInfrastructureService( false )
|
67
|
+
configureInterfaceService( true )
|
68
|
+
|
65
69
|
@namespace = nil
|
66
70
|
|
67
71
|
@cacheFile = nil
|
@@ -72,7 +76,7 @@ module Sbuilder
|
|
72
76
|
# @!endgroup
|
73
77
|
|
74
78
|
# ------------------------------------------------------------------
|
75
|
-
# @!group
|
79
|
+
# @!group Prepare Facade
|
76
80
|
|
77
81
|
# Allow facade to access controller services
|
78
82
|
# @param controller [Sbuilder::Controller] controller sets self
|
@@ -85,18 +89,26 @@ module Sbuilder
|
|
85
89
|
def setFactory( factory )
|
86
90
|
@factory = factory
|
87
91
|
end
|
88
|
-
|
92
|
+
|
93
|
+
##
|
89
94
|
# Tag all interfaces created using this facadate with property 'infrastructureServices'
|
90
95
|
#
|
91
|
-
# @param
|
96
|
+
# @param [Boolean] infrastructureServices true/false set on all interfaces
|
92
97
|
#
|
93
98
|
def configureInfrastructureService( infrastructureServices )
|
94
99
|
@infrastructureServices = infrastructureServices
|
95
100
|
end
|
96
101
|
|
102
|
+
##
|
103
|
+
# Tag all interfaces created using this facadate with property 'interfaceService'
|
104
|
+
def configureInterfaceService( interfaceServices )
|
105
|
+
@interfaceServices = interfaceServices
|
106
|
+
end
|
107
|
+
|
108
|
+
|
97
109
|
# Prefix all definititions with "#{namespace}." string
|
98
110
|
#
|
99
|
-
# @param
|
111
|
+
# @param [String] namespace to prefix to all definitions
|
100
112
|
#
|
101
113
|
def configureNamespace( namespace )
|
102
114
|
@namespace = namespace
|
@@ -104,7 +116,7 @@ module Sbuilder
|
|
104
116
|
|
105
117
|
# Cache string read into 'cacheFile'
|
106
118
|
#
|
107
|
-
# @param
|
119
|
+
# @param [String] cacheFile name of file to cache content in this facade
|
108
120
|
#
|
109
121
|
def setInterfaceCacheFilePath( cacheFile )
|
110
122
|
@cacheFile = cacheFile
|
@@ -113,16 +125,16 @@ module Sbuilder
|
|
113
125
|
# @!endgroup
|
114
126
|
|
115
127
|
# ------------------------------------------------------------------
|
116
|
-
# @!group
|
128
|
+
# @!group Cache API Metadata
|
117
129
|
|
118
130
|
# Reader service: read String of interface definitions from
|
119
131
|
# 'location'. The string is cached in '@cacheFile', which
|
120
132
|
# controller has configured.
|
121
133
|
#
|
122
|
-
# @param
|
134
|
+
# @param [String] location uri/file/block parameter from which to
|
123
135
|
# read the string
|
124
136
|
#
|
125
|
-
# @param
|
137
|
+
# @param [yield] blk yield block to read if no block given use
|
126
138
|
# 'Sbuilder::Utils::NetIo.read_lines'. Block should return a
|
127
139
|
# string.
|
128
140
|
#
|
@@ -144,14 +156,14 @@ module Sbuilder
|
|
144
156
|
# @param what [String] sub-content in cache
|
145
157
|
# @return [String] cached content (nil if no cached content
|
146
158
|
def get_cached( what=nil )
|
147
|
-
Sbuilder::Utils::
|
159
|
+
Sbuilder::Utils::FileIo.cache_read( get_cachefile(what) ) if doCache?
|
148
160
|
end
|
149
161
|
|
150
162
|
# Service for loader to save 'line' into cache
|
151
163
|
# @param line [String] content to store
|
152
164
|
# @param what [String] sub-content in cache
|
153
165
|
def cache_line( line, what=nil )
|
154
|
-
Sbuilder::Utils::
|
166
|
+
Sbuilder::Utils::FileIo.cache_write( get_cachefile(what), line ) if doCache? && line
|
155
167
|
end
|
156
168
|
|
157
169
|
# @return [Boolean] true if cache i.e. when cacheFile defined
|
@@ -159,20 +171,27 @@ module Sbuilder
|
|
159
171
|
!cacheFile.nil?
|
160
172
|
end
|
161
173
|
|
174
|
+
# Return cache directory location from opitions
|
175
|
+
#
|
176
|
+
# @return [String] path to cache -directory
|
177
|
+
def getCacheDir
|
178
|
+
controller.getCacheDir
|
179
|
+
end
|
180
|
+
|
181
|
+
|
162
182
|
# @!endgroup
|
163
|
-
# ------------------------------------------------------------------
|
164
183
|
|
165
184
|
# ------------------------------------------------------------------
|
166
|
-
# @!group
|
185
|
+
# @!group Add to Sbuilder
|
167
186
|
|
168
187
|
# Add 'newDefinition' to model
|
169
|
-
# @param
|
188
|
+
# @param [Sbuilder::ParamSetDef] newDefinition definition to add
|
170
189
|
def modelDefinition( newDefinition )
|
171
190
|
controller.modelDefinition( newDefinition )
|
172
191
|
end
|
173
192
|
|
174
193
|
# Add 'newInterface' to model
|
175
|
-
# @param
|
194
|
+
# @param [Sbuilder::ParamSet_If] newInterface interface to add
|
176
195
|
def modelInterface( newInterface )
|
177
196
|
controller.modelInterface( newInterface )
|
178
197
|
end
|
@@ -180,15 +199,32 @@ module Sbuilder
|
|
180
199
|
# @!endgroup
|
181
200
|
|
182
201
|
# ------------------------------------------------------------------
|
183
|
-
# @!group Construct
|
202
|
+
# @!group Construct Model Objects
|
184
203
|
|
185
204
|
#
|
186
|
-
# @param
|
187
|
-
# @param
|
205
|
+
# @param [String] definitionName name of defintition to create
|
206
|
+
# @param [Boolean] isArray true if array defined
|
188
207
|
#
|
189
208
|
# @return [Sbuilder::ParamSetDef] New definition object created
|
190
209
|
def newDefinition( definitionName, isArray=false )
|
191
|
-
paramSet = createParamSet( Sbuilder::Constants::
|
210
|
+
paramSet = createParamSet( Sbuilder::Constants::DEFINITION )
|
211
|
+
# optionally prefix within namespace
|
212
|
+
definitionName = namespacedReferenceName( definitionName )
|
213
|
+
paramSet.setDefinition( definitionName )
|
214
|
+
paramSet.setIsArray( isArray )
|
215
|
+
return paramSet
|
216
|
+
end
|
217
|
+
|
218
|
+
# Create a function definition (parameter set)
|
219
|
+
#
|
220
|
+
# @param [String] definitionName name of defintition to create
|
221
|
+
# @param [Boolean] isArray true if array defined
|
222
|
+
#
|
223
|
+
# @return [Sbuilder::ParamSetDefFunc] New definition object created
|
224
|
+
|
225
|
+
def newFunctionDefinition( definitionName, isArray=false )
|
226
|
+
|
227
|
+
paramSet = createParamSet( Sbuilder::Constants::DEFINITION_FUNCTION )
|
192
228
|
# optionally prefix within namespace
|
193
229
|
definitionName = namespacedReferenceName( definitionName )
|
194
230
|
paramSet.setDefinition( definitionName )
|
@@ -196,11 +232,12 @@ module Sbuilder
|
|
196
232
|
return paramSet
|
197
233
|
end
|
198
234
|
|
199
|
-
# Create new interface paramtereter
|
235
|
+
# Create new interface paramtereter set (and a response parameter
|
236
|
+
# set)
|
200
237
|
#
|
201
|
-
# @param
|
238
|
+
# @param [String] path of restfull interface operation
|
202
239
|
#
|
203
|
-
# @param
|
240
|
+
# @param [String] op rest operation (get, put, post,...), defaults
|
204
241
|
# to 'response' (ie. definiting return from a operation)
|
205
242
|
#
|
206
243
|
# @return [Sbuilder::ParamSet_If] New interface param set createds
|
@@ -213,8 +250,8 @@ module Sbuilder
|
|
213
250
|
end
|
214
251
|
|
215
252
|
# Cretate new pojo for a simple paramter
|
216
|
-
# @param
|
217
|
-
# @param
|
253
|
+
# @param [String] name of the simple paramter to create
|
254
|
+
# @param [Boolean] isArray true if array
|
218
255
|
# @return [Sbuilder::Parameter_Dom] new parmater created
|
219
256
|
def newParameter( name, isArray=false )
|
220
257
|
swagger_parameter = createParameter( Sbuilder::Constants::PARAMETER )
|
@@ -224,34 +261,124 @@ module Sbuilder
|
|
224
261
|
return swagger_parameter
|
225
262
|
end
|
226
263
|
|
264
|
+
##
|
265
|
+
# Add +paramter+ to +parameterSet+
|
266
|
+
#
|
267
|
+
# @param [ParamSet|ParamSetDef|ParamSet_If] paramSet where to add to
|
268
|
+
#
|
269
|
+
# @param [Parameter] parameter to add
|
270
|
+
#
|
271
|
+
# @param [String] name of domain to assign to +parameter+
|
272
|
+
|
273
|
+
def addParameter( paramSet, parameter, domain_name=nil )
|
274
|
+
paramSet.addParameter( parameter )
|
275
|
+
configParameterDomain( parameter, domain_name ) if domain_name
|
276
|
+
end
|
277
|
+
|
278
|
+
##
|
279
|
+
# Add +paramter+ to +parameterSet+ response
|
280
|
+
#
|
281
|
+
# @param [ParamSet_If] paramSet of the response where to add to
|
282
|
+
#
|
283
|
+
# @param [Parameter] parameter to add
|
284
|
+
#
|
285
|
+
# @param [String] name of domain to assign to +parameter+
|
286
|
+
|
287
|
+
def addResponseParameter( paramSet, parameter, domain_name=nil )
|
288
|
+
responseParamSet = paramSet.response
|
289
|
+
responseParamSet.addParameter( parameter )
|
290
|
+
configParameterDomain( parameter, domain_name ) if domain_name
|
291
|
+
end
|
292
|
+
|
293
|
+
##
|
294
|
+
# Set +domain_name+ to +parameter+
|
295
|
+
#
|
296
|
+
# @param [Parameter] parameter to add
|
297
|
+
#
|
298
|
+
# @param [String] name of domain to assign to +parameter+ private
|
299
|
+
def configParameterDomain( parameter, domain_name )
|
300
|
+
|
301
|
+
if !parameter.is_a?(Parameter_Dom) then
|
302
|
+
msg = <<-EOS
|
303
|
+
Only domain parameters can assgined domain
|
304
|
+
|
305
|
+
In this case domain '#{domain_name}' was assigned to #{parameter.class}
|
306
|
+
EOS
|
307
|
+
@logger.error "#{__method__}, msg"
|
308
|
+
raise PluginException, msg
|
309
|
+
end
|
310
|
+
# call static busines rule to set 'domain' on 'parameter' in model context
|
311
|
+
ResolverRuleMatch.setDomain( parameter, domain_name, controller.model )
|
312
|
+
|
313
|
+
end
|
314
|
+
|
315
|
+
|
227
316
|
# Create new pojo for a reference to a definition
|
228
317
|
#
|
229
|
-
# @param
|
230
|
-
# @param
|
231
|
-
# @param
|
318
|
+
# @param [String] name of the simple paramter to create
|
319
|
+
# @param [String] referenceName definition name referenced
|
320
|
+
# @param [Boolean] isArray true if array
|
232
321
|
# @return [Sbuilder::Parameter_Ref] new parmater created
|
233
322
|
|
234
323
|
def newParameterReference( name, referenceName, isArray )
|
235
|
-
|
236
|
-
|
324
|
+
refParameter = createParameter( Sbuilder::Constants::PARAMETER_REF )
|
325
|
+
refParameter.setName( name )
|
237
326
|
# namespace.name
|
238
327
|
referenceName = namespacedReferenceName( referenceName )
|
239
|
-
|
240
|
-
|
241
|
-
return
|
328
|
+
refParameter.setReference( referenceName )
|
329
|
+
refParameter.setIsArray( isArray )
|
330
|
+
return refParameter
|
242
331
|
end
|
243
332
|
|
244
333
|
# @!endgroup
|
334
|
+
|
245
335
|
# ------------------------------------------------------------------
|
336
|
+
# @!group domain
|
337
|
+
|
338
|
+
##
|
339
|
+
# Add +domainName+ to sbuilder. Pass +domainValues+ to controller
|
340
|
+
# using +setApplicationDomainValues+ api if defined.
|
341
|
+
#
|
342
|
+
# @param [String] domainName to define
|
343
|
+
#
|
344
|
+
# @param [String:Array] domainValues e.g. literals in application
|
345
|
+
#
|
346
|
+
def defineDomain( domainName, domainValues = nil )
|
347
|
+
controller.domainEncountered( domainName )
|
348
|
+
controller.setApplicationDomainValues( domainName, domainValues ) if domainValues && domainValues.is_a?( Array ) && domainValues.any?
|
349
|
+
end
|
350
|
+
|
351
|
+
|
352
|
+
# @!endgroup
|
246
353
|
|
247
354
|
# ------------------------------------------------------------------
|
248
|
-
# @!group
|
355
|
+
# @!group Access framework context
|
249
356
|
|
250
|
-
|
357
|
+
|
358
|
+
##
|
359
|
+
# Return array of base metatypes in sbuilder context
|
360
|
+
#
|
361
|
+
# @return [Hash] baseMetatypes
|
362
|
+
# @option baseMetatype [Symbol] :name of metatype
|
363
|
+
# @option baseMetatype [Symbol] :desc metatype description
|
364
|
+
def baseMetatypes
|
365
|
+
controller.baseMetatypes
|
366
|
+
end
|
367
|
+
|
368
|
+
|
369
|
+
# @!endgroup
|
370
|
+
|
371
|
+
# ------------------------------------------------------------------
|
372
|
+
# @!group Miscellaneous Operations
|
373
|
+
|
374
|
+
|
375
|
+
|
376
|
+
# # @return [String] semver number
|
251
377
|
def version
|
252
|
-
|
378
|
+
Sbuilder::version
|
253
379
|
end
|
254
380
|
|
381
|
+
|
255
382
|
# @param logname [String] progname to set on logger
|
256
383
|
# @return [Logger] new logger object
|
257
384
|
def createLogger( logname )
|
@@ -269,7 +396,11 @@ module Sbuilder
|
|
269
396
|
def newParamset( path, op ='response' )
|
270
397
|
interfaceParamSet = createParamSet( Sbuilder::Constants::INTERFACE_OPERATION )
|
271
398
|
interfaceParamSet.setIdentity( path, op )
|
399
|
+
# infrastructureService (capability to return response), and
|
400
|
+
# infrastructureService (interface process) use values set using
|
401
|
+
# configure* -methods
|
272
402
|
interfaceParamSet.setInfrastructureService( infrastructureServices )
|
403
|
+
interfaceParamSet.setInterfaceService( interfaceServices )
|
273
404
|
return interfaceParamSet
|
274
405
|
end
|
275
406
|
|
@@ -278,7 +409,7 @@ module Sbuilder
|
|
278
409
|
"#{cacheFile}#{ what ? '.' + what : '' }"
|
279
410
|
end
|
280
411
|
|
281
|
-
# @return [String] 'definitionName'
|
412
|
+
# @return [String] 'definitionName' possible prefixed with 'namespace'
|
282
413
|
def namespacedReferenceName( definitionName )
|
283
414
|
if namespace
|
284
415
|
definitionName = "#{namespace}.#{definitionName}"
|
@@ -287,7 +418,7 @@ module Sbuilder
|
|
287
418
|
end
|
288
419
|
|
289
420
|
|
290
|
-
end # class
|
421
|
+
end # class ApiLoaderFacade
|
291
422
|
|
292
423
|
|
293
424
|
end # module
|
@@ -9,47 +9,21 @@ module Sbuilder
|
|
9
9
|
# - configure plugin
|
10
10
|
#
|
11
11
|
|
12
|
-
class ApiLoaderPlugin
|
12
|
+
class ApiLoaderPlugin < LoaderPluginRoot
|
13
13
|
|
14
|
-
|
15
|
-
include
|
14
|
+
# mix api loader plugin services
|
15
|
+
include ApiLoaderPluginMixer
|
16
16
|
|
17
17
|
# ------------------------------------------------------------------
|
18
18
|
# @!group Constructor and Object Initialize
|
19
19
|
|
20
|
-
def initialize(
|
21
|
-
|
22
|
-
|
23
|
-
# Sbuilder controller calls 'setFacade' when new API loader object
|
24
|
-
# is contstructed. Sets instance variable '@facade' and '@logger'.
|
25
|
-
#
|
26
|
-
# @param [Sbuilder::ApiLoader] facace to Sbuilder services
|
27
|
-
|
28
|
-
def setFacade( facade )
|
29
|
-
@facade = facade
|
30
|
-
@logger = facade.createLogger( self.class.name.split('::').last )
|
20
|
+
def initialize( options = {} )
|
21
|
+
super
|
31
22
|
end
|
32
23
|
|
33
|
-
|
34
|
-
# @!endgroup
|
35
|
-
|
36
|
-
# ------------------------------------------------------------------
|
37
|
-
# @!group Framework Services
|
38
|
-
|
39
|
-
# @return [Sbuilder::ApiLoader] facade to access Sbuilder servivices ( set in 'setFacade')
|
40
|
-
def facade
|
41
|
-
@facade
|
42
|
-
end
|
43
|
-
|
44
|
-
# @return [Logger] logger logging to Sbuiler log
|
45
|
-
def logger
|
46
|
-
# return STDERR logger - if logger not yet ready
|
47
|
-
Logger.new( STDERR ) unless @logger
|
48
|
-
@logger
|
49
|
-
end
|
50
24
|
|
51
25
|
# ------------------------------------------------------------------
|
52
|
-
# @!group Configure
|
26
|
+
# @!group Configure Plugin
|
53
27
|
|
54
28
|
# Configure API loader - MUST be implemented by plugin class
|
55
29
|
# @param configuration [Hash] properties to configure
|
@@ -0,0 +1,35 @@
|
|
1
|
+
module Sbuilder
|
2
|
+
|
3
|
+
# mixer module to include to API loader plugins
|
4
|
+
#
|
5
|
+
# Implement:
|
6
|
+
# - getter & setter for API loader facade
|
7
|
+
|
8
|
+
module ApiLoaderPluginMixer
|
9
|
+
|
10
|
+
# Sbuilder controller calls 'setFacade' when new API loader object
|
11
|
+
# is contstructed.
|
12
|
+
#
|
13
|
+
# @param [Sbuilder::ApiLoaderFacade] facace to Sbuilder services
|
14
|
+
|
15
|
+
def setFacade( facade )
|
16
|
+
@facade = facade
|
17
|
+
# @logger = facade.createLogger( self.class.name.split('::').last )
|
18
|
+
end
|
19
|
+
|
20
|
+
|
21
|
+
# @!endgroup
|
22
|
+
|
23
|
+
# ------------------------------------------------------------------
|
24
|
+
# @!group Framework Services
|
25
|
+
|
26
|
+
# @return [Sbuilder::ApiLoaderFacade] facade to access Sbuilder servivices ( set in 'setFacade')
|
27
|
+
def facade
|
28
|
+
@facade
|
29
|
+
end
|
30
|
+
|
31
|
+
|
32
|
+
end
|
33
|
+
|
34
|
+
|
35
|
+
end
|