Quando se lista o nome de autores de livros, artigos e outras publicações é comum que se apresente o nome do autor ou dos autores da seguinte forma: sobrenome do autor em letras maiúsculas, seguido de uma vírgula e da primeira parte do nome apenas com as iniciais maiúsculas.
Por exemplo:
- SILVA, Joao
- COELHO, Paulo
- ARAUJO, Celso de
Seu desafio é fazer um programa que leia um número inteiro correspondendo ao número de nomes que será fornecido, e, a seguir, leia estes nomes (que podem estar em qualquer tipo de letra) e imprima a versão formatada no estilo exemplificado acima.
As seguintes regras devem ser seguidas nesta formatação:
- o sobrenome será igual a última parte do nome e deve ser apresentado em letras maiúsculas;
- se houver apenas uma parte no nome, ela deve ser apresentada em letras maiúsculas (sem vírgula): se a entrada for “ Guimaraes” , a saída deve ser “ GUIMARAES”;
- se a última parte do nome for igual a "FILHO", "FILHA", "NETO", "NETA", "SOBRINHO", "SOBRINHA" ou "JUNIOR" e houver duas ou mais partes antes, a penúltima parte fará parte do sobrenome. Assim: se a entrada for "Joao Silva Neto", a saída deve ser "SILVA NETO, Joao" ; se a entrada for "Joao Neto" , a saída deve ser "NETO, Joao";
- as partes do nome que não fazem parte do sobrenome devem ser impressas com a inicial maiúscula e com as demais letras minúsculas;
- "da", "de", "do", "das", "dos" não fazem parte do sobrenome e não iniciam por letra maiúscula.
- Ruby 2.6.5
- Rails 6.0.1
- Postgresql database
Clone the repository
- with ssh
git clone [email protected]:Roalves2606/Obras-Bibliogr-ficas.git
- with https
git clone https://github.com/Roalves2606/Obras-Bibliogr-ficas.git
Copy the environment variables
cd Obras-Bibliogr-ficas
cp .env.sample .env
Setup the project using docker-compose
docker-compose build
docker-compose up -d
Enter the project shell
docker exec -it author-list-challenge /bin/bash
Setup the project database (inside docker)
bundle exec rails db:setup
Start the application
bundle exec rails s -p 3000 -b 0.0.0.0
Assuming that you have installed RoR environment (you can do it following this link)
Install all dependencies
bundle install
Start the application
bundle exec rails s -p 30000 -b 0.0.0.0
The best way to use this application is with Postman
Set the correct method and and url for your request
- method: POST
- URl: http://localhost:3000/api/v1/author_list
Pass the appliction/json Content-Type in the headers
- key: Content-Type
- value: application/json
Now, in the Body
tab, select the raw
option and anter your author list in this format
{
"author_list":
{
"records": **records_number**,
"original_list":
[**author_name_array**]
}
}
You can use this sample if you like
{
"author_list":
{
"records": "6",
"original_list":
[
"Rodrigo Nunes",
"Mariana da Silva",
"Roberta Andrade Filha",
"Maria",
"Carlos dos Santos Junior",
"José Neto"
]
}
}
Now click Send
. You can see the response on the bottom in the Body
option.
docker exec -it author-list-challenge bundle exec rspec
or
docker exec -it author-list-challenge /bin/bash
bundle install
bundle exec rspec
-
pg => PostgreSQl is the database that i am most used to, and have the most experience.
-
pry => I prefer pry over byebug, for cleaner debugging and with more options.
-
rubocop-performance => Used to enforce best practices, performance wise, when coding.
-
rubocop-rails => Used for enforce Rails best practices.
-
rubocop-rspec => Used for enforce RSpec best practices.
-
rspec-rails => Testing framework for rails
-
factory_bot_rails => Used to automate object creation for tests.
-
faker => Used to generate random data.
-
shoulda-matchers => Used to simplify creation of some tests
-
All other gems were added by default