Sha256: 2572c4aa5502758acbcb07e8ff1cbf2ec6a2abf616748d00ecdbd7ff2a79516d
Contents?: true
Size: 801 Bytes
Versions: 9
Compression:
Stored size: 801 Bytes
Contents
module Hobo module Routes extend self def reset_linkables @linkable_keys = Set.new end def linkable_key(klass, action, options) subsite = options[:subsite] || options['subsite'] method = options[:method] || options['method'] || :get [ subsite, klass.name, action, method ].join('/') end def linkable!(klass, action, options={}) @linkable_keys << linkable_key(klass, action, options) end def linkable?(klass, action, options={}) @linkable_keys.member? linkable_key(klass, action, options) end def models_with(wanted_action) @linkable_keys.map do |k| subsite, class_name, action, method = k.split('/') (action == wanted_action) ? class_name.constantize : nil end.compact end end end
Version data entries
9 entries across 9 versions & 1 rubygems