29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
# File 'lib/flydata/source.rb', line 29
def self.component_class_for(component_sym, de)
source_sym = DATA_ENTRY_TYPE_MAP[de['type']]
unless source_sym
raise "No source components are available for this data entry"
end
@component_classes ||= {}
component_key = component_key(source_sym, component_sym)
unless @component_classes.has_key?(component_key)
require_component(source_sym, component_sym)
unless @component_classes.has_key?(component_key)
@component_classes[component_key] = nil
end
end
klass = @component_classes[component_key]
unless klass
raise "Component '#{component_sym}' is not defined in source '#{source_sym}'"
end
klass
end
|