Current section
Files
Jump to
Current section
Files
lib/tasks/scratch.ex
defmodule Mix.Tasks.Workshop.Scratch do
use Mix.Task
@spec run(OptionParser.argv) :: :ok
def run(argv) do
Workshop.start([], [])
{_opts, _, _} = OptionParser.parse(argv, switches: [system: :boolean])
IO.inspect Workshop.Exercises.list_by_weight!
end
end
# def fast_forward_to_first_non_passing do
# sandbox = File.ls!(Workshop.Session.get(:folder))
# state = %{exercises: Exercises.list!,
# state: Workshop.State.get(:exercises, [])}
# {checked_out, remaining} = find_checked_out_and_non_checked_out(state.exercises, sandbox)
# Workshop.State.update :exercises, Workshop.State.get(:exercises, [])
# |> update_exercises(checked_out, fn state, exercise_mod ->
# identifier = Exercise.get_identifier(exercise_mod)
# current_state = Keyword.get(state, identifier, [])
# {identifier, Keyword.put(current_state, :status, :in_progress)}
# end, state)
# Workshop.State.update :exercises, Workshop.State.get(:exercises, [])
# |> update_exercises(remaining, fn state, exercise_mod ->
# identifier = Exercise.get_identifier(exercise_mod)
# current_state = Keyword.get(state, identifier, [])
# {identifier, Keyword.put(current_state, :status, :not_started)}
# end, state)
# Workshop.State.persist!
# end
# def update_exercises(state, exercises, fun, opts) do
# name_map = create_name_map(opts.exercises)
# exercises
# |> Stream.map(&(elem(&1, 1)))
# |> Stream.map(&(Map.get(name_map, &1)))
# |> Stream.map(&Exercise.load/1)
# |> Stream.map(&(fun.(state, &1)))
# |> Enum.to_list
# end
# def mark_as_not_checked_out(state, exercises, opts) do
# name_map = create_name_map(opts.exercises)
# exercises
# |> Stream.map(&(elem(&1, 1)))
# |> Stream.map(&(Map.get(name_map, &1)))
# |> Stream.map(&Exercise.load/1)
# |> Stream.map(fn exercise_mod ->
# identifier = Exercise.get_identifier(exercise_mod)
# current_state = Keyword.get(state, identifier, [])
# {identifier, Keyword.put(current_state, :status, :not_started)}
# end)
# |> Enum.to_list
# end