Class: Aldous::Respondable::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/aldous/respondable/base.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(status, view_data, view_context) ⇒ Base

Returns a new instance of Base.



8
9
10
11
12
# File 'lib/aldous/respondable/base.rb', line 8

def initialize(status, view_data, view_context)
  @status = status
  @view_data = view_data
  @view_context = view_context
end

Instance Attribute Details

#view_contextObject (readonly)

Returns the value of attribute view_context.



6
7
8
# File 'lib/aldous/respondable/base.rb', line 6

def view_context
  @view_context
end

#view_dataObject (readonly)

Returns the value of attribute view_data.



6
7
8
# File 'lib/aldous/respondable/base.rb', line 6

def view_data
  @view_data
end

Instance Method Details

#action(controller) ⇒ Object

Raises:



14
15
16
# File 'lib/aldous/respondable/base.rb', line 14

def action(controller)
  raise Errors::UserError.new("Respondables must define an 'action' method")
end

#build_view(klass, extra_data = {}) ⇒ Object



26
27
28
29
# File 'lib/aldous/respondable/base.rb', line 26

def build_view(klass, extra_data = {})
  dto = Aldous::SimpleDto.new(view_data._data.merge(extra_data))
  klass.new(status, dto, view_context)
end

#default_statusObject



22
23
24
# File 'lib/aldous/respondable/base.rb', line 22

def default_status
  :ok
end

#statusObject



18
19
20
# File 'lib/aldous/respondable/base.rb', line 18

def status
  @status || default_status
end