Skip to content

Commit

Permalink
Merge pull request #89 from bomrafinha/bomrafinha
Browse files Browse the repository at this point in the history
XML -> JSON concluído
  • Loading branch information
bomrafinha authored Mar 27, 2020
2 parents fd67ffa + db6f3c1 commit c1d8218
Show file tree
Hide file tree
Showing 21 changed files with 339 additions and 51 deletions.
130 changes: 119 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,15 @@
<br />

![Maintenance](https://img.shields.io/maintenance/yes/2020)
![Build](https://img.shields.io/badge/Build-1.1.14.172-brightgreen)
![Build](https://img.shields.io/badge/Build-1.1.15.271-brightgreen)
![GitHub release (latest by date)](https://img.shields.io/github/v/release/bomrafinha/FormatConverter)
![GitHub Release Date](https://img.shields.io/github/release-date/bomrafinha/FormatConverter)
![Github repo age](https://img.shields.io/github/issues/detail/age/bomrafinha/FormatConverter/1.svg?style=flat-square)
![Github author](https://img.shields.io/github/issues/detail/u/bomrafinha/FormatConverter/1.svg?style=flat-square)

![GitHub last commit](https://img.shields.io/github/last-commit/bomrafinha/FormatConverter)
![GitHub contributors](https://img.shields.io/github/contributors/bomrafinha/FormatConverter)
![GitHub last commit](https://img.shields.io/github/last-commit/bomrafinha/FormatConverter)
![GitHub commit activity](https://img.shields.io/github/commit-activity/y/bomrafinha/FormatConverter.svg?style=flat-square)

![GitHub issues](https://img.shields.io/github/issues/bomrafinha/FormatConverter)
![GitHub closed issues](https://img.shields.io/github/issues-closed/bomrafinha/FormatConverter)
Expand Down Expand Up @@ -129,7 +132,7 @@ Deve-se manter a ordem de compilação do projeto como na imagem.
<br />

## Dependências <a name="dependencias"></a>
+ **Sem dependências o momento.**
+ **Sem dependências até o momento.**

<br />

Expand All @@ -144,6 +147,16 @@ Deve-se manter a ordem de compilação do projeto como na imagem.
3. Faça "push" de seus commits;
4. Solicite um "pull request" para o master do repositório principal.

### Criando uma *Issue*
Para criar uma *issue* atente para o seguinte:
+ Selecionar o *label* adequado para a *issue* (esse *label* poderá vir a ser alterado, mas a não designação faz com que a *issue* fique perdida).

![Label Issue](documentation/images/label_issue.png)

+ Selecionar o projeto *FormatConverter - Kanban*, isso organizará o que está sendo feito e o que deverá ser feito.

![Projeto Issue](documentation/images/project_issue.png)

<br />

## Checklist para Contribuir <a name="checklist"></a>
Expand All @@ -152,7 +165,7 @@ Deve-se manter a ordem de compilação do projeto como na imagem.
+ Readme (caso nescessário)
- Número do build;
- Alterar indice;
- Alerar / adicionar forma de uso;
- Alterar / adicionar forma de uso;
- Incluir pacotes / classes / métodos / parâmetros nas formas de uso;
- Alterar sitemap;
- Alterar estrutura da aplicação;
Expand Down Expand Up @@ -183,15 +196,100 @@ Deve-se manter a ordem de compilação do projeto como na imagem.
<br />

## Padronização de Código <a name="source"></a>
+ **[Implementar documentação](documentation/documentacao.md)**
### Versionamento
Para versionar o FormatConverter deve-se usar como base o versionamento para windows 32 bits do Format_Converter.exe, da forma que se segue:

![Workgroup](documentation/images/versionamento.png)
#### onde:
1. Versão principal, só muda quando o funcionamento básico do sistema altera de forma considerável;
2. Quantidade de módulos funcionais do sistema;
3. Quantidade de funções públicas disponíveis no sistema;
4. Versão de build do sistema auto-gerado pelo Delphi;
5. Deve-se manter o build como auto incremento;

Para cada teste compilado com sucesso deve-se dar *build* no .exe para versionar (shift + F9).

Os *releases* do repositório serão feitos a cada vez que um módulo estiver 100% finalizado, ou quando um conserto muito relevante for realizado.

<br />

### Padrões adotados no projeto
Para um melhor entendimento do projeto foi-se adotado alguns padrões que facilitam a identificação de cada estrutura usada. São, basicamente, o uso de *camelcase*, com variações nas iniciais;

#### Variáveis de método
Variáveis locais devem ser *camelcase* iniciando em minúsculo.

Observar o espaçamento entre a declaração de variáveis e o inicio do método.

![Variáveis de método](documentation/images/padrao_variaveis_locais.png)

#### Variáveis privadas
A declaração de váriaveis privadas deve ocorrer sempre dentro dos modificadores de acesso.

Devem começar sempre com "f" minúsculo, seguido por seu nome em *camelcase* com a inicial em maiúsculo.

![Variáveis privadas](documentation/images/padrao_variaveis_privadas.png)

#### Propriedades
Propriedades devem usar *camelcase* começando sempre com a inicial em maiúsculo.

Devem ter exatamente o nome de sua variável privada e/ou metodo de acesso, eliminando apenas o prefixo (f, get, set).

![Propriedades](documentation/images/padrao_propriedades.png)

#### Métodos
A declaração de métodos deve ocorrer sempre dentro dos modificadores de acesso.

Métodos devem ser *camelcase* iniciando em minúsculo.

Os parâmetros do método devem ser *camelcase* iniciando em minúsculo.

Procurar, quando possível, usar prefixos *get*, *set*, *eh*, etc de acordo com a função do método e/ou seu retorno.

![Métodos](documentation/images/padrao_metodos.png)

#### Interfaces
Interfaces devem começar sempre com a letra "I" (maiúsculo), seguido por seu nome em *camelcase* com a inicial em maiúsculo também.

![Interfaces](documentation/images/padrao_interfaces.png)

#### Classes
Classes devem começar sempre com a letra "T" (maiúsculo), seguido por seu nome em *camelcase* com a inicial em maiúsculo também.

Classes que não extendem nenhuma outra classes em específico devem extender *TInterfacedObject*.

![Classes](documentation/images/padrao_classes.png)

#### Chamada de métodos em múltiplas linhas
Métodos com chamadas muito extensas devem ser chamados usando padrão de identação JSON.

![Chamada de métodos em múltiplas linhas 01](documentation/images/padrao_chamadas_01.png)
![Chamada de métodos em múltiplas linhas 02](documentation/images/padrao_chamadas_02.png)

#### Uso de blocos *begin end*
Estruturas que não se utilizam do bloco de abertura e fechamento de código, como *ifs* de uma linha, em um código muito extenso geralmente atrapalham na leitura do código para posteriores modificações. Por esse motivo **todas** as estruturas devem possuir o bloco de abertura e fechamento (*begin .. end*)

![Uso de blocos *begin end* 01](documentation/images/padrao_blocos_01.png)
![Uso de blocos *begin end* 02](documentation/images/padrao_blocos_02.png)

#### Identação
Modificadores de acesso devem ser declarados de forma a ficarem alinhados à declaração da classe.

Declaração de métodos, propriedades, construtores/destrutores, bem como o *var* da declaração de variáveis, devem estar alinhados.

Agrupar *procedures* e *functions* sem alterná-los.

Separar declações de variáveis, métodos, construtores, destrutores e propriedades com uma linha em branco, bem como deixar uma linha em branco antes da declaração de modificador de acesso, ou fim do bloco, exceto no primeiro modificador após a declaração da classes.

![Identação](documentation/images/padrao_identacao_01.png)

#### Um código bem padronizado é muito mais fácil de ler, mesmo por programadores que utilizam outras linguagens.

<br />

## TODO <a name="todo"></a>
+ Documentação
- configuração do fonte
- arquivo padronização de código e documentação
- forma de versionamento

+ Estrutura básica do código
- Pacotes com recursos visuais (arrastar e soltar)
Expand Down Expand Up @@ -230,9 +328,6 @@ Deve-se manter a ordem de compilação do projeto como na imagem.
- Normalizar return CSV -> TStringList
- Normalizar return TStringList -> String

+ Conversor XML -> JSON
- Entrada XML -> Saída JSON

+ Conversor XML -> CSV
- Entrada XML -> Saída CSV
- Entrada XML -> Saída string
Expand Down Expand Up @@ -293,9 +388,22 @@ FormatConverter
│ └── .gitkeep
├── documentation
│ ├── images
│ │ ├── label_issue.png
│ │ ├── padrao_blocos_01.png
│ │ ├── padrao_blocos_02.png
│ │ ├── padrao_chamadas_01.png
│ │ ├── padrao_chamadas_02.png
│ │ ├── padrao_classes.png
│ │ ├── padrao_identacao_01.png
│ │ ├── padrao_interfaces.png
│ │ ├── padrao_metodos.png
│ │ ├── padrao_propriedades.png
│ │ ├── padrao_variaveis_locais.png
│ │ ├── padrao_variaveis_privadas.png
│ │ ├── project_issue.png
│ │ ├── sitemap.png
│ │ ├── versionamento.png
│ │ └── workgroup.png
│ ├── documentacao.md
│ └── instalacao.md
├── images
│ └── icone
Expand Down
4 changes: 0 additions & 4 deletions documentation/documentacao.md

This file was deleted.

Binary file added documentation/images/label_issue.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added documentation/images/padrao_blocos_01.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added documentation/images/padrao_blocos_02.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added documentation/images/padrao_chamadas_01.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added documentation/images/padrao_chamadas_02.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added documentation/images/padrao_classes.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added documentation/images/padrao_identacao_01.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added documentation/images/padrao_interfaces.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added documentation/images/padrao_metodos.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added documentation/images/padrao_propriedades.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added documentation/images/project_issue.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added documentation/images/versionamento.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions documentation/instalacao.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Issue #2
27 changes: 9 additions & 18 deletions modules/Format_Converter/U_FormatConverter.View.pas
Original file line number Diff line number Diff line change
Expand Up @@ -99,26 +99,20 @@ procedure TFormatConverter.bXMLtoJSONClick(Sender: TObject);
var
xml : TXMLDocument;
list : TStringList;

testeStr : String;
testeJson : TJSONObject;
testeList : TStringList;
json : TJSONObject;

begin
// xml := XMLtoJSON.normalizeOrigin(memoOriginal.Text);
// memoOriginal.Lines.Clear;
// list := XMLtoJSON.normalizeOrigin(xml);
// memoOriginal.Lines := list;
// memoResultado.Text := XMLtoJSON.normalizeOrigin(list);
xml := XMLtoJSON.normalizeOrigin(memoOriginal.Text);
memoOriginal.Lines.Clear;
list := XMLtoJSON.normalizeOrigin(xml);
memoOriginal.Lines := list;

json := XMLtoJSON.originTypeToReturnType(xml);

testeStr := memoOriginal.Text;
testeJson := XMLtoJSON.normalizeReturn(testeStr);
testeList := XMLtoJSON.normalizeReturn(testeJson);
testeStr := XMLtoJSON.normalizeReturn(testeList);
memoResultado.Text := json.ToString;

memoOriginal.Lines := testeList;
memoResultado.Text := testeStr;
list := XMLtoJSON.normalizeReturn(json);
memoResultado.lines := list;

end;

Expand All @@ -140,9 +134,6 @@ procedure TFormatConverter.FormShow(Sender: TObject);
blocosConteudoWitdth : Integer;
blocosBotoesWitdth : Integer;

blocosBotoesWHeight : Integer;
blocosConteudoHeight : Integer;

begin
ScreenSize := Screen.Size;

Expand Down
2 changes: 1 addition & 1 deletion project/Format_Converter.dpr
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ program Format_Converter;
uses
System.StartUpCopy,
FMX.Forms,
U_FormatConverter.View in '..\modules\U_FormatConverter.View.pas' {FormatConverter};
U_FormatConverter.View in '..\modules\Format_Converter\U_FormatConverter.View.pas' {FormatConverter};

{$R *.res}

Expand Down
8 changes: 4 additions & 4 deletions project/Format_Converter.dproj
Original file line number Diff line number Diff line change
Expand Up @@ -298,10 +298,10 @@
<VerInfo_Locale>1046</VerInfo_Locale>
<VerInfo_Debug>true</VerInfo_Debug>
<VerInfo_AutoIncVersion>true</VerInfo_AutoIncVersion>
<VerInfo_Keys>CompanyName=Bomrafinha;FileDescription=$(MSBuildProjectName);FileVersion=1.1.14.171;InternalName=FormatConverter;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
<VerInfo_Build>171</VerInfo_Build>
<VerInfo_Keys>CompanyName=Bomrafinha;FileDescription=$(MSBuildProjectName);FileVersion=1.1.15.271;InternalName=FormatConverter;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
<VerInfo_Build>271</VerInfo_Build>
<VerInfo_MinorVer>1</VerInfo_MinorVer>
<VerInfo_Release>14</VerInfo_Release>
<VerInfo_Release>15</VerInfo_Release>
<DCC_UnitSearchPath>../app;../output;$(DCC_UnitSearchPath)</DCC_UnitSearchPath>
<Icon_MainIcon>..\images\icone\icon.ico</Icon_MainIcon>
<UWP_DelphiLogo44>..\images\icone\icon 44x44.png</UWP_DelphiLogo44>
Expand Down Expand Up @@ -331,7 +331,7 @@
<DelphiCompile Include="$(MainSource)">
<MainSource>MainSource</MainSource>
</DelphiCompile>
<DCCReference Include="..\modules\U_FormatConverter.View.pas">
<DCCReference Include="..\modules\Format_Converter\U_FormatConverter.View.pas">
<Form>FormatConverter</Form>
<FormType>fmx</FormType>
</DCCReference>
Expand Down
Loading

0 comments on commit c1d8218

Please sign in to comment.