Sha256: 3b6fc596aedffbe63c3f3d01331e9f9d80c05028b59975eed6a99977c016f0e7

Contents?: true

Size: 1022 Bytes

Versions: 14

Compression:

Stored size: 1022 Bytes

Contents

= New Feature

* The symbol_matcher method in the symbol_matchers plugin now
  supports a block to allow for type conversion of matched
  segments:

    symbol_matcher(:date, /(\d\d\d\d)-(\d\d)-(\d\d)/) do |y, m, d|
      [Date.new(y.to_i, m.to_i, d.to_i)]
    end
  
    route do |r|
      r.on :date do |date|
        # date is an instance of Date
      end
    end

  As shown above, the block should return an array of objects to yield
  to the match block.
 
  If you have a segment match the passed regexp, but decide during block
  processing that you do not want to treat it as a match, you can have the
  block return nil or false.  This is useful if you want to make sure you
  are using valid data:
  
    symbol_matcher(:date, /(\d\d\d\d)-(\d\d)-(\d\d)/) do |y, m, d|
      y = y.to_i
      m = m.to_i
      d = d.to_i
      [Date.new(y, m, d)] if Date.valid_date?(y, m, d)
    end
  
  When providing a block when using the symbol_matchers method, that
  symbol may not work with the params_capturing plugin.

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
roda-3.83.0 doc/release_notes/3.69.0.txt
roda-3.82.0 doc/release_notes/3.69.0.txt
roda-3.81.0 doc/release_notes/3.69.0.txt
roda-3.79.0 doc/release_notes/3.69.0.txt
roda-3.78.0 doc/release_notes/3.69.0.txt
roda-3.77.0 doc/release_notes/3.69.0.txt
roda-3.76.0 doc/release_notes/3.69.0.txt
roda-3.75.0 doc/release_notes/3.69.0.txt
roda-3.74.0 doc/release_notes/3.69.0.txt
roda-3.73.0 doc/release_notes/3.69.0.txt
roda-3.72.0 doc/release_notes/3.69.0.txt
roda-3.71.0 doc/release_notes/3.69.0.txt
roda-3.70.0 doc/release_notes/3.69.0.txt
roda-3.69.0 doc/release_notes/3.69.0.txt