Sha256: 3320d9fc5f2de769f700cc543806c6f0079c12918e963e6f7bff4d900ccbba83

Contents?: true

Size: 828 Bytes

Versions: 28

Compression:

Stored size: 828 Bytes

Contents

module ComfortableMexicanSofa::ViewHooks
  
  # Array of declared hooks
  def self.hooks
    @@hooks ||= { }
  end
  
  # Renders hook content
  def self.render(name, template, options = {})
    out = ''
    (self.hooks[name.to_sym] || []).each do |path|
      out += template.render({:partial => path.first}.merge(options))
    end
    return out.html_safe
  end
  
  # Will declare a partial that will be rendered for this hook
  # Example:
  # ComfortableMexicanSofa::ViewHooks.add(:navigation, 'shared/navigation')
  def self.add(name, partial_path, position = 0)
    self.hooks[name.to_sym] ||= []
    self.hooks[name.to_sym] << [partial_path, position]
    self.hooks[name.to_sym].sort_by! { |hook| hook.last }
  end

  
  # Removing previously declared hook
  def self.remove(name)
    self.hooks.delete(name)
  end

end

Version data entries

28 entries across 28 versions & 1 rubygems

Version Path
comfortable_mexican_sofa-1.12.3 lib/comfortable_mexican_sofa/view_hooks.rb
comfortable_mexican_sofa-1.6.31 lib/comfortable_mexican_sofa/view_hooks.rb
comfortable_mexican_sofa-1.12.2 lib/comfortable_mexican_sofa/view_hooks.rb
comfortable_mexican_sofa-1.12.1 lib/comfortable_mexican_sofa/view_hooks.rb
comfortable_mexican_sofa-1.12.0 lib/comfortable_mexican_sofa/view_hooks.rb
comfortable_mexican_sofa-1.11.2 lib/comfortable_mexican_sofa/view_hooks.rb
comfortable_mexican_sofa-1.11.1 lib/comfortable_mexican_sofa/view_hooks.rb
comfortable_mexican_sofa-1.11.0 lib/comfortable_mexican_sofa/view_hooks.rb
comfortable_mexican_sofa-1.10.3 lib/comfortable_mexican_sofa/view_hooks.rb
comfortable_mexican_sofa-1.10.2 lib/comfortable_mexican_sofa/view_hooks.rb
comfortable_mexican_sofa-1.10.1 lib/comfortable_mexican_sofa/view_hooks.rb
comfortable_mexican_sofa-1.10.0 lib/comfortable_mexican_sofa/view_hooks.rb
comfortable_mexican_sofa-1.9.3 lib/comfortable_mexican_sofa/view_hooks.rb
comfortable_mexican_sofa-1.9.2 lib/comfortable_mexican_sofa/view_hooks.rb
comfortable_mexican_sofa-1.8.5 lib/comfortable_mexican_sofa/view_hooks.rb
comfortable_mexican_sofa-1.9.1 lib/comfortable_mexican_sofa/view_hooks.rb
comfortable_mexican_sofa-1.9.0 lib/comfortable_mexican_sofa/view_hooks.rb
comfortable_mexican_sofa-1.8.4 lib/comfortable_mexican_sofa/view_hooks.rb
comfortable_mexican_sofa-1.8.3 lib/comfortable_mexican_sofa/view_hooks.rb
comfortable_mexican_sofa-1.8.2 lib/comfortable_mexican_sofa/view_hooks.rb