Class: DimensionService
- Inherits:
-
Object
- Object
- DimensionService
- Defined in:
- app/services/dimension_service.rb
Instance Method Summary collapse
- #available_dimensions(default_dimension) ⇒ Object
- #calculate_boat_attributes(default_dimension) ⇒ Object
-
#initialize(model) ⇒ DimensionService
constructor
A new instance of DimensionService.
Constructor Details
#initialize(model) ⇒ DimensionService
Returns a new instance of DimensionService.
3 4 5 |
# File 'app/services/dimension_service.rb', line 3 def initialize model @model = model end |
Instance Method Details
#available_dimensions(default_dimension) ⇒ Object
33 34 35 36 37 38 39 40 |
# File 'app/services/dimension_service.rb', line 33 def available_dimensions default_dimension available_dimensions = [] I18n::t('static.dimensions').select do |dimension| next if dimension[:id] == default_dimension available_dimensions << dimension[:id] end available_dimensions end |
#calculate_boat_attributes(default_dimension) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'app/services/dimension_service.rb', line 7 def calculate_boat_attributes default_dimension attributes = [:boat_length_metrics, :boat_beam_metrics, :boat_draft_metrics, :boat_gross_tonage] available_dimensions(default_dimension).each do |available_dimension| # puts "#{available_dimension} #{default_dimension}" dimension_value = Dimension::COMPARISON[default_dimension.to_sym][available_dimension.to_sym] attributes.each do |attribute| attribute_dimension = attribute.to_s + "_#{available_dimension}" attribute_default_dimension = attribute.to_s + "_#{default_dimension}" default_dimension_value = @model.attributes[attribute_default_dimension.downcase] if default_dimension_value calculated_dimension = default_dimension_value * dimension_value @model.send("#{attribute_dimension}=", calculated_dimension) # puts "#{default_dimension_value} #{default_dimension} is #{calculated_dimension} #{available_dimension}" else @model.send("#{attribute_dimension}=", nil) end end end end |