class CommitLive::Current

Attributes

lesson[RW]
netrc[RW]
sentry[RW]

Public Class Methods

new() click to toggle source
# File lib/commit-live/lesson/current.rb, line 10
def initialize()
        @netrc = CommitLive::NetrcInteractor.new()
        @sentry = CommitLive::Sentry.new()
end

Public Instance Methods

getAttr(attr) click to toggle source
# File lib/commit-live/lesson/current.rb, line 53
def getAttr(attr)
        if !attr.nil?
                lesson.fetch(attr)
        end
end
getCurrentLesson(puzzle_name) click to toggle source
# File lib/commit-live/lesson/current.rb, line 15
def getCurrentLesson(puzzle_name)
        getLesson(puzzle_name)
end
getLesson(track_slug) click to toggle source
# File lib/commit-live/lesson/current.rb, line 24
def getLesson(track_slug)
        begin
                Timeout::timeout(15) do
                        response = CommitLive::API.new().get(
                                "/v2/user/track/#{track_slug}",
                                headers: { 'Authorization' => "#{token}" }
                        )
                        if response.status == 200
                                @lesson = JSON.parse(response.body)
                        elsif response.status == 404
                                puts "Oops you are trying to access a non-existent lesson."
                                exit
                        else
                                sentry.log_message("Get Lesson Failed",
                                        {
                                                'url' => "/v2/user/track/#{track_slug}",
                                                'response-body' => response.body,
                                                'response-status' => response.status
                                        }
                                )
                        end
                end
        rescue Timeout::Error
                puts "Error while getting current lesson."
                puts "Please check your internet connection."
                exit
        end
end
getValue(key) click to toggle source
# File lib/commit-live/lesson/current.rb, line 59
def getValue(key)
        lessonData = getAttr('data')
        lessonData[key]
end
token() click to toggle source
# File lib/commit-live/lesson/current.rb, line 19
def token
        netrc.read
        netrc.password
end