Sha256: 7b86d84acb128f76f280ab01bf05565762b8b9132064d72eae1f5787c8db07c3
Contents?: true
Size: 1.13 KB
Versions: 3
Compression:
Stored size: 1.13 KB
Contents
require "dynamic_router/version" module DynamicRouter module_function def has_dynamic_route_for(klass, url, target, options = {}) route_method = options[:method] || :get if ActiveRecord::Base.connection.table_exists? klass.table_name Rails.application.routes.draw do klass.find_each do |model| unless options[:defaults].blank? defaults = {} options[:defaults].each do |key, value| defaults[key.to_sym] = value.call(model) end end _url = url.call(model).to_s _target = target.to_s unless _url.blank? || _url.gsub(/\//, "").blank? #puts "Routing #{route_method.to_s.upcase} #{_url}, to #{target}, defaults : #{defaults}" send(route_method, _url, :to => _target, :defaults => defaults) end end end end klass.class_eval do after_save :create_route def create_route Rails.application.routes_reloader.reload! end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
dynamic_router-0.0.9 | lib/dynamic_router.rb |
dynamic_router-0.0.7 | lib/dynamic_router.rb |
dynamic_router-0.0.4 | lib/dynamic_router.rb |