Module: ClientApiBuilder::Section::ClassMethods

Defined in:
lib/client_api_builder/section.rb

Instance Method Summary collapse

Instance Method Details

#section(name, nested_router_options = {}) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/client_api_builder/section.rb', line 11

def section(name, nested_router_options = {}, &)
  kls = InheritanceHelper::ClassBuilder::Utils.create_class(
    self,
    name,
    ::ClientApiBuilder::NestedRouter,
    nil,
    'NestedRouter',
    &
  )

  code = <<~CODE
    def self.#{name}_router
      #{kls.name}
    end

    def #{name}
      @#{name} ||= self.class.#{name}_router.new(self.root_router, #{nested_router_options.inspect})
    end
  CODE
  class_eval code, __FILE__, __LINE__
end