Module: ClientApiBuilder::Section::ClassMethods

Defined in:
lib/client_api_builder/section.rb

Instance Method Summary collapse

Instance Method Details

#section(name, &block) ⇒ 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, &block)
  kls = InheritanceHelper::ClassBuilder::Utils.create_class(
    self,
    name,
    ::ClientApiBuilder::NestedRouter,
    nil,
    'NestedRouter',
    &block
  )

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

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