Sha256: 4ebaf298020847aa02a7b0af42438ca117f494dcb431ad0ee1d7db0fc8d642fb

Contents?: true

Size: 979 Bytes

Versions: 3

Compression:

Stored size: 979 Bytes

Contents

module Mutant
  class CLI
    class Classifier

      # Namespace classifier
      class Namespace < self

      private

        # Return matcher
        #
        # @return [Matcher]
        #
        # @api private
        #
        def matcher
          self.class::MATCHER.new(namespace)
        end

        # Return namespace
        #
        # @return [Class, Module]
        #
        # @api private
        #
        def namespace
          Classifier.constant_lookup(match[1].to_s)
        end

        # Recursive namespace classifier
        class Recursive < self
          REGEXP = %r(\A(#{SCOPE_PATTERN})\*\z).freeze
          MATCHER = Matcher::Namespace
          register
        end # Recursive

        # Recursive namespace classifier
        class Flat < self
          REGEXP = %r(\A(#{SCOPE_PATTERN})\z).freeze
          MATCHER = Matcher::Scope
          register
        end # Flat

      end # Namespace
    end # Classifier
  end # CLI
end # Mutant

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
mutant-0.3.0.beta4 lib/mutant/cli/classifier/namespace.rb
mutant-0.3.0.beta3 lib/mutant/cli/classifier/namespace.rb
mutant-0.3.0.beta2 lib/mutant/cli/classifier/namespace.rb