exercism / exercism/elixir-representer

Normalize struct names

Aberta
#37 12 comentários 1 reação 0 responsáveis Ver no GitHub
x:action/improve x:knowledge/elementary x:module/representer x:size/large x:type/coding
Linguagem predominante
Elixir
Estrelas
11
Forks
8
Merge médio
11d 3h
PRs com merge (30d)
1

Descrição

This is mentioned in #29.

Struct names should be replaced by placeholders as well.

## Example input

```elixir
defmodule Something do
defstruct [:a, :b]
def something(%Something{a: a}), do: %Something{a: 2 * a}
def something_else(%__MODULE__{a: a}), do: %__MODULE__{a: 3 * a}
end
```

## Desired output

```elixir
defmodule(PLACEHOLDER_1) do
defstruct([:a, :b])
def(PLACEHOLDER_2(%PLACEHOLDER_1{a: PLACEHOLDER_3})) do
%PLACEHOLDER_1{a: 2 * PLACEHOLDER_3}
end
def(PLACEHOLDER_4(%__MODULE__{a: PLACEHOLDER_3})) do
%__MODULE__{a: 3 * PLACEHOLDER_3}
end
end
```

I think `__MODULE__` should not be replaced, because it means different things in different modules. It's already normalized, in a way...

## Current output

```elixir
defmodule(PLACEHOLDER_1) do
defstruct([:a, :b])
def(PLACEHOLDER_2(%Something{a: PLACEHOLDER_3})) do
%Something{a: 2 * PLACEHOLDER_3}
end
def(PLACEHOLDER_4(%__MODULE__{a: PLACEHOLDER_3})) do
%__MODULE__{a: 3 * PLACEHOLDER_3}
end
end
```

Guia de contribuição

Nenhum guia de contribuição indexado para este repositório

Avaliação

Esta issue ainda não foi avaliada.

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.