Sha256: 96280d70c6225b45f82000e53dcd473bdf440ee9912502dd4608710b056849db

Contents?: true

Size: 1.88 KB

Versions: 4

Compression:

Stored size: 1.88 KB

Contents

module Sbuilder

  class ResolverRuleMatch < ResolverRule

    attr_reader :matchRule                    # string or regexp
    attr_reader :domain

    # ------------------------------------------------------------------
    # mixer
    PROGNAME = nil                            # progname for logger default class name
    include Sbuilder::Utils::MyLogger         # mix logger

    # ------------------------------------------------------------------
    # constrcutore
    def initialize(  options = {} )
      @logger = getLogger( PROGNAME, options )
      @logger.debug( "#{__method__} initialized" )
      super( options )
    end

    # set properties when loading
    def config( matchRule, domain )
      @matchRule = matchRule
      @domain = domain
    end

    # ------------------------------------------------------------------
    # resolve domain
    def match( parameter )
      matchRule.is_a?( String ) ? parameter.name == matchRule  : (parameter.name =~ matchRule) != nil
    end

    # return true if domain resolved
    def doApplyRule( parameter, model )
      @logger.debug( "#{__method__} matchRule=#{matchRule}, matchRule.class=#{matchRule.class} on parameter.getName=#{parameter.getName}" )
      
      # no need to resolve domain  - Paramter_Ref?
      return true unless parameter.respond_to?( :domain )

      # its already read
      return true if parameter.domain
      if  match(  parameter ) then
        @logger.info( "#{__method__} setDomain '#{domain}' on parameter '#{parameter.getName}' based on rule '#{matchRule}'" )
        #
        self.class.setDomain( parameter, domain, model )
        # parameter.setDomain( domain )
        # parameter.resolveDomain( model )
        return true
      end
      return false
    end

    def self.setDomain( parameter, domain, model )
        parameter.setDomain( domain )
        parameter.resolveDomain( model )
    end



  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
tla-sbuilder-0.3.9 lib/sbuilder/resolver_rule_match.rb
tla-sbuilder-0.3.8 lib/sbuilder/resolver_rule_match.rb
tla-sbuilder-0.3.7 lib/sbuilder/resolver_rule_match.rb
tla-sbuilder-0.3.4 lib/sbuilder/resolver_rule_match.rb