hacken-in/hacken-in

View on GitHub
app/models/venue.rb

Summary

Maintainability
A
0 mins
Test Coverage
# encoding: utf-8
class Venue < ActiveRecord::Base
  validates_presence_of :location, :city, :country, :street, :zipcode, :region_id

  has_many :events
  has_many :single_events

  belongs_to :region

  after_validation :geocode

  geocoded_by :address

  default_scope -> { order(:location) }

  def address
    [self.street, "#{self.zipcode} #{self.city}"].delete_if {|d| d.blank?}.collect{|d|d.strip}.join(", ")
  end

  def to_s
    [location, city].delete_if {|d| d.blank? }.join(", ")
  end

  def to_opengraph
    {
      "og:latitude"=>latitude,
      "og:longitude"=>longitude,
      "og:locality"=>location,
      "og:postal-code"=>zipcode,
      "og:street-address"=>street,
      "og:country-name"=>country
    }
  end
end