Sha256: a415a94e28a71ff77932e65e34981a337d9aaf61ed6d295c5ed3915412256eb0
Contents?: true
Size: 1.2 KB
Versions: 1
Compression:
Stored size: 1.2 KB
Contents
module RegexpExamples class BaseRepeater def initialize(group) @group = group end def result(min_repeats, max_repeats) group_result = @group.result results = [] min_repeats.upto(max_repeats) do |repeats| group_result.each do |result| results << result * repeats end end results.uniq end end class OneTimeRepeater < BaseRepeater def initialize(group) super end def result super(1, 1) end end class StarRepeater < BaseRepeater def initialize(group) super end def result super(0, TIMES) end end class PlusRepeater < BaseRepeater def initialize(group) super end def result super(1, TIMES) end end class QuestionMarkRepeater < BaseRepeater def initialize(group) super end def result super(0, 1) end end class RangeRepeater < BaseRepeater def initialize(group, min, has_comma, max) super(group) @min = min if max @max = max elsif has_comma @max = min + TIMES else @max = min end end def result super(@min, @max) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
regexp-examples-0.0.0 | lib/regexp-examples/repeaters.rb |