require 'i_am_i_can/configs/configs' module IAmICan module Configurable extend ActiveSupport::Concern class_methods do def i_am_i_can Configs.get(self.name) end def _reflect_of(key) _name = i_am_i_can.send("#{key}_class") reflections.each do |name, reflection| return name if reflection.class_name == _name end; nil end end included do def i_am_i_can Configs.get(self.class.name) end delegate :_reflect_of, to: self end end end