class Argyle::Layout::Registry
Public Class Methods
new()
click to toggle source
# File lib/argyle/layout/registry.rb, line 2 def initialize @layouts = {} end
Public Instance Methods
add(layout)
click to toggle source
@param id [Symbol] @param layout [Argyle::Layout::Base]
@raise [Argyle::Error::TypeError] If layout is not an instance of Argyle::Layout::Base
@raise [Argyle::Error::ArgumentError] If he layout has no id set
# File lib/argyle/layout/registry.rb, line 12 def add(layout) unless layout.is_a?(Argyle::Layout::Base) raise Argyle::Error::TypeError.new("Layout must be an instance of #{Argyle::Layout::Base}") end raise Argyle::Error::ArgumentError.new("Layout #{layout.class} has no id") if layout.class.identifier.nil? @layouts[layout.class.identifier] = layout end
clone(id)
click to toggle source
@param id [Symbol]
@return [Argyle::Layout::Base] Clone of the original definition
@raise [Argyle::Error::NotFound] If the layout does not exist
# File lib/argyle/layout/registry.rb, line 28 def clone(id) raise Argyle::Error::NotFound.new("Unknown layout: #{id}") unless @layouts.include?(id) @layouts[id].clone end