Sha256: 9681eda8d97516b4b48f1f04ec8b0973fcb6fbf2b5fecead5a6c089923cdbe8f

Contents?: true

Size: 1.09 KB

Versions: 4

Compression:

Stored size: 1.09 KB

Contents

require 'os'
require_relative 'output'

module Daigaku
  module Terminal
    class Solutions < Thor
      include Terminal::Output

      desc 'solutions open [COURSE NAME]', 'Open the solutions folder of a course in a GUI window'
      def open(course_name = '')
        path = File.join(Daigaku.config.solutions_path, course_name)

        unless Dir.exist?(path)
          text = [
            "The course directory \"#{File.basename(path)}\" is not available in",
            "\"#{File.dirname(path)}\".\n",
            'Hint:',
            'Run "daigaku scaffold" to create empty solution files for all courses.'
          ]
          say_warning text.join("\n")

          unless Loading::Courses.load(Daigaku.config.courses_path).empty?
            Terminal::Courses.new.list
          end

          return
        end

        if OS.windows?
          system "explorer '#{path}'"
        elsif OS.mac?
          system "open '#{path}'"
        elsif OS.linux?
          system "xdg-open '#{path}'"
        end
      rescue ConfigurationError => e
        say_warning e.message
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
daigaku-1.0.0 lib/daigaku/terminal/solutions.rb
daigaku-0.6.0 lib/daigaku/terminal/solutions.rb
daigaku-0.5.0 lib/daigaku/terminal/solutions.rb
daigaku-0.4.0 lib/daigaku/terminal/solutions.rb