Class: Uncle::Request
- Inherits:
-
Struct
- Object
- Struct
- Uncle::Request
- Defined in:
- lib/uncle/request.rb
Instance Attribute Summary collapse
-
#controller ⇒ Object
Returns the value of attribute controller.
-
#request ⇒ Object
Returns the value of attribute request.
Instance Method Summary collapse
- #child_resource_names ⇒ Object
- #child_resource_urls ⇒ Object
- #parent_resource_name ⇒ Object
- #parent_resource_path ⇒ Object
- #parent_resource_url ⇒ Object
Instance Attribute Details
#controller ⇒ Object
Returns the value of attribute controller
2 3 4 |
# File 'lib/uncle/request.rb', line 2 def controller @controller end |
#request ⇒ Object
Returns the value of attribute request
2 3 4 |
# File 'lib/uncle/request.rb', line 2 def request @request end |
Instance Method Details
#child_resource_names ⇒ Object
24 25 26 27 28 |
# File 'lib/uncle/request.rb', line 24 def child_resource_names routes = child_resource_nodes.flat_map(&:value).select { |r| r.matches?(request) } routes.map { |r| r.app.defaults[:controller] } end |
#child_resource_urls ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/uncle/request.rb', line 30 def child_resource_urls params = request.params.dup key_paths = child_resource_nodes.map(&:to_key_path) params["#{resource_name}_id"] = params.delete('id') if params.has_key?('id') key_paths.map! do |kp| kp.map! { |segment| params[segment.tr(':', '')] || segment } request.protocol + request.host_with_port + kp.join('/') end end |
#parent_resource_name ⇒ Object
3 4 5 6 7 8 |
# File 'lib/uncle/request.rb', line 3 def parent_resource_name node = node_for_path(parent_resource_path) name = controller_name_for_path(parent_resource_path) node.key =~ /[._]?id\Z/ ? name.singularize : name end |
#parent_resource_path ⇒ Object
14 15 16 17 18 19 20 21 22 |
# File 'lib/uncle/request.rb', line 14 def parent_resource_path @parent_resource_path ||= begin node = node_for_path(request.path) key_path = node.parent.to_key_path key_path.map! { |segment| request.params[segment.tr(':', '')] || segment } key_path.join('/') end end |
#parent_resource_url ⇒ Object
10 11 12 |
# File 'lib/uncle/request.rb', line 10 def parent_resource_url request.protocol + request.host_with_port + parent_resource_path end |