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_ModuleTemplateNode(node) ⇒ Object
- #visit_ShortDescriptionNode(node) ⇒ Object
- #visit_SvnDeclarationNode(node) ⇒ Object
- #visit_UseBuildSystemNode(node) ⇒ Object
- #visit_UseEnvironmentNode(node) ⇒ Object
- #visit_UseVcsNode(node) ⇒ Object
Methods inherited from ListVisitor
Methods inherited from VisitorBase
Constructor Details
#initialize(configuration) ⇒ ModuleDeclarationNodeVisitor
Returns a new instance of ModuleDeclarationNodeVisitor.
438 439 440 441 |
# File 'lib/build-tool/cfg/visitor.rb', line 438 def initialize( configuration ) super @module = nil end |
Instance Method Details
#visit_ApplyPatchesNode(node) ⇒ Object
443 444 445 |
# File 'lib/build-tool/cfg/visitor.rb', line 443 def visit_ApplyPatchesNode( node ) @module.patches << node.value end |
#visit_ArchiveDeclarationNode(node) ⇒ Object
447 448 449 450 451 452 453 454 455 |
# File 'lib/build-tool/cfg/visitor.rb', line 447 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
457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 |
# File 'lib/build-tool/cfg/visitor.rb', line 457 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
489 490 491 492 |
# File 'lib/build-tool/cfg/visitor.rb', line 489 def visit_EnvironmentDeclarationNode( node ) visitor = EnvironmentDeclarationNodeVisitor.new( configuration ) @module.environment = node.accept( visitor ) end |
#visit_GitDeclarationNode(node) ⇒ Object
494 495 496 497 498 499 500 501 502 |
# File 'lib/build-tool/cfg/visitor.rb', line 494 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 visitor = GitDeclarationNodeVisitor.new( configuration, vcs ) node.accept( visitor ) end |
#visit_GitSvnDeclarationNode(node) ⇒ Object
504 505 506 507 508 509 510 511 512 |
# File 'lib/build-tool/cfg/visitor.rb', line 504 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
482 483 484 485 486 487 |
# File 'lib/build-tool/cfg/visitor.rb', line 482 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
514 515 516 |
# File 'lib/build-tool/cfg/visitor.rb', line 514 def visit_ModuleBuildPrefixNode( node ) @module.build_prefix = node.value end |
#visit_ModuleDeclarationNode(node) ⇒ Object
518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 |
# File 'lib/build-tool/cfg/visitor.rb', line 518 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 begin self.visit_nodes( stmts ) rescue ConfigurationError => e raise ConfigurationError, "Module #{@module.name}: #{e.to_s}" end end |
#visit_ModuleInstallPrefixNode(node) ⇒ Object
558 559 560 |
# File 'lib/build-tool/cfg/visitor.rb', line 558 def visit_ModuleInstallPrefixNode( node ) @module.install_prefix = node.value end |
#visit_ModuleLocalPathNode(node) ⇒ Object
562 563 564 |
# File 'lib/build-tool/cfg/visitor.rb', line 562 def visit_ModuleLocalPathNode( node ) @module.local_path = node.value end |
#visit_ModuleTemplateNode(node) ⇒ Object
566 567 568 |
# File 'lib/build-tool/cfg/visitor.rb', line 566 def visit_ModuleTemplateNode( node ) @module.is_template = true end |
#visit_ShortDescriptionNode(node) ⇒ Object
570 571 572 573 574 575 |
# File 'lib/build-tool/cfg/visitor.rb', line 570 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
577 578 579 580 581 582 583 584 585 |
# File 'lib/build-tool/cfg/visitor.rb', line 577 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
587 588 589 590 591 592 593 |
# File 'lib/build-tool/cfg/visitor.rb', line 587 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
595 596 597 598 599 600 |
# File 'lib/build-tool/cfg/visitor.rb', line 595 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_UseVcsNode(node) ⇒ Object
602 603 604 |
# File 'lib/build-tool/cfg/visitor.rb', line 602 def visit_UseVcsNode( node ) @module.vcs_configuration = configuration.vcs(node.value) end |