class Conference

Attributes

event_count[RW]
events[RW]
name[RW]

Public Class Methods

all() click to toggle source
# File lib/get_freaky/conference.rb, line 28
def self.all
  conferences = get("/conferences.json")
  conference_names = conferences.collect{|c| c["name"]}
end
create_slug(title) click to toggle source
# File lib/get_freaky/conference.rb, line 45
def self.create_slug(title)
  title.
    downcase.
    # we cannot use slugify method below, one conference name has `:` char which must exist in url name (slug)
    gsub(/[ ._]/, "-").
    gsub(/([|])/) { |match| CGI.escape(match) }
end
find(name) click to toggle source
# File lib/get_freaky/conference.rb, line 12
def self.find(name)
  slug = create_slug(name)
  response = get("/conferences/#{slug}.json")
  if response.not_found?
    NullConference.new("No conference was found with that name")
  elsif response.success?
    self.new(
      response["name"],
      response["event_count"],
      response["events"]
    )
  else
    raise response.status
  end
end
new(name, event_count, events) click to toggle source
# File lib/get_freaky/conference.rb, line 6
def initialize(name, event_count, events)
  self.name = name
  self.event_count = event_count
  self.events = events
end

Public Instance Methods

event_list() click to toggle source
# File lib/get_freaky/conference.rb, line 33
def event_list
  if valid?
    events.map { |event| event["short_code"] }
  else
    "There was no conference found by that name."
  end
end
valid?() click to toggle source
# File lib/get_freaky/conference.rb, line 41
def valid?
  true
end