module Praxis::Extensions::FieldExpansion::ActionDefinitionExtension
Public Instance Methods
expanded_fields(request, media_type)
click to toggle source
# File lib/praxis/extensions/field_expansion.rb, line 19 def expanded_fields(request, media_type) use_fields = self.params && self.params.attributes.key?(:fields) use_view = self.params && self.params.attributes.key?(:view) # Determine what, if any, fields to display. fields = if use_fields request.params.fields.fields else true end # Determine the view that COULD be applicable. view = if use_view && (view_name = request.params.view) media_type.views[view_name] else media_type.views[:default] end expandable = if fields == true # We want to show ALL of the available fields. # This can never be applied to the type (it's likely infinitely recursive). # So use view_name determimed above. view else # We want to show SOME of fields available on a view or type. if use_view && request.params.view # Use the requested view. view else # Use the type. media_type end end Praxis::FieldExpander.expand(expandable,fields) end