def self.create_klass(parent_klass)
klass_name = parent_klass.name
klass = get_super(parent_klass).const_set("#{demodulize_klass_name(klass_name)}Record", Class.new)
klass.class_eval do
include Rulezilla::BasicSupport
begin
include Object.const_get("#{klass_name}Support")
rescue StandardError
NameError
end
attr_reader :record
define_method(:initialize) do |record|
record = OpenStruct.new(record) if record.is_a?(Hash)
instance_variable_set('@record', record)
end
define_method(:method_missing) do |meth, *args, &block|
record.send(meth, *args, &block)
end
end
private_class_method :create_klass, :get_super, :demodulize_klass_name
end