Class: JsendWrapper::RenderOption

Inherits:
Object
  • Object
show all
Defined in:
lib/jsend_wrapper/rails/render_option.rb

Overview

Parses the “render jsend: …” command. Valid forms:

Constant Summary collapse

VALID_TYPES =
[:success, :fail, :error]
VALID_OPTIONS =
[:data, :code, :message]
VALID_KEYS =
VALID_TYPES + VALID_OPTIONS

Instance Method Summary collapse

Constructor Details

#initialize(obj) ⇒ RenderOption

render jsend: @object render jsend: @object render jsend: @object render jsend: @object render jsend: @object, code: 123 render jsend: @object, data: @another_object render jsend: @object, code: 123, data: @another_object

Parameters:

  • obj (Hash, Object)

    Examples:



34
35
36
# File 'lib/jsend_wrapper/rails/render_option.rb', line 34

def initialize(obj)
  @hash = normalize obj
end

Instance Method Details

#renderString

Returns A string containing the rendered JSON.

Returns:

  • (String)

    A string containing the rendered JSON



40
41
42
# File 'lib/jsend_wrapper/rails/render_option.rb', line 40

def render
  renderer.to_s
end

#rendererRenderer

Returns:



47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/jsend_wrapper/rails/render_option.rb', line 47

def renderer
  @renderer ||=
    if @hash.key? :success
      SuccessRenderer.new @hash[:success]
    elsif @hash.key? :fail
      FailRenderer.new @hash[:fail]
    elsif @hash.key? :error
      ErrorRenderer.new @hash[:error], @hash.slice(:code, :data)
    else
      raise 'render jsend:{...} must include "success:", "fail:", or "error:"'
    end
end