Class: BuildTool::Cfg::ModuleDeclarationNodeVisitor
- Inherits:
-
ListVisitor
- Object
- VisitorBase
- ListVisitor
- BuildTool::Cfg::ModuleDeclarationNodeVisitor
- Defined in:
- lib/build-tool/cfg/visitor.rb
Instance Attribute Summary
Attributes inherited from VisitorBase
Instance Method Summary collapse
-
#initialize(configuration) ⇒ ModuleDeclarationNodeVisitor
constructor
A new instance of ModuleDeclarationNodeVisitor.
- #visit_ApplyPatchesNode(node) ⇒ Object
- #visit_ArchiveDeclarationNode(node) ⇒ Object
- #visit_BuildSystemDeclarationNode(node) ⇒ Object
- #visit_EnvironmentDeclarationNode(node) ⇒ Object
- #visit_GitDeclarationNode(node) ⇒ Object
- #visit_GitSvnDeclarationNode(node) ⇒ Object
- #visit_LongDescriptionNode(node) ⇒ Object
- #visit_ModuleBuildPrefixNode(node) ⇒ Object
- #visit_ModuleDeclarationNode(node) ⇒ Object
- #visit_ModuleInstallPrefixNode(node) ⇒ Object
- #visit_ModuleLocalPathNode(node) ⇒ Object
- #visit_ModuleRemotePathNode(node) ⇒ Object
- #visit_ModuleTemplateNode(node) ⇒ Object
- #visit_RepositoryDeclarationNode(node) ⇒ Object
- #visit_ShortDescriptionNode(node) ⇒ Object
- #visit_SvnDeclarationNode(node) ⇒ Object
- #visit_UseBuildSystemNode(node) ⇒ Object
- #visit_UseEnvironmentNode(node) ⇒ Object
- #visit_UseRepositoryNode(node) ⇒ Object
- #visit_UseVcsNode(node) ⇒ Object
Methods inherited from ListVisitor
Constructor Details
#initialize(configuration) ⇒ ModuleDeclarationNodeVisitor
Returns a new instance of ModuleDeclarationNodeVisitor.
351 352 353 354 |
# File 'lib/build-tool/cfg/visitor.rb', line 351 def initialize( configuration ) super @module = nil end |
Instance Method Details
#visit_ApplyPatchesNode(node) ⇒ Object
356 357 358 |
# File 'lib/build-tool/cfg/visitor.rb', line 356 def visit_ApplyPatchesNode( node ) @module.patches << node.value end |
#visit_ArchiveDeclarationNode(node) ⇒ Object
360 361 362 363 364 365 366 367 368 |
# File 'lib/build-tool/cfg/visitor.rb', line 360 def visit_ArchiveDeclarationNode( node ) vcs = BuildTool::VCS::ArchiveConfiguration.new # if @module.vcs_configuration and @module.vcs_configuration.name == "archive" # vcs.copy_configuration( @module.vcs_configuration ) # end @module.vcs_configuration = vcs visitor = ArchiveDeclarationNodeVisitor.new( configuration, vcs ) node.accept( visitor ) end |
#visit_BuildSystemDeclarationNode(node) ⇒ Object
370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 |
# File 'lib/build-tool/cfg/visitor.rb', line 370 def visit_BuildSystemDeclarationNode( node ) raise ArgumentsError if node.values.length != 2 name = node.values[0] # We have to create a build-system. There are some possibilities: # 1. The module has a build-system. Inherit from that one (Overloading) # 2. The module has a parent but no build-system: Create the build-system parentless # so it forwards to the parent module # 3. The module has no parent and no build-system. Inherit from the build-system # standard module. if @module.our_build_system # puts "Inherit from previous build-system for #{@module.name}" build_system = configuration.build_system_adjust( name, @module.our_build_system ) elsif @module.parent # puts "Inherit without parent for #{@module.name}" build_system = configuration.build_system_adjust( name, nil ) else # puts "Inherit from #{name} for #{@module.name}" build_system = configuration.build_system_adjust( name, configuration.build_system_defaults( name ) ) end visitor = BuildSystemDeclarationNodeVisitor.new( configuration, build_system ) @module.build_system = node.accept( visitor ) @module.build_system.module = @module @module.build_system.feature = configuration.active_feature end |
#visit_EnvironmentDeclarationNode(node) ⇒ Object
402 403 404 405 |
# File 'lib/build-tool/cfg/visitor.rb', line 402 def visit_EnvironmentDeclarationNode( node ) visitor = EnvironmentDeclarationNodeVisitor.new( configuration ) @module.environment = node.accept( visitor ) end |
#visit_GitDeclarationNode(node) ⇒ Object
407 408 409 410 411 412 413 414 415 416 417 418 419 |
# File 'lib/build-tool/cfg/visitor.rb', line 407 def visit_GitDeclarationNode( node ) vcs = BuildTool::VCS::GitConfiguration.new # if @module.vcs_configuration and @module.vcs_configuration.name == "git" # vcs.copy_configuration( @module.vcs_configuration ) # end @module.vcs_configuration = vcs begin visitor = GitDeclarationNodeVisitor.new( configuration, vcs ) node.accept( visitor ) rescue ConfigurationError => e raise ConfigurationError, "Module #{@module.name}: #{e.to_s}" end end |
#visit_GitSvnDeclarationNode(node) ⇒ Object
421 422 423 424 425 426 427 428 429 |
# File 'lib/build-tool/cfg/visitor.rb', line 421 def visit_GitSvnDeclarationNode( node ) vcs = BuildTool::VCS::GitSvnConfiguration.new # if @module.vcs_configuration and @module.vcs_configuration.name == "gitsvn" # vcs.copy_configuration( @module.vcs_configuration ) # end @module.vcs_configuration = vcs visitor = GitSvnDeclarationNodeVisitor.new( configuration, vcs ) node.accept( visitor ) end |
#visit_LongDescriptionNode(node) ⇒ Object
395 396 397 398 399 400 |
# File 'lib/build-tool/cfg/visitor.rb', line 395 def visit_LongDescriptionNode( node ) if @module.long_description logger.warn "Overwriting long description for module #{@module.name}" end @module.long_description = node.values end |
#visit_ModuleBuildPrefixNode(node) ⇒ Object
431 432 433 |
# File 'lib/build-tool/cfg/visitor.rb', line 431 def visit_ModuleBuildPrefixNode( node ) @module.build_prefix = node.value end |
#visit_ModuleDeclarationNode(node) ⇒ Object
435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 |
# File 'lib/build-tool/cfg/visitor.rb', line 435 def visit_ModuleDeclarationNode( node ) name = node.values[0] inheritance = node.values[1] == :INHERITANCE if inheritance stmts = node.values[3] else stmts = node.values[1] end # Check if the module is alread defined. If yes we reopen it. @module = configuration.module( name ) if @module if inheritance raise ConfigurationError, "Attempt change existing module #{name} with inheritance!" end else parent = nil if inheritance parentName = node.values[2] parent = configuration.module( parentName ) if parent.nil? raise ConfigurationError, "Module %s attempts to inherit from not existant module %s" % [ name, parentName ] end end @module = BuildTool::Module.new( name, parent ) configuration.add_module( @module ) # Only add a module to a feature if it is the first time declared. if !configuration.active_feature.nil? @module.feature = configuration.active_feature configuration.active_feature.modules << @module end end self.visit_nodes( stmts ) end |
#visit_ModuleInstallPrefixNode(node) ⇒ Object
471 472 473 |
# File 'lib/build-tool/cfg/visitor.rb', line 471 def visit_ModuleInstallPrefixNode( node ) @module.install_prefix = node.value end |
#visit_ModuleLocalPathNode(node) ⇒ Object
475 476 477 |
# File 'lib/build-tool/cfg/visitor.rb', line 475 def visit_ModuleLocalPathNode( node ) @module.local_path = node.value end |
#visit_ModuleRemotePathNode(node) ⇒ Object
479 480 481 |
# File 'lib/build-tool/cfg/visitor.rb', line 479 def visit_ModuleRemotePathNode( node ) @module.remote_path = node.value end |
#visit_ModuleTemplateNode(node) ⇒ Object
483 484 485 |
# File 'lib/build-tool/cfg/visitor.rb', line 483 def visit_ModuleTemplateNode( node ) @module.is_template = true end |
#visit_RepositoryDeclarationNode(node) ⇒ Object
487 488 489 490 |
# File 'lib/build-tool/cfg/visitor.rb', line 487 def visit_RepositoryDeclarationNode( node ) visitor = RepositoryDeclarationNodeVisitor.new( configuration ) @module.repository = node.accept( visitor ) end |
#visit_ShortDescriptionNode(node) ⇒ Object
492 493 494 495 496 497 |
# File 'lib/build-tool/cfg/visitor.rb', line 492 def visit_ShortDescriptionNode( node ) if !@module.description.nil? logger.warn "Overwriting short description for module #{@module.name}" end @module.description = node.values end |
#visit_SvnDeclarationNode(node) ⇒ Object
499 500 501 502 503 504 505 506 507 |
# File 'lib/build-tool/cfg/visitor.rb', line 499 def visit_SvnDeclarationNode( node ) vcs = BuildTool::VCS::SvnConfiguration.new # if @module.vcs_configuration and @module.vcs_configuration.name == "svn" # vcs.copy_configuration( @module.vcs_configuration ) # end @module.vcs_configuration = vcs visitor = SvnDeclarationNodeVisitor.new( configuration, vcs ) node.accept( visitor ) end |
#visit_UseBuildSystemNode(node) ⇒ Object
509 510 511 512 513 514 515 |
# File 'lib/build-tool/cfg/visitor.rb', line 509 def visit_UseBuildSystemNode( node ) # puts "Inherit from build-system #{node.value} for #{@module.name}" @module.build_system = configuration.build_system_adjust( node.value, configuration.build_system_defaults( node.value ) ) @module.build_system.module = @module end |
#visit_UseEnvironmentNode(node) ⇒ Object
517 518 519 520 521 522 |
# File 'lib/build-tool/cfg/visitor.rb', line 517 def visit_UseEnvironmentNode( node ) @module.environment = configuration.environment( node.value ) if @module.environment.nil? raise ConfigurationError, "Unknown environment #{node.value} configured for module #{@module.name}!" end end |
#visit_UseRepositoryNode(node) ⇒ Object
524 525 526 527 528 529 |
# File 'lib/build-tool/cfg/visitor.rb', line 524 def visit_UseRepositoryNode( node ) @module.repository = configuration.repository( node.value ) if @module.repository.nil? raise ConfigurationError, "Unknown repository #{node.value} configured for module #{@module.name}!" end end |
#visit_UseVcsNode(node) ⇒ Object
531 532 533 |
# File 'lib/build-tool/cfg/visitor.rb', line 531 def visit_UseVcsNode( node ) @module.vcs_configuration = configuration.vcs(node.value) end |