Class: RichSnippet::Event

Inherits:
Thing
  • Object
show all
Defined in:
app/models/rich_snippet/event.rb

Instance Method Summary collapse

Methods inherited from Thing

#array_json, #module, #name, #type

Instance Method Details

#event_status_typeObject



14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'app/models/rich_snippet/event.rb', line 14

def event_status_type
  return 'moron' if end_date < start_date
  if (event_status == 'auto') || (event_status == '')
    if Time.now < start_date
      'not started'
    elsif Time.now > end_date
      'completed'
    else
      'in process'
    end
  else
    event_status
  end
end

#to_json(render_childs = false) ⇒ Object



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# File 'app/models/rich_snippet/event.rb', line 40

def to_json(render_childs = false)
  json = {
    "@context": "http://schema.org",
    "@type": "Event",
    name: name,
    description: description,
    image: image ? image.binary_url : nil,
    startDate: start_date,
    endDate: end_date,
    organizer: organizer ? organizer.to_json : nil,
    inLanguage: in_language,
    offers: array_json(offers),
    location: location ? location.to_json : nil,
    performers: array_json(performers),
    url: url,
    EventStatus: {
      "@context": "http://schema.org",
      "@type": "EventStatusType",
      description: event_status_type
    }
  }

  if render_childs
    json[:subEvents] = array_json(sub_events)
    json[:superEvent] = super_event ? super_event.to_json : nil
  end

  return json.delete_if { |k, v| !v.present? }
end

#warningsObject



29
30
31
32
33
34
35
36
37
38
# File 'app/models/rich_snippet/event.rb', line 29

def warnings
  warns = []
  warns << 'End date is before start date!' if end_date < start_date
  warns << 'Start date is mandatory' if start_date.blank?
  warns << 'End date is recommendet' if end_date.blank?
  warns << 'Location is mandatory' if location.nil?
  warns << 'Event status is recommendet' if event_status.blank?
  warns << 'Offers are recommendet' if offers.empty?
  return warns
end