Class: ExampleInstallation

Inherits:
Object
  • Object
show all
Includes:
ActiveModel::Serialization
Defined in:
app/models/example_installation.rb

Overview

Read-only projection of a RoomConfiguration that exposes the
customer-facing fields shown on the "Example Installations" carousel
on landing pages — price, coverage, wattage, voltage, operating cost,
and room type — without leaking the internals of the underlying room.

Instance Method Summary collapse

Constructor Details

#initialize(room_configuration) ⇒ ExampleInstallation

Returns a new instance of ExampleInstallation.

Parameters:



10
11
12
# File 'app/models/example_installation.rb', line 10

def initialize(room_configuration)
  @room_configuration = room_configuration
end

Instance Method Details

#coverageInteger

Returns:

  • (Integer)


26
27
28
# File 'app/models/example_installation.rb', line 26

def coverage
  @room_configuration.coverage_percentage || 100 # need some number here
end

#imagenil

Returns:

  • (nil)


15
16
17
18
# File 'app/models/example_installation.rb', line 15

def image
  # Plan images can be served directly from the room configuration using send_file. Discontinuing vignette plan images
  # room_configuration.vignette_plan_image
end

#operating_costInteger

Returns:

  • (Integer)


41
42
43
# File 'app/models/example_installation.rb', line 41

def operating_cost
  @room_configuration.operating_cost_in_cents_per_day
end

#priceFloat

Returns:

  • (Float)


21
22
23
# File 'app/models/example_installation.rb', line 21

def price
  @room_configuration.total.to_f.round(2)
end

#room_type_nameString

Returns:

  • (String)


46
47
48
# File 'app/models/example_installation.rb', line 46

def room_type_name
  @room_configuration.room_type.name
end

#voltageInteger

Returns:

  • (Integer)


36
37
38
# File 'app/models/example_installation.rb', line 36

def voltage
  @room_configuration.control_voltage || @room_configuration.line_items.heating_elements.first.item.voltage # need some number here
end

#wattageInteger

Returns:

  • (Integer)


31
32
33
# File 'app/models/example_installation.rb', line 31

def wattage
  @room_configuration.calculate_total_watts
end