Sha256: 0606017c27e11cf8e1dfb9f60ad549b162141b364a3332ad3ed7722826a2f1ad

Contents?: true

Size: 1.49 KB

Versions: 1

Compression:

Stored size: 1.49 KB

Contents

require 'thor'

class Exercism
  class CLI < Thor

    desc "fetch", "Fetch current assignment from exercism.io"
    def fetch
      require 'exercism'

      assignments = Exercism::Api.fetch_for(Exercism.user, Exercism.project_dir)
      if assignments.empty?
        puts "No assignments fetched."
      else
        assignments.each do |assignment|
          puts "Fetched #{File.join(assignment.assignment_dir)}"
        end
      end
    end

    desc "submit FILE", "Submit code to exercism.io on your current assignment"
    def submit(file)
      require 'exercism'

      Exercism::Api.submit(File.join(FileUtils.pwd, file), {for: Exercism.user})
    end

    desc "login", "Save exercism.io api credentials"
    def login
      require 'exercism'

      username = ask("Your GitHub username:")
      key = ask("Your exercism.io API key:")
      default_path = FileUtils.pwd
      path = ask("What is your exercism exercises project path? (#{default_path})")
      if path.empty?
        path = default_path
      end
      Exercism.login(username, key, path)

      say("Your credentials have been written to #{Exercism.config.file}")
    end

    desc "logout", "Clear exercism.io api credentials"
    def logout
      require 'exercism'

      Exercism.config.delete
    end

    desc "whoami", "Get the github username that you are logged in as"
    def whoami
      require 'exercism'

      puts Exercism.user.github_username
    rescue Errno::ENOENT
      puts "You are not logged in."
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
exercism-0.0.5 lib/cli.rb