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