We were very inconsistent regarding these rules. Personally I prefer no empty lines around blocks, clases, etc... as recommended by the Ruby style guide [1], and they're the default values in rubocop, so those are the settings I'm applying. The exception is the `private` access modifier, since we were leaving empty lines around it most of the time. That's the default rubocop rule as well. Personally I don't have a strong preference about this one. [1] https://rubystyle.guide/#empty-lines-around-bodies
28 lines
725 B
Ruby
28 lines
725 B
Ruby
class MapLocation < ApplicationRecord
|
|
belongs_to :proposal, touch: true
|
|
belongs_to :investment, class_name: "Budget::Investment", touch: true
|
|
|
|
validates :longitude, :latitude, :zoom, presence: true, numericality: true
|
|
|
|
def available?
|
|
latitude.present? && longitude.present? && zoom.present?
|
|
end
|
|
|
|
def json_data
|
|
{
|
|
investment_id: investment_id,
|
|
proposal_id: proposal_id,
|
|
lat: latitude,
|
|
long: longitude
|
|
}
|
|
end
|
|
|
|
def self.load_from_heading(heading)
|
|
map = new
|
|
map.zoom = Budget::Heading::OSM_DISTRICT_LEVEL_ZOOM
|
|
map.latitude = heading.latitude.to_f if heading.latitude.present?
|
|
map.longitude = heading.longitude.to_f if heading.longitude.present?
|
|
map
|
|
end
|
|
end
|