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, private_options) ⇒ Boolean
-
#suppress_embed?(binding, options) ⇒ Boolean
embed if zoomed.
Instance Method Details
#embed_zoomed?(name, zoom_def = nil, zoom_param = nil) ⇒ Boolean
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/hal_api/representer/embeds.rb', line 39 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, private_options) ⇒ Boolean
23 24 25 |
# File 'lib/hal_api/representer/embeds.rb', line 23 def skip_property?(binding, ) super(binding, ) || (binding, ) end |
#suppress_embed?(binding, options) ⇒ Boolean
embed if zoomed
28 29 30 31 32 33 34 35 36 37 |
# File 'lib/hal_api/representer/embeds.rb', line 28 def (binding, ) name = binding[:as].evaluate(self).to_s || binding.name = !!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 |