Module: Halogen::Embeds::InstanceMethods
- Defined in:
- lib/halogen/embeds.rb
Overview
:nodoc:
Instance Method Summary collapse
- #child_embed_opts(key) ⇒ Hash
-
#embed_options ⇒ Hash
Hash of options with top level string keys.
-
#embedded ⇒ Hash
Hash of rendered resources to embed.
-
#embedded_child(key, value) ⇒ nil, ...
Either a single rendered child representer or an array of them.
-
#render ⇒ Hash
The rendered hash with embedded resources, if any.
-
#render_child(repr, opts) ⇒ nil, Hash
The rendered child.
Instance Method Details
#child_embed_opts(key) ⇒ Hash
58 59 60 61 62 63 64 65 |
# File 'lib/halogen/embeds.rb', line 58 def (key) opts = .fetch(key, {}) # Turn { :report => 1 } into { :report => {} } for child opts = {} unless opts.is_a?(Hash) opts end |
#embed_options ⇒ Hash
Returns hash of options with top level string keys.
85 86 87 88 89 |
# File 'lib/halogen/embeds.rb', line 85 def @_embed_options ||= .fetch(:embed, {}).tap do |result| Halogen::HashUtil.stringify_keys!(result) end end |
#embedded ⇒ Hash
Returns hash of rendered resources to embed.
29 30 31 32 33 34 35 36 37 |
# File 'lib/halogen/embeds.rb', line 29 def render_definitions(Definition.name) do |definition, result| value = instance_eval(&definition.procedure) child = (definition.name.to_s, value) result[definition.name] = child if child end end |
#embedded_child(key, value) ⇒ nil, ...
Returns either a single rendered child representer or an array of them.
42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/halogen/embeds.rb', line 42 def (key, value) return unless value opts = (key) if value.is_a?(Array) value.map { |item| render_child(item, opts) }.compact else render_child(value, opts) end end |
#render ⇒ Hash
Returns the rendered hash with embedded resources, if any.
23 24 25 |
# File 'lib/halogen/embeds.rb', line 23 def render decorate_render :embedded, super end |
#render_child(repr, opts) ⇒ nil, Hash
Returns the rendered child.
72 73 74 75 76 77 78 79 80 81 |
# File 'lib/halogen/embeds.rb', line 72 def render_child(repr, opts) return unless repr.class.included_modules.include?(Halogen) repr.[:embed] ||= {} repr.[:embed].merge!(opts) repr.[:parent] = self repr.render end |