Module: Entable::Wrapper

Defined in:
lib/entable/wrapper.rb

Class Method Summary collapse

Class Method Details

.add_wrapper(name, klass, &block) ⇒ Object



2
3
4
5
# File 'lib/entable/wrapper.rb', line 2

def self.add_wrapper name, klass, &block
  @@wrappers ||= { }
  @@wrappers[name.to_sym] = klass || block
end

.apply_wrapper(name, items, *args) ⇒ Object



7
8
9
10
11
12
13
14
15
16
# File 'lib/entable/wrapper.rb', line 7

def self.apply_wrapper name, items, *args
  wrapper = @@wrappers[name.to_sym]
  if wrapper.respond_to? :call
    items.map { |item| wrapper.call(item, *args) }
  elsif wrapper.is_a? Class
    items.map { |item| wrapper.new(*item, *args) }
  else
    raise "Unknown wrapper name #{name.inspect}"
  end
end