lib/facet/string/mscan.rb in facets-0.9.0 vs lib/facet/string/mscan.rb in facets-1.0.0

- old
+ new

@@ -1,41 +1,82 @@ -require 'nano/string/mscan.rb' \ No newline at end of file + +class String + + # Like #scan but returns MatchData ($~) rather + # then matched string ($&). + # + def mscan(re) #:yield: + if block_given? + scan(re) { yield($~) } + else + m = [] + scan(re) { m << $~ } + m + end + end + +end + + +# _____ _ +# |_ _|__ ___| |_ +# | |/ _ \/ __| __| +# | | __/\__ \ |_ +# |_|\___||___/\__| +# +=begin test + + require 'test/unit' + + class TCString < Test::Unit::TestCase + + def test_mscan + r = 'abc,def,gh'.mscan(/[,]/) + assert( r.all?{ |md| MatchData === md } ) + assert_equal( 2, r.to_a.length ) + assert_equal( ',', r[0][0] ) + assert_equal( ',', r[1][0] ) + end + + end + +=end