Module: ClientApiBuilder::Section::ClassMethods

Defined in:
lib/client_api_builder/section.rb

Instance Method Summary collapse

Instance Method Details

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

  code = "def self.\#{name}_router\n  \#{kls.name}\nend\n\ndef \#{name}\n  @\#{name} ||= self.class.\#{name}_router.new(self.root_router, \#{nested_router_options.inspect})\nend\n"
  self.class_eval code, __FILE__, __LINE__
end