Class: Droom::Venue

Inherits:
ActiveRecord::Base
  • Object
show all
Includes:
Concerns::Slugged
Defined in:
app/models/droom/venue.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.for_selectionObject

for_selection returns a set of [name, id] pairs suitable for use as select options.



33
34
35
# File 'app/models/droom/venue.rb', line 33

def self.for_selection
  self.all.map{|v| [v.proper_name, v.id] }
end

.visible_to(user = nil) ⇒ Object



28
29
30
# File 'app/models/droom/venue.rb', line 28

def self.visible_to(user=nil)
  self.scoped({})
end

Instance Method Details

#as_json(options = {}) ⇒ Object



72
73
74
75
76
77
78
79
80
81
# File 'app/models/droom/venue.rb', line 72

def as_json(options={})
  json = {
    :id => id,
    :name => name,
    :postcode => post_code,
    :address => address.to_s,
    :lat => lat,
    :lng => lng
  }
end

#as_ri_cal_calendarObject



101
102
103
104
105
106
107
# File 'app/models/droom/venue.rb', line 101

def as_ri_cal_calendar
  RiCal.Calendar do |cal|
    events.primary.each do |event|
      cal.add_subcomponent(event.to_ri_cal)
    end
  end
end

#as_search_resultObject



92
93
94
95
96
97
98
99
# File 'app/models/droom/venue.rb', line 92

def as_search_result
  {
    :type => 'venue',
    :prompt => name,
    :value => name,
    :id => id
  }
end

#as_suggestionObject



83
84
85
86
87
88
89
90
# File 'app/models/droom/venue.rb', line 83

def as_suggestion
  {
    :type => 'venue',
    :prompt => name,
    :value => name,
    :id => id
  }
end

#definite_nameObject



37
38
39
40
41
42
43
# File 'app/models/droom/venue.rb', line 37

def definite_name
  if prepend_article?
    "the #{name}"
  else
    name
  end
end

#identifierObject



49
50
51
# File 'app/models/droom/venue.rb', line 49

def identifier
  'venue'
end

#name_and_addressObject



65
66
67
# File 'app/models/droom/venue.rb', line 65

def name_and_address
  [name, address, post_code].compact.join("\n")
end

#postal_addressObject

todo: remove after migrations complete



54
55
56
57
58
59
60
61
62
63
# File 'app/models/droom/venue.rb', line 54

def postal_address
  Snail.new(
    :line_1 => post_line1,
    :line_2 => post_line2,
    :city => post_city,
    :region => post_region,
    :postal_code => post_code,
    :country => post_country
  )
end

#to_icalObject



109
110
111
# File 'app/models/droom/venue.rb', line 109

def to_ical
  self.as_ri_cal_calendar.to_s
end

#to_sObject



45
46
47
# File 'app/models/droom/venue.rb', line 45

def to_s
  name
end