Module: Onsi::Model::ClassMethods

Defined in:
lib/onsi/model.rb

Overview

Defines class methods available on the class.

Since:

  • 1.0.0

Instance Method Summary collapse

Instance Method Details

#api_render(version, id: :id, &block) ⇒ Object

Add a version to be rendered.

Parameters:

  • version (Symbol)

    The version that will trigger this render block.

  • block (Block)

    The block. Called on an instance of ModelRenderer

Since:

  • 1.0.0



51
52
53
# File 'lib/onsi/model.rb', line 51

def api_render(version, id: :id, &block)
  api_renderer(version, id).instance_exec(&block)
end

#api_renderer(version, id, for_render: false) ⇒ Object

Fetch the ModelRenderer for the version.

Parameters:

  • version (Symbol)

    The version to fetch the renderer for.

  • for_render (true, false) (defaults to: false)

    Specifies if the version should be required to exist. Should only ever be true when attempting to render the resource.

Raises:

Since:

  • 1.0.0



66
67
68
69
70
71
72
73
74
# File 'lib/onsi/model.rb', line 66

def api_renderer(version, id, for_render: false)
  @api_renderer ||= {}
  if for_render
    raise Errors::UnknownVersionError.new(self, version) if @api_renderer[version].nil?
  else
    @api_renderer[version] ||= ModelRenderer.new(id)
  end
  @api_renderer[version]
end