class Tapioca::Dsl::Compilers::ActiveSupportCurrentAttributes
def decorate
def decorate dynamic_methods = dynamic_methods_of_constant instance_methods = instance_methods_of_constant - dynamic_methods return if dynamic_methods.empty? && instance_methods.empty? root.create_path(constant) do |current_attributes| current_attributes_methods_name = "GeneratedAttributeMethods" current_attributes.create_module(current_attributes_methods_name) do |generated_attribute_methods| dynamic_methods.each do |method| method = method.to_s # We want to generate each method both on the class generate_method(current_attributes, method, class_method: true) # and on the instance generate_method(generated_attribute_methods, method, class_method: false) end instance_methods.each do |method| # instance methods are only elevated to class methods # no need to add separate instance methods for them method = constant.instance_method(method) create_method_from_def(current_attributes, method, class_method: true) end end current_attributes.create_include(current_attributes_methods_name) end end