class Classroom

Attributes

file[R]
parent_dir[R]
path[R]

Public Class Methods

new(path, file) click to toggle source
# File lib/codefusion/classroom.rb, line 9
def initialize(path, file)
  @path = path
  @dir = path.split('/').last
  @parent_dir = File.dirname(path)
  @code = new_code
  @file = file
  update
end

Public Instance Methods

update() click to toggle source
# File lib/codefusion/classroom.rb, line 18
def update
  request = [@code, make_hash]
  if @uuid
    FirebaseUpdateCommand.update(request, @uuid)
  else
    @uuid = set_uuid(FirebaseCreateCommand.create(request))
  end
end
url() click to toggle source
# File lib/codefusion/classroom.rb, line 27
def url
  generate_url
end

Private Instance Methods

current_codes() click to toggle source
# File lib/codefusion/classroom.rb, line 44
def current_codes
  FirebaseCommand.classroom_codes
end
generate_code() click to toggle source
# File lib/codefusion/classroom.rb, line 40
def generate_code
  SecureRandom::hex(2)
end
generate_url() click to toggle source
# File lib/codefusion/classroom.rb, line 32
def generate_url
  "http://codefusion.io/#/classrooms/#{@code}"
end
make_hash() click to toggle source
# File lib/codefusion/classroom.rb, line 52
def make_hash
  if @file == ""
    DirParser.make_hash(@dir, @parent_dir)
  else
    FileParser.make_hash(@path, @file, @parent_dir)
  end
end
new_code() click to toggle source
# File lib/codefusion/classroom.rb, line 36
def new_code
  current_codes.include?(generate_code) ? new_code : generate_code
end
set_uuid(response) click to toggle source
# File lib/codefusion/classroom.rb, line 48
def set_uuid(response)
  response["name"]
end