Sha256: bfc163ff3a232f6f6810e116e2ad4fdb43f650b4e468a93b9fb1e8fc1827ff55
Contents?: true
Size: 1.07 KB
Versions: 4
Compression:
Stored size: 1.07 KB
Contents
class Usher class Splitter def self.for_delimiters(delimiters_array) delimiters = Delimiters.new(delimiters_array) delimiters_array.any?{|d| d.size > 1} ? MultiCharacterSplitterInstance.new(delimiters) : SingleCharacterSplitterInstance.new(delimiters) end class SingleCharacterSplitterInstance attr_reader :url_split_regex def initialize(delimiters) @url_split_regex = Regexp.new("[^#{delimiters.collect{|d| Regexp.quote(d)}.join}]+|[#{delimiters.collect{|d| Regexp.quote(d)}.join}]") end def split(path) path.scan(url_split_regex) end end class MultiCharacterSplitterInstance def initialize(delimiters) @delimiters = delimiters end def split(path) split_path = path.split(delimiters_regexp) split_path.reject!{|s| s.empty? } split_path end protected def delimiters_regexp Regexp.new("(#{@delimiters.unescaped.collect{|d| Regexp.quote(d)}.join('|')})") end end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
usher-0.7.1 | lib/usher/splitter.rb |
usher-0.7.0 | lib/usher/splitter.rb |
usher-0.6.8 | lib/usher/splitter.rb |
usher-0.6.7 | lib/usher/splitter.rb |