class Udacity::UdacityCourse

Service for all Udacity API calls

Attributes

json_response[R]
total_course_num[R]

Public Class Methods

find() click to toggle source

# get courses by tracks (return a list of course id) def acquire_courses_by_tracks(track_name)

@json_response['tracks'].each do |track|
  next unless track['name'] == track_name
  return track['courses'].inspect
end

end

# File lib/share_learning/udacity_course.rb, line 97
def self.find
  course_data = UdacityAPI.acquire_json_response
  total_course_num = UdacityAPI.total_course_num
  new(UdacityAPI, course_data, total_course_num)
end
new(udacity_api, data, total_course_num) click to toggle source
# File lib/share_learning/udacity_course.rb, line 10
def initialize(udacity_api, data, total_course_num)
  @udacity_api = udacity_api
  @json_response = data
  @total_course_num = total_course_num
end

Public Instance Methods

acquire_all_courses() click to toggle source

get all courses information

# File lib/share_learning/udacity_course.rb, line 21
def acquire_all_courses
  course_array = []
  @json_response['courses'].each do |course|
    h = create_hash(course['title'], course['key'], \
                    course['summary'], course['homepage'], \
                    course['image'])
    course_array.push(h)
  end
  course_array
end
acquire_course_by_id(id) click to toggle source

get course information by course id

# File lib/share_learning/udacity_course.rb, line 33
def acquire_course_by_id(id)
  acquire_course_info('key', id)
end
acquire_course_by_title(title) click to toggle source

get course information by course title

# File lib/share_learning/udacity_course.rb, line 38
def acquire_course_by_title(title)
  acquire_course_info('title', title)
end
acquire_course_info(key, value) click to toggle source

get course information

# File lib/share_learning/udacity_course.rb, line 43
def acquire_course_info(key, value)
  @json_response['courses'].each do |course|
    next unless course[key] == value
    h = create_hash(course['title'], course['key'], \
                    course['summary'], course['homepage'], \
                    course['image'])
    return h
  end
end
acquire_courses_by_keywords(keyword) click to toggle source
# File lib/share_learning/udacity_course.rb, line 65
def acquire_courses_by_keywords(keyword)
  course_array = []
  @json_response['courses'].each do |course|
    next unless substring?(course['title'].downcase, \
                           course['summary'].downcase, keyword.downcase)

    course_array = append_course(course_array, course)
  end
  
  course_array
end
append_course(course_array, course) click to toggle source
# File lib/share_learning/udacity_course.rb, line 57
def append_course(course_array, course)
  h = create_hash(course['title'], course['key'], \
                  course['summary'], course['homepage'], \
                  course['image'])
  course_array.push(h)
  course_array
end
create_hash(title, id, intro, link, image) click to toggle source
# File lib/share_learning/udacity_course.rb, line 16
def create_hash(title, id, intro, link, image)
  { title: title, id: id, intro: intro, link: link, image: image }
end
substring?(title, summary, keyword) click to toggle source
# File lib/share_learning/udacity_course.rb, line 53
def substring?(title, summary, keyword)
  ((title.include? keyword) || (summary.include? keyword))
end