Module: HalApi::Representer::Embeds::Resources
- Defined in:
- lib/hal_api/representer/embeds.rb
Instance Method Summary collapse
- #embed_zoomed?(name, zoom_def = nil, zoom_param = nil) ⇒ Boolean
- #skip_property?(binding, options) ⇒ Boolean
-
#suppress_embed?(binding, options) ⇒ Boolean
embed if zoomed.
Instance Method Details
#embed_zoomed?(name, zoom_def = nil, zoom_param = nil) ⇒ Boolean
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/hal_api/representer/embeds.rb', line 29 def (name, zoom_def=nil, zoom_param=nil) # if the embed in the representer definition has `zoom: :always` defined # always embed it, even if it is in another embed # (this is really meant for collections where embedded items must be included) return true if zoom_def == :always # passing nil explicitly overwrites defaults in signature, # so we default to nil and fix in the method body zoom_def = true if zoom_def.nil? # if there is no zoom specified in the request params (options) # then embed based on the zoom option in the representer definition # if there is a zoom specified in the request params (options) # then do not zoom when this name is not in the request zoom_param.nil? ? zoom_def : zoom_param.include?(name) end |
#skip_property?(binding, options) ⇒ Boolean
13 14 15 |
# File 'lib/hal_api/representer/embeds.rb', line 13 def skip_property?(binding, ) super(binding, ) || (binding, ) end |
#suppress_embed?(binding, options) ⇒ Boolean
embed if zoomed
18 19 20 21 22 23 24 25 26 27 |
# File 'lib/hal_api/representer/embeds.rb', line 18 def (binding, ) name = (binding[:as] || binding.name).to_s = !!binding[:embedded] # not embedded, return false - nothing to suppress return false if ! # check if it should be zoomed, suppress if not !(name, binding[:zoom], [:zoom]) end |