Module | Tools::Event
In: | app/models/tools/event.rb

### Methods

confirmed confirmed= confirmed? ends_later_than_it_starts fill_lat_lng_data microformat_body pretty_body pretty_dates pretty_hours pretty_place

### Included Modules

Geokit::Geocoders

### Public Instance methods

confirmed()

Indica si el estado del evento es ‘confirmado’.

[Source]

        # File app/models/tools/event.rb, line 14
    14:   def confirmed
    15:     self.state.eql?('confirmado')
    16:   end

confirmed=(val)

Asigna el valor del campo `state`. Si `val = true` el evento es confirmado. y el valor del campo `state` es `confirmado`. En el caso contrario, el valor del campo `state` es `previsto`.

[Source]

        # File app/models/tools/event.rb, line 21
    21:   def confirmed=(val)
    22:     case val
    23:       when true
    24:         self.state = 'confirmado'
    25:       when false
    26:         self.state = 'previsto'
    27:     else
    28:       self.state = val.to_i.eql?(1) ? 'confirmado' : 'previsto'
    29:     end
    30:   end

confirmed?()

Indica si el evento está confirmado o no.

[Source]

        # File app/models/tools/event.rb, line 9
     9:   def confirmed?
    10:     self.state.eql?('confirmado')
    11:   end

ends_later_than_it_starts()

Añade a la lista de errors una entrada si la fecha de inicio es posterior a la de fin del evento.

Método que se usa en `after_save`.

[Source]

        # File app/models/tools/event.rb, line 94
    94:   def ends_later_than_it_starts
    95:     errors.add_to_base "La fecha de fin debe ser posterior a la de inicio" if self.ends_at < self.starts_at
    96:   end

fill_lat_lng_data()

Rellena los datos de longitud y latitud.

Método que se usa en `after_save`.

[Source]

         # File app/models/tools/event.rb, line 101
    101:   def fill_lat_lng_data
    102:     if location_for_gmaps_changed?
    103:       if "#{location_for_gmaps} #{city}".blank?
    104:         self.lat = self.lng = nil
    105:       else
    106:         full_location = "#{location_for_gmaps}, #{city}, Spain"
    107:         loc = MultiGeocoder.geocode("#{full_location}")
    108:         unless loc.success
    109:           loc = MultiGeocoder.geocode(location_for_gmaps)
    110:         end
    111:
    112:         if loc.success
    113:           self.lat, self.lng = loc.lat, loc.lng
    114:         end
    115:       end
    116:     end
    117:   end

microformat_body()

Muestra la descripción del evento en formato apropiado para usarlo como microformat

[Source]

        # File app/models/tools/event.rb, line 79
    79:   def microformat_body
    80:     m = body.to_s.match(/(.+)<p.*>###<\/p>(.+)/m)
    81:     # m = body.match(/((.+?)<\/p>)/m)
    82:     if m
    83:       b = "<div class='description'>#{m[1]}</div>
    84:         #{m[2]}"
    85:     else
    86:       b = body
    87:     end
    88:     return b
    89:   end

pretty_body()

Fomatea la descripción del evento.

[Source]

        # File app/models/tools/event.rb, line 33
    33:   def pretty_body
    34:      body ? body.sub(/<p.*>###<.*\/p>/, '') : ""
    35:   end

pretty_dates(locale=I18n.locale)

Muestra las fechas del evento en el idioma correspondinte con el formato para este idioma. Si está indicada la hora, ésta también se muestra.

[Source]

        # File app/models/tools/event.rb, line 39
    39:   def pretty_dates(locale=I18n.locale)
    40:     if starts_at.eql?(ends_at)
    41:       if starts_at.strftime('%H%M') == "0000"
    42:         # Remove hour if it is scheduled for midnight
    43:         I18n.localize(starts_at.to_date, :format => :long, :locale => locale)
    44:       else
    45:         I18n.localize(starts_at, :format => :long, :locale => locale)
    46:       end
    47:     elsif starts_at.to_date.eql?(ends_at.to_date)
    48:       # Same day, different hours
    49:       "#{I18n.localize(starts_at.to_date, :format => :long, :locale => locale)}, #{starts_at.strftime('%H:%M')} - #{ends_at.strftime('%H:%M')}"
    50:     else
    51:       # Different dates
    52:       start_date = starts_at.strftime('%H%M') == "0000" ? I18n.localize(starts_at.to_date, :format => :long, :locale => locale) : I18n.localize(starts_at, :format => :long, :locale => locale)
    53:       end_date = ends_at.strftime('%H%M') == "0000" ? I18n.localize(ends_at.to_date, :format => :long, :locale => locale) : I18n.localize(ends_at, :format => :long, :locale => locale)
    54:       "#{start_date} - #{end_date}"
    55:     end
    56:   end

pretty_hours(locale=I18n.locale)

Muestra las horas de inicio y final del evento.

[Source]

        # File app/models/tools/event.rb, line 60
    60:   def pretty_hours(locale=I18n.locale)
    61:     if starts_at.to_date.eql?(ends_at.to_date)
    62:       # Same day, different hours
    63:       "#{starts_at.strftime('%H:%M')} - #{ends_at.strftime('%H:%M')}"
    64:     else
    65:       # Different dates
    66:       start_date = starts_at.strftime('%H%M') == "0000" ? I18n.localize(starts_at.to_date, :format => :long, :locale => locale) : I18n.localize(starts_at, :format => :long, :locale => locale)
    67:       end_date = ends_at.strftime('%H%M') == "0000" ? I18n.localize(ends_at.to_date, :format => :long, :locale => locale) : I18n.localize(ends_at, :format => :long, :locale => locale)
    68:       "#{start_date} - #{end_date}"
    69:     end
    70:   end

pretty_place()

Muestra la información sobre el lugar del evento.

[Source]

        # File app/models/tools/event.rb, line 73
    73:   def pretty_place
    74:     full_info = [self.place, self.city].map {|e| e.blank? ? nil : e }.compact
    75:     full_info.empty? ? "" : full_info.join(", ")
    76:   end

[Validate]