examples/general/SRL/lib/regex/multiplicity.rb in rley-0.6.00 vs examples/general/SRL/lib/regex/multiplicity.rb in rley-0.6.01

- old
+ new

@@ -4,27 +4,26 @@ module Regex # This module is used as a namespace # The multiplicity specifies by how much a given expression can be repeated. class Multiplicity # The lowest acceptable repetition count attr_reader(:lower_bound) - + # The highest possible repetition count attr_reader(:upper_bound) # An indicator that specifies how to repeat (:greedy, :lazy, :possessive) attr_reader(:policy) - + # @param aLowerBound [Integer] # @param anUpperBound [Integer, Symbol] integer or :more symbol # @param aPolicy [Symbol] One of: (:greedy, :lazy, :possessive) def initialize(aLowerBound, anUpperBound, aPolicy) @lower_bound = valid_lower_bound(aLowerBound) @upper_bound = valid_upper_bound(anUpperBound) @policy = valid_policy(aPolicy) end - - public + # Purpose: Return the String representation of the multiplicity. def to_str() case upper_bound when :more case lower_bound @@ -33,62 +32,60 @@ when 1 subresult = '+' else subresult = "{#{lower_bound},}" end - + when lower_bound subresult = "{#{lower_bound}}" else if [lower_bound, upper_bound] == [0, 1] subresult = '?' else subresult = "{#{lower_bound},#{upper_bound}}" end end - + suffix = case policy when :greedy '' when :lazy '?' when :possessive '+' end - + return subresult + suffix end - - - private + + private + # Validation method. Return the validated lower bound value def valid_lower_bound(aLowerBound) err_msg = "Invalid lower bound of repetition count #{aLowerBound}" - raise StandardError, err_msg unless aLowerBound.kind_of?(Integer) + raise StandardError, err_msg unless aLowerBound.kind_of?(Integer) return aLowerBound end - + # Validation method. Return the validated lower bound value def valid_upper_bound(anUpperBound) err_msg = "Invalid upper bound of repetition count #{anUpperBound}" - unless anUpperBound.kind_of?(Integer) || (anUpperBound == :more) + unless anUpperBound.kind_of?(Integer) || (anUpperBound == :more) raise StandardError, err_msg end - + return anUpperBound - end - + end + # Validation method. Return the validated policy value. def valid_policy(aPolicy) err_msg = "Invalid repetition policy '#{aPolicy}'." - valid_policies = [:greedy, :lazy, :possessive] + valid_policies = %i[greedy lazy possessive] raise StandardError, err_msg unless valid_policies.include? aPolicy return aPolicy end - end # class - end # module end # module -# End of file \ No newline at end of file +# End of file