Class: Cardiac::DeclarationBuilder

Inherits:
ExtensionBuilder show all
Defined in:
lib/cardiac/declarations.rb

Instance Method Summary collapse

Methods inherited from ExtensionBuilder

#__extension_module__, #extension_eval

Methods inherited from Proxy

#respond_to?

Constructor Details

#initialize(base, extension_module = nil) ⇒ DeclarationBuilder

Overridden to build directly on a resource/subresource.



4
5
6
7
8
9
10
11
12
13
14
# File 'lib/cardiac/declarations.rb', line 4

def initialize(base, extension_module=nil)
  case base
  when ::Cardiac::Resource
    builder = ::Cardiac::Subresource.new(base)
  when ::URI, ::String
    builder = ::Cardiac::Resource.new(base)
  else
    raise ::ArgumentError, 'a base URI or Resource must be provided'
  end
  super builder, extension_module
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class Cardiac::ExtensionBuilder

Instance Method Details

#extension_exec(*args, &block) ⇒ Object

Overridden to return an extended resource/subresource, but skip building the extension module if no block is given.



18
19
20
21
22
23
24
# File 'lib/cardiac/declarations.rb', line 18

def extension_exec(*args, &block)
  if block
    super(*args, &block)
    @builder.extending(__extension_module__)
  end
  @builder
end