Class: Administer::Fields::FieldBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/administer/fields/field_builder.rb

Constant Summary collapse

@@registered_classes =
SuperclassHash.new

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.register_class(klass, &block) ⇒ Object



6
7
8
# File 'lib/administer/fields/field_builder.rb', line 6

def register_class(klass, &block)
  @@registered_classes[klass] = block
end

Instance Method Details

#build_fields_for(fields) ⇒ Object



11
12
13
14
15
# File 'lib/administer/fields/field_builder.rb', line 11

def build_fields_for(fields)
  fields.map do |field|
    field_for(field)
  end
end

#field_for(object) ⇒ Object



17
18
19
20
21
# File 'lib/administer/fields/field_builder.rb', line 17

def field_for(object)
  block = @@registered_classes[object.class]
  raise "FieldBuilder has no class registered #{object.class}" unless block
  block.call(object)
end