Module: AdequateJson::Loader

Defined in:
lib/adequate_json/railtie.rb

Class Method Summary collapse

Class Method Details

.autoload_serializers(module_name) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/adequate_json/railtie.rb', line 6

def autoload_serializers(module_name)
  path = "app/#{module_name}"
  module_name.to_s.camelize.tap do |type_name|
    unless Object.const_defined?(type_name)
      m = Object.const_set(type_name, Module.new)
      # Listen for Zeitwerk code reloading and clear the serializers cache
      Rails.autoloaders.main.on_setup do
        AdequateJson::Resolver::Cache.reset!
      end
      Rails.autoloaders.main.push_dir(path, namespace: m)
    end
  end
end