Module: ActionQuery::Route
- Defined in:
- lib/action_query/route.rb
Class Method Summary collapse
Class Method Details
.result ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/action_query/route.rb', line 3 def self.result controllers = HashWithIndifferentAccess.new ::Rails.application.routes.routes.each do |route| next unless route.defaults[:controller] names = route.defaults[:controller].split('/') obj = controllers names.each_with_index do |name,index| obj[name.classify()] ||= HashWithIndifferentAccess.new obj = obj[name.classify()] end obj[route.defaults[:action]] ||= [] path = { parts: route.parts.map(&:to_s), path: route.path.spec.to_s, verb: route.verb, requirements: route.required_parts.map(&:to_s), method: route.defaults[:action] } obj[route.defaults[:action]] << path end controllers end |
.to_coffee ⇒ Object
26 27 28 |
# File 'lib/action_query/route.rb', line 26 def self.to_coffee result.map{|k,v| self.write_class("#{k}",v)}.flatten.join end |
.write_class(key, val) ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/action_query/route.rb', line 31 def self.write_class(key,val) classes = [] res = "class ActionQuery.#{key} extends ActionQuery.$Base\n" res += " @methods(" arr = [] val.each do |k,v| if v.is_a? Array arr << "#{k}: [{#{v.map{|path| path.map{|l,m| "#{l}: #{m.inspect}"}.join(',')}.join('},{')}}]" else classes << write_class("#{key}.#{k}",v) end end res += arr.join(',') res += " )\n" [res] | classes end |