From 8de476ae9ad566c24cad66ac9bec69c0e7d255ca Mon Sep 17 00:00:00 2001 From: ziinc Date: Wed, 11 Dec 2019 16:48:05 +0800 Subject: [PATCH 1/3] added typespecs to engine --- lib/crawly/engine.ex | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/crawly/engine.ex b/lib/crawly/engine.ex index cbeb91bf..66588bc8 100644 --- a/lib/crawly/engine.ex +++ b/lib/crawly/engine.ex @@ -8,6 +8,9 @@ defmodule Crawly.Engine do use GenServer + @type t :: %__MODULE__{started_spiders: started_spiders()} + @type started_spiders() :: %{optional(module()) => identifier()} + defstruct started_spiders: %{} def start_spider(spider_name) do @@ -18,6 +21,7 @@ defmodule Crawly.Engine do GenServer.call(__MODULE__, {:stop_spider, spider_name}) end + @spec running_spiders() :: started_spiders() def running_spiders() do GenServer.call(__MODULE__, :running_spiders) end @@ -26,6 +30,7 @@ defmodule Crawly.Engine do GenServer.start_link(__MODULE__, [], name: __MODULE__) end + @spec init(any) :: {:ok, __MODULE__.t()} def init(_args) do {:ok, %Crawly.Engine{}} end From f3dd271e0ee345dca9fdb654faf0926a44a00c12 Mon Sep 17 00:00:00 2001 From: ziinc Date: Wed, 11 Dec 2019 17:28:44 +0800 Subject: [PATCH 2/3] added typespecs for start_spider and stop_spider --- lib/crawly/engine.ex | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/crawly/engine.ex b/lib/crawly/engine.ex index 66588bc8..43042e85 100644 --- a/lib/crawly/engine.ex +++ b/lib/crawly/engine.ex @@ -13,10 +13,16 @@ defmodule Crawly.Engine do defstruct started_spiders: %{} + @spec start_spider(module()) :: + {:ok, started_spiders()} + | {:error, :spider_already_started} + | {:error, :atom} def start_spider(spider_name) do GenServer.call(__MODULE__, {:start_spider, spider_name}) end + @spec stop_spider(module()) :: + {:ok, started_spiders()} | {:error, :spider_not_running} def stop_spider(spider_name) do GenServer.call(__MODULE__, {:stop_spider, spider_name}) end From fb2487988c7006a32b8615bc97755a85ac2e09b8 Mon Sep 17 00:00:00 2001 From: ziinc Date: Wed, 11 Dec 2019 18:53:16 +0800 Subject: [PATCH 3/3] fixed result of start_spider and stop_spider --- lib/crawly/engine.ex | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/crawly/engine.ex b/lib/crawly/engine.ex index 43042e85..79f6b5f3 100644 --- a/lib/crawly/engine.ex +++ b/lib/crawly/engine.ex @@ -14,7 +14,7 @@ defmodule Crawly.Engine do defstruct started_spiders: %{} @spec start_spider(module()) :: - {:ok, started_spiders()} + :ok | {:error, :spider_already_started} | {:error, :atom} def start_spider(spider_name) do @@ -22,7 +22,7 @@ defmodule Crawly.Engine do end @spec stop_spider(module()) :: - {:ok, started_spiders()} | {:error, :spider_not_running} + :ok | {:error, :spider_not_running} def stop_spider(spider_name) do GenServer.call(__MODULE__, {:stop_spider, spider_name}) end