From 7d7aeee594bd290e10708cc5f2fc3cca9fa4f48b Mon Sep 17 00:00:00 2001 From: "Julian Doherty (madlep)" Date: Fri, 19 Jul 2013 22:16:49 +1000 Subject: [PATCH 1/2] fix callback summary being output in reverse order --- lib/ex_doc/retriever.ex | 5 +++-- test/exdoc/retriever_test.exs | 2 +- test/fixtures/behaviour.ex | 12 +++++++++++- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/lib/ex_doc/retriever.ex b/lib/ex_doc/retriever.ex index 593d18b0f..a9a11ac3e 100644 --- a/lib/ex_doc/retriever.ex +++ b/lib/ex_doc/retriever.ex @@ -88,8 +88,9 @@ defmodule ExDoc.Retriever do if type == :behaviour do callbacks = Kernel.Typespec.beam_callbacks(module) - docs = Enum.map(module.__behaviour__(:docs), - get_callback(&1, source_path, source_url, callbacks)) ++ docs + enum_docs = Enum.map(module.__behaviour__(:docs), + get_callback(&1, source_path, source_url, callbacks)) + docs = docs ++ Enum.reverse(enum_docs) end ExDoc.ModuleNode[ diff --git a/test/exdoc/retriever_test.exs b/test/exdoc/retriever_test.exs index 7d2b7d7a9..6e3d7ae64 100644 --- a/test/exdoc/retriever_test.exs +++ b/test/exdoc/retriever_test.exs @@ -117,7 +117,7 @@ defmodule ExDoc.RetrieverTest do test "ignore behaviours internal functions" do [node] = get_docs :modules, ["CustomBehaviour"] functions = Enum.map node.docs, fn(doc) -> doc.id end - assert functions == ["hello/1"] + assert functions == ["first/1", "hello/1","last/1"] assert hd(node.docs).type == :defcallback assert hd(node.docs).signature == [{ :integer, [line: 7], [] }] end diff --git a/test/fixtures/behaviour.ex b/test/fixtures/behaviour.ex index bba34a660..4aec7494f 100644 --- a/test/fixtures/behaviour.ex +++ b/test/fixtures/behaviour.ex @@ -1,8 +1,18 @@ defmodule CustomBehaviour do use Behaviour + @doc """ + I should be first. + """ + defcallback first(integer) :: integer + @doc """ This is a sample callback. """ defcallback hello(integer) :: integer -end \ No newline at end of file + + @doc """ + I should be last. + """ + defcallback last(integer) :: integer +end From dc518451e59c1c298fb3c1e93a515cc4937d5a63 Mon Sep 17 00:00:00 2001 From: "Julian Doherty (madlep)" Date: Fri, 19 Jul 2013 22:53:15 +1000 Subject: [PATCH 2/2] fix up variable name --- lib/ex_doc/retriever.ex | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/ex_doc/retriever.ex b/lib/ex_doc/retriever.ex index a9a11ac3e..096f7c9f7 100644 --- a/lib/ex_doc/retriever.ex +++ b/lib/ex_doc/retriever.ex @@ -88,9 +88,9 @@ defmodule ExDoc.Retriever do if type == :behaviour do callbacks = Kernel.Typespec.beam_callbacks(module) - enum_docs = Enum.map(module.__behaviour__(:docs), + callback_docs = Enum.map(module.__behaviour__(:docs), get_callback(&1, source_path, source_url, callbacks)) - docs = docs ++ Enum.reverse(enum_docs) + docs = docs ++ Enum.reverse(callback_docs) end ExDoc.ModuleNode[