Sha256: 2a64bda3b9402d5f1e75b28d581fc6a00450216677c7928baffe1fab1977156d
Contents?: true
Size: 1.1 KB
Versions: 2
Compression:
Stored size: 1.1 KB
Contents
module Riiif class Routes ALLOW_DOTS ||= /[\w.]+/ SIZES ||= /(pct:)?[\w.,]+/ def initialize(router, options) @router = router @options = options end def add_routes(&blk) @router.instance_exec(@options, &blk) end def draw add_routes do |options| resource = options.fetch(:resource) route_prefix = options[:at] route_prefix ||= "/#{options[:as]}" if options[:as] get "#{route_prefix}/:id/:region/:size/:rotation/:quality.:format" => 'riiif/images#show', constraints: { rotation: ALLOW_DOTS, size: SIZES }, defaults: { format: 'jpg', rotation: '0', region: 'full', quality: 'default', model: resource }, as: options[:as] || 'image' get "#{route_prefix}/:id/info.json" => 'riiif/images#info', defaults: { format: 'json', model: resource }, as: [options[:as], 'info'].compact.join('_') # This doesn't work presently # get "#{route_prefix}/:id", to: redirect("#{route_prefix}/%{id}/info.json") get "#{route_prefix}/:id" => 'riiif/images#redirect' end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
riiif-0.4.1 | lib/riiif/routes.rb |
riiif-0.4.0 | lib/riiif/routes.rb |