From 1d981afae8bb987f8007bf8c043581ebc65a07ae Mon Sep 17 00:00:00 2001 From: Markus Schirp Date: Sun, 21 Jul 2013 22:19:41 +0200 Subject: [PATCH] Move more literals to constants As constans the literals get frozen. This improves sharpness of API use. --- lib/mutant.rb | 4 +++- lib/mutant/cli/classifier.rb | 5 +++-- lib/mutant/mutator/node/literal/regex.rb | 2 -- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/lib/mutant.rb b/lib/mutant.rb index 8f1c6497..6e70cc1b 100644 --- a/lib/mutant.rb +++ b/lib/mutant.rb @@ -20,7 +20,9 @@ require 'concord' # Library namespace module Mutant -end + # The empty string used within this namespace + EMPTY_STRING = ''.freeze +end # Mutant require 'mutant/cache' require 'mutant/node_helpers' diff --git a/lib/mutant/cli/classifier.rb b/lib/mutant/cli/classifier.rb index c74f8259..f25ebe1e 100644 --- a/lib/mutant/cli/classifier.rb +++ b/lib/mutant/cli/classifier.rb @@ -10,7 +10,8 @@ module Mutant OPERATOR_PATTERN = Regexp.union(*OPERATOR_METHODS.map(&:to_s)).freeze METHOD_NAME_PATTERN = /([_A-Za-z][A-Za-z0-9_]*[!?=]?|#{OPERATOR_PATTERN})/.freeze SCOPE_PATTERN = /(?:::)?#{SCOPE_NAME_PATTERN}(?:::#{SCOPE_NAME_PATTERN})*/.freeze - + CBASE_PATTERN = /\A::/.freeze + SCOPE_OPERATOR = '::'.freeze SINGLETON_PATTERN = %r(\A(#{SCOPE_PATTERN})\z).freeze REGISTRY = [] @@ -35,7 +36,7 @@ module Mutant # @api private # def self.constant_lookup(location) - location.gsub(%r(\A::), '').split('::').inject(Object) do |parent, name| + location.gsub(CBASE_PATTERN, EMPTY_STRING).split(SCOPE_OPERATOR).inject(Object) do |parent, name| parent.const_get(name) end end diff --git a/lib/mutant/mutator/node/literal/regex.rb b/lib/mutant/mutator/node/literal/regex.rb index 91ce6f69..31dba298 100644 --- a/lib/mutant/mutator/node/literal/regex.rb +++ b/lib/mutant/mutator/node/literal/regex.rb @@ -7,8 +7,6 @@ module Mutant handle(:regexp) - EMPTY_STRING = ''.freeze - # No input can ever be matched with this NULL_REGEXP_SOURCE = 'a\A'.freeze