Module: Coradoc::Html::Drop::DropFactory

Defined in:
lib/coradoc/html/drop/drop_factory.rb

Class Method Summary collapse

Class Method Details

.create(obj) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
# File 'lib/coradoc/html/drop/drop_factory.rb', line 16

def self.create(obj)
  return nil if obj.nil?
  return obj.map { |o| create(o) } if obj.is_a?(Array)
  return Escape.escape_html(obj) if obj.is_a?(String)
  return obj.to_s if obj.is_a?(Numeric) || obj.is_a?(TrueClass) || obj.is_a?(FalseClass)

  pair = lookup_pair(obj)
  return pair.last.new(obj) if pair

  Escape.escape_html(obj.to_s)
end

.drop_class_for(model) ⇒ Object



28
29
30
31
# File 'lib/coradoc/html/drop/drop_factory.rb', line 28

def self.drop_class_for(model)
  pair = lookup_pair(model)
  pair&.last
end

.register(model_class, drop_class) ⇒ Object



11
12
13
14
# File 'lib/coradoc/html/drop/drop_factory.rb', line 11

def self.register(model_class, drop_class)
  @registry << [model_class, drop_class]
  sort_registry!
end

.template_type_for(model) ⇒ Object



33
34
35
36
# File 'lib/coradoc/html/drop/drop_factory.rb', line 33

def self.template_type_for(model)
  drop = drop_class_for(model)
  drop&.new(model)&.template_type
end