Class: Aldous::ViewBuilder

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(view_context, default_view_data) ⇒ ViewBuilder

Returns a new instance of ViewBuilder.



7
8
9
10
# File 'lib/aldous/view_builder.rb', line 7

def initialize(view_context, default_view_data)
  @view_context = view_context
  @default_view_data = default_view_data
end

Instance Attribute Details

#default_view_dataObject (readonly)

Returns the value of attribute default_view_data.



5
6
7
# File 'lib/aldous/view_builder.rb', line 5

def default_view_data
  @default_view_data
end

#view_contextObject (readonly)

Returns the value of attribute view_context.



5
6
7
# File 'lib/aldous/view_builder.rb', line 5

def view_context
  @view_context
end

Instance Method Details

#build(respondable_class, extra_view_data = {}, status = nil) ⇒ Object



12
13
14
15
16
17
18
19
# File 'lib/aldous/view_builder.rb', line 12

def build(respondable_class, extra_view_data = {}, status = nil)
  actual_status = status || extra_view_data[:status]
  extra_view_data_no_status = extra_view_data.reject{|k, v| k == :status}
  actual_extra_view_data = default_view_data.merge(extra_view_data_no_status)
  view_data_dto = Aldous::SimpleDto.new(actual_extra_view_data)

  respondable_class.new(actual_status, view_data_dto, view_context)
end