tla-sbuilder 0.3.7 → 0.3.8

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: da5bfdebad06728053bd1d9be7b5fb8bc6bf4d5f
4
- data.tar.gz: 1ac862f608a98cb6ae42e973ad9f9ca22e7c0cb2
3
+ metadata.gz: 5eccbde389b960d6daa3a03284489dde2c9d2b4a
4
+ data.tar.gz: 06d5c9ab8e969b954d6acd77e4fd5607d3b9c6e1
5
5
  SHA512:
6
- metadata.gz: f511f243f72f46b30cd191ad984ef858f6a62317c81fe98f05d8c97784481c707b72e1f1f06539b56e8a19784f5e75bc88641cdf63bfd44a052aba623c852011
7
- data.tar.gz: c2844d67ae0c95aa6668abf2e52bd45f84a5edbad182faef7b5493461257d6c95fa944c80b8c53e77d5ab76174ba1023c09cde671ca59df6e407b973f9973f7c
6
+ metadata.gz: 5b7c60c28c829383ae57e2fc9ca12deeb7d5a5052fc047dde372c032843187281ddba4ddb97514fe4e70a0d22444dcd63a932a758d45fe88a860ecac84489f75
7
+ data.tar.gz: 5bccdd522ab2c5b245621c9f1feeb6a95d830bb14fdf45218017fb5174563e07584e6fc43d1c0d9944981587fecbac90fec0a3d8242b7ec7107a0c26c88c7ea9
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  <link href="../site.css" rel="stylesheet"></link>
2
2
  [Readme](README.md) [Releases](RELEASES.md)
3
3
 
4
- # Sbuilder - A Specification Builder for TLA+ Tools - $Release:0.3.7$
4
+ # Sbuilder - A Specification Builder for TLA+ Tools - $Release:0.3.8$
5
5
 
6
6
  A tool to generate runnable formal models in
7
7
  [TLA+ language](http://research.microsoft.com/en-us/um/people/lamport/tla/book.html)
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.7
1
+ 0.3.8
@@ -595,8 +595,9 @@ module Sbuilder
595
595
  next unless input['symbols']
596
596
 
597
597
 
598
- # access model data, data array in
599
- modelData = templateData( input['modelData'] )
598
+ # access model data, symbol table not yet built
599
+ symbol_lookup=false
600
+ modelData = templateData( input['modelData'], symbol_lookup )
600
601
  d = modelData[input['modelData']]
601
602
  @logger.debug "#{__method__} input['modelData']=#{input['modelData']}--> #{d}"
602
603
  next unless d && d.any?
@@ -198,7 +198,7 @@ generate:
198
198
  inputs:
199
199
  - desc: Model interfaces
200
200
  template: interfaces/interface_mapper.mustache
201
- modelData: interfaces
201
+ modelData: allInterfaces
202
202
 
203
203
 
204
204
  # ----------------------------------------
@@ -320,6 +320,11 @@ module Sbuilder
320
320
 
321
321
  # @param [String] domainName in data model
322
322
  #
323
+ # @param symbol_lookup [Boolean] true for normal operation, false
324
+ # for init, when no symbol table lookup can be made
325
+ #
326
+ #
327
+ #
323
328
  # @return [Hash] dataModelElement for mustache for 'templateName' in 'interfaces', 'domains', 'variables' etc
324
329
  #
325
330
  # @option dataModelElement [String] dump to output data array
@@ -330,18 +335,18 @@ module Sbuilder
330
335
  # @option dataModelElement [String] 'domainName' data array for
331
336
  # element in model for domainName
332
337
 
333
- def templateData( domainName )
338
+ def templateData( domainName, symbol_lookup=true )
334
339
 
340
+ @logger.info( "#{__method__} domainName=#{domainName}")
335
341
  case domainName
342
+ when 'allInterfaces'
343
+ # both interfaces and infrastructureServices
344
+ templateDataInterfaces( domainName, nil, symbol_lookup )
336
345
  when 'interfaces'
337
346
  # see domainName 'interfaces'
338
- templateDataInterfaces( domainName, false )
339
- # when 'interface_types'
340
- # # see domainName 'interfaces', interface_types are not
341
- # # filtered i.e. generated model defines data types for all interfaces
342
- # templateDataInterfaces( 'interfaces', false )
347
+ templateDataInterfaces( domainName, false, symbol_lookup )
343
348
  when 'infrastructureServices'
344
- templateDataInterfaces( domainName, true )
349
+ templateDataInterfaces( domainName, true, symbol_lookup )
345
350
  when 'possibility'
346
351
  hash = {
347
352
  "dump" => lambda { hash['possibility'].to_yaml },
@@ -454,24 +459,39 @@ module Sbuilder
454
459
 
455
460
  # Extract data model for interfaces
456
461
  #
457
- # @param [Boolean] choose false --> interterfaces with 'interfaceService', true => 'infrastructureService'
462
+ # @param infrastructureServices [Boolean, nil] false --> interterfaces with 'interfaceService', true => 'infrastructureService'
463
+ # nil => both interfaceService && infrastructureService
464
+ #
465
+ # @param symbol_lookup [Boolean] true for normal operation, false
466
+ # for init, when no symbol table lookup can be made
458
467
  #
459
468
  # @return [Hash] for template rendering composed of interfaces, 'false' if configs
460
469
  #
461
- private def templateDataInterfaces( domainName, choose )
470
+ private def templateDataInterfaces( domainName, infrastructureServices, symbol_lookup )
471
+ @logger.debug "#{__method__}, domainName=#{domainName}, infrastructureServices=#{infrastructureServices}, symbol_lookup=#{symbol_lookup}" if @logger.debug?
472
+
473
+ # Looking for interface type
474
+ infrastructureServiceMeta = FacadeConstants::META_MODEL_INFRA_SERVICES
462
475
  hash = {
463
476
  "dump" => lambda { hash[domainName].to_yaml },
464
477
 
465
478
  domainName => interfaces.values.select { |iface|
479
+
480
+ # both infrastructureServices && interfaceService or either
481
+ infrastructureServices.nil? ||
466
482
 
467
- !choose && iface.interfaceService ||
468
- choose && iface.infrastructureService
483
+ (!infrastructureServices && iface.interfaceService ||
484
+ infrastructureServices && iface.infrastructureService
485
+ )
469
486
 
470
487
  }.map { |iface |
471
488
  {
472
489
  :interface_name => iface.getName, # e.g._pet_post_
490
+ :response_key => symbol_lookup && iface.infrastructureService ? getSymbolTable.lookupSymbol(iface.getId, infrastructureServiceMeta ) : false,
473
491
  :interface_operation => iface.getId, # e.g /pet(post)
474
492
  :implementation => getImplementationExtension( iface ),
493
+ :interfaceService => iface.interfaceService,
494
+ :infrastructureService => iface.infrastructureService,
475
495
  :source => {
476
496
  :sourceModule => iface.sourceModule,
477
497
  :sourceLine => iface.sourceLine,
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tla-sbuilder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.7
4
+ version: 0.3.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - jarjuk
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-12-17 00:00:00.000000000 Z
11
+ date: 2017-12-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mustache