Module: Daigaku::GithubClient

Defined in:
lib/daigaku/github_client.rb

Class Method Summary collapse

Class Method Details

.master_zip_url(user_and_repo) ⇒ Object

Returns the url to the master zip file of the Github repo.



8
9
10
# File 'lib/daigaku/github_client.rb', line 8

def self.master_zip_url(user_and_repo)
  "https://github.com/#{user_and_repo}/archive/master.zip"
end

.updated?(user_and_repo) ⇒ Boolean

Returns whether the pushed_at time from Github API is newer than the stored one.

Returns:

  • (Boolean)


20
21
22
23
24
25
26
27
28
# File 'lib/daigaku/github_client.rb', line 20

def self.updated?(user_and_repo)
  return false unless user_and_repo

  course       = Course.new(user_and_repo.split('/').last)
  stored_time  = QuickStore.store.get(course.key(:updated_at))
  current_time = updated_at(user_and_repo)

  DateTime.parse(stored_time) < DateTime.parse(current_time)
end

.updated_at(user_and_repo) ⇒ Object

Returns the timestamp of updated_at for the repo from the Github API.



13
14
15
16
# File 'lib/daigaku/github_client.rb', line 13

def self.updated_at(user_and_repo)
  url = "https://api.github.com/repos/#{user_and_repo}"
  JSON.parse(URI.open(url).read)['updated_at']
end