require "fiona7/type_register" require "fiona7/obj_classes_from_cms" require "fiona7/attribute_name_mangler" module Fiona7 class AttributeNamesFromCms def initialize(attribute, type_register=Fiona7::TypeRegister.instance) @attribute = attribute @type_register = type_register end def attributes # Select all known (i.e. registered) classes obj_classes = Fiona7::ObjClassesFromCms.new(@type_register).obj_classes # Select classes with the given attribute obj_classes = obj_classes.select {|obj_class| @type_register.read(obj_class).find_attribute(@attribute) } obj_classes.map {|obj_class| Fiona7::AttributeNameMangler.new(@attribute, obj_class).mangle }.uniq end end end