free_mutant/lib/mutant/cli/classifier/namespace.rb
2013-06-14 21:12:10 +02:00

47 lines
979 B
Ruby

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