cli icon indicating copy to clipboard operation
cli copied to clipboard

nextercism: Consider a --remote flag for open

Open kytrinyx opened this issue 7 years ago • 2 comments

Open has some nice functionality that lets you specify just the name of an exercise, and it will find all the possible matches that you have locally, and ask which one you want to open.

Many people work on multiple computers, or might not have all their Exercism work downloaded to their computer, which means that they might actually want to open something that they don't have locally.

In this case, it would be nice to provide a --remote flag which would ask the API what potential exercises we are talking about.

This will require defining in detail what the API needs to return and how the CLI will display this.

My gut feeling is that it should display the list exactly as though it were local ones.

We found more than one. Which one did you mean?
Type the number of the one you want to select it.

  [1] python/clock
  [2] go/clock
  [3] ruby/clock
  [4] elixir/clock
  [5] haskell/clock

> 

When implementing this, go ahead and write a test with a test server to fake out the API, until you get it the way you want it. A good starting point is probably:

{
	"solutions": [{
		"id": "abc-123",
		"url": "https://v2.exercism.io/my/solutions/abc-123",
		"track": {
			"track": "cpp",
			"language": "C++"
		},
		"exercise": {
			"id": "clock"
		}
	}]
}

kytrinyx avatar Aug 18 '17 17:08 kytrinyx

I'm interested in this issue. Can you direct me to the files that need to be changed?

palash25 avatar Aug 26 '17 18:08 palash25

Hi @palash25, that's great.

This needs to be based off of the nextercism https://github.com/exercism/cli/tree/nextercism branch, and the command in question is the open command, which can be found in this file: https://github.com/exercism/cli/blob/nextercism/cmd/open.go

You would need to create an open_test.go file in the cmd directory. You can see how we've added tests to https://github.com/exercism/cli/blob/nextercism/cmd/configure_test.go (or other tests in that directory).

We have an abstraction that helps us do some of the setup here: https://github.com/exercism/cli/blob/nextercism/cmd/cmd_test.go

kytrinyx avatar Aug 27 '17 00:08 kytrinyx