{"id":26398467,"url":"https://github.com/claudimf/curso_ruby","last_synced_at":"2026-05-17T12:05:09.121Z","repository":{"id":44577913,"uuid":"511574568","full_name":"claudimf/curso_ruby","owner":"claudimf","description":"Curso de Ruby","archived":false,"fork":false,"pushed_at":"2022-07-15T13:35:48.000Z","size":39,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2023-02-26T15:24:49.880Z","etag":null,"topics":["docker","dokcer-compose","irb","ruby","ruby-gem","rubygem","rubygems"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/claudimf.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-07-07T15:09:52.000Z","updated_at":"2022-07-11T21:32:49.000Z","dependencies_parsed_at":"2022-07-19T12:54:03.493Z","dependency_job_id":null,"html_url":"https://github.com/claudimf/curso_ruby","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/claudimf%2Fcurso_ruby","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/claudimf%2Fcurso_ruby/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/claudimf%2Fcurso_ruby/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/claudimf%2Fcurso_ruby/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/claudimf","download_url":"https://codeload.github.com/claudimf/curso_ruby/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244033511,"owners_count":20386945,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","dokcer-compose","irb","ruby","ruby-gem","rubygem","rubygems"],"created_at":"2025-03-17T12:30:45.930Z","updated_at":"2026-05-17T12:05:04.083Z","avatar_url":"https://github.com/claudimf.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Curso de Ruby\n\nBem-vindo(a) ao curso de ruby.\n\n# Aulas\n\n\u003cdetails\u003e\n    \u003csummary\u003eIO(input and output)\u003c/summary\u003e\n    \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"https://github.com/claudimf/curso_ruby/blob/main/exercicios/01_IO_class/01_output.rb\"\u003eSaídas\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"https://github.com/claudimf/curso_ruby/blob/main/exercicios/01_IO_class/02_file_input.rb\"\u003eEntradas via arquivos\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"https://github.com/claudimf/curso_ruby/blob/main/exercicios/01_IO_class/03_user_input.rb\"\u003eEntradas de usuários\u003c/a\u003e\u003c/li\u003e\n    \u003c/ul\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n    \u003csummary\u003eData Types\u003c/summary\u003e\n    \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"https://github.com/claudimf/curso_ruby/blob/main/exercicios/02_Data_Types/01_Strings.rb\"\u003eStrings\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"https://github.com/claudimf/curso_ruby/blob/main/exercicios/02_Data_Types/02_Booleans.rb\"\u003eBooleans\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"https://github.com/claudimf/curso_ruby/blob/main/exercicios/02_Data_Types/03_Symbols.rb\"\u003eSymbols\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"https://github.com/claudimf/curso_ruby/blob/main/exercicios/02_Data_Types/04_Numbers.rb\"\u003eNumbers\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"https://github.com/claudimf/curso_ruby/blob/main/exercicios/02_Data_Types/05_Arrays.rb\"\u003eArrays\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"https://github.com/claudimf/curso_ruby/blob/main/exercicios/02_Data_Types/06_Hashes.rb\"\u003eHashes\u003c/a\u003e\u003c/li\u003e\n    \u003c/ul\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n    \u003csummary\u003eOperators\u003c/summary\u003e\n    \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"https://github.com/claudimf/curso_ruby/blob/main/exercicios/03_Operators/01_Operators.rb\"\u003eOperators\u003c/a\u003e\u003c/li\u003e\n    \u003c/ul\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n    \u003csummary\u003eIterators\u003c/summary\u003e\n    \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"https://github.com/claudimf/curso_ruby/blob/main/exercicios/04_Iterators/01_Iterators.rb\"\u003eIterators\u003c/a\u003e\u003c/li\u003e\n    \u003c/ul\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n    \u003csummary\u003eBlocks, Procs e Lambda\u003c/summary\u003e\n    \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"https://github.com/claudimf/curso_ruby/blob/main/exercicios/05_Blocks_Procs_Lambda/01_Example.rb\"\u003eBlocks, Procs e Lambda\u003c/a\u003e\u003c/li\u003e\n    \u003c/ul\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n    \u003csummary\u003eLoops\u003c/summary\u003e\n    \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"https://github.com/claudimf/curso_ruby/blob/main/exercicios/06_Loops/01_Loops.rb\"\u003eLoops\u003c/a\u003e\u003c/li\u003e\n    \u003c/ul\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n    \u003csummary\u003eFunctions\u003c/summary\u003e\n    \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"https://github.com/claudimf/curso_ruby/blob/main/exercicios/07_Functions/01_Functions.rb\"\u003eFunctions\u003c/a\u003e\u003c/li\u003e\n    \u003c/ul\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n    \u003csummary\u003eErrors\u003c/summary\u003e\n    \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"https://github.com/claudimf/curso_ruby/blob/main/exercicios/08_Errors/01_Example.rb\"\u003eErrors\u003c/a\u003e\u003c/li\u003e\n    \u003c/ul\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n    \u003csummary\u003eModules\u003c/summary\u003e\n    \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"https://github.com/claudimf/curso_ruby/blob/main/exercicios/09_Modules/01_Modules.rb\"\u003eModules\u003c/a\u003e\u003c/li\u003e\n    \u003c/ul\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n    \u003csummary\u003eClasses\u003c/summary\u003e\n    \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"https://github.com/claudimf/curso_ruby/blob/main/exercicios/10_Classes/01_Classes.rb\"\u003eClasses\u003c/a\u003e\u003c/li\u003e\n    \u003c/ul\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n    \u003csummary\u003eInheritance\u003c/summary\u003e\n    \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"https://github.com/claudimf/curso_ruby/blob/main/exercicios/11_Inheritance/01_Inheritance.rb\"\u003eInheritance\u003c/a\u003e\u003c/li\u003e\n    \u003c/ul\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n    \u003csummary\u003eVariables\u003c/summary\u003e\n    \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"https://github.com/claudimf/curso_ruby/blob/main/exercicios/11_Variables/01_Variables.rb\"\u003eVariables\u003c/a\u003e\u003c/li\u003e\n    \u003c/ul\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n    \u003csummary\u003eConditionals\u003c/summary\u003e\n    \u003cli\u003e\u003ca href=\"https://github.com/claudimf/curso_ruby/blob/main/exercicios/12_Conditionals/Conditionals.rb\"\u003eConditionals\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"https://github.com/claudimf/curso_ruby/blob/main/exercicios/12_Conditionals/Comparison.rb\"\u003eComparison\u003c/a\u003e\u003c/li\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n    \u003csummary\u003eDesign-Patterns\u003c/summary\u003e\n    \u003cli\u003e\u003ca href=\"https://github.com/claudimf/curso_ruby/blob/main/exercicios/13_Design_Patterns/singleton.rb\"\u003eDesign-Patterns\u003c/a\u003e\u003c/li\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n    \u003csummary\u003eExtras\u003c/summary\u003e\n    \u003cli\u003e\u003ca href=\"https://github.com/claudimf/curso_ruby/blob/main/exercicios/Extras/Interface.md\"\u003eInterface\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"https://github.com/claudimf/curso_ruby/blob/main/exercicios/Extras/Metaprogramming.md\"\u003eMetaprogramming\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"https://github.com/claudimf/curso_ruby/blob/main/exercicios/Extras/generate_csv.rb\"\u003eGenerate CSV\u003c/a\u003e\u003c/li\u003e\n\u003c/details\u003e\n\n\n# Desafios\n\n\u003cdetails\u003e\n    \u003csummary\u003eRuby\u003c/summary\u003e\n    \u003cul\u003e\n        \u003cli\u003eDesenvolva uma calculadora do tipo \"TwoTermSolver\"(que resolve dois termos/números) utilizando módulos onde a mesma possa validar o que o usuário envia como parâmetro(se número ou não) para as operações de soma, subtração, divisão e multiplicação\u003c/li\u003e\n    \u003c/ul\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n    \u003csummary\u003eDesign-Patterns\u003c/summary\u003e\n    \u003cul\u003e\n        \u003cli\u003eUtilizando 1 padrão de projeto pelo menos, crie um caso de uso e comente o porquê de sua aplicação\u003c/li\u003e\n    \u003c/ul\u003e\n\u003c/details\u003e\n\n# Utilizando o Ruby no Docker\n\n**:warning: Atenção:**  É necessário que os desenvolvedores usem o Docker no seu ambiente de desenvolvimento.\n\n- **🛠 Modo Desenvolvimento Docker**\n    - :computer: [Linux Ubuntu LTS](https://ubuntu.com/download/desktop)\n    - 🐳 [Docker](https://docs.docker.com/engine/installation/) Deve estar instalado.\n    - 🐳 [Docker Compose](https://docs.docker.com/compose/) Deve estar instalado.\n    - **💡 Dica:** [Documentação do Docker](https://docs.docker.com/)\n\n# Instalando\n\n## 🐳 Modo Desenvolvimento com Docker\n\nApós instalar o docker e docker-compose, estando na pasta raiz do projeto, execute:\n\nPara acessar o container da aplicação, execute:\n\n```sh\ndocker-compose run --rm ruby_app bash\n```\n\nPara derrubar a instância do docker novamente, execute:\n\n```sh\ndocker-compose down\n```\n\nLimpar dangling images:\n```sh\ndocker rmi -f $(docker images -f \"dangling=true\" -q)\n```\n\n## Rodar scripts no docker\n\nAcesse o container da aplicação executando:\n\n```sh\ndocker-compose run --rm ruby_app bash\n```\n\nAcessar o irb(interactive Ruby):\n\n```sh\ndocker-compose run --rm ruby_app irb\n```\n\nDepois escolha um dos scripts para rodar, por exemplo:\n\n```sh\ndocker-compose run --rm ruby_app ruby exercicios/01_IO_class/01_output.rb\n```\n### Permissões de arquivos ###\nQuando se cria arquivos dentro de um contâiner Docker eles irão pertencer ao contâiner, para mudar a permissão rode o seguinte comando:\n\n```sh\nsudo chown -R $USER:$USER .\n```\n\n# Referências utilizadas\n\n[1° Ruby - Roadmap](https://github.com/evertonlopesc/Ruby-Roadmap)  \n[2° Padrões de Projeto em Ruby](https://refactoring.guru/pt-br/design-patterns/ruby)  \n[3° Ruby - Roadmap](https://github.com/evertonlopesc/Ruby-Roadmap)  \n[4° Rubular - a Ruby regular expression editor](https://rubular.com/)  \n[5° Ruby-Toolbox](https://www.ruby-toolbox.com/)  \n[6° RUBYGEMS common vulnerabilities and exposures](https://guides.rubygems.org/cve/)  ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclaudimf%2Fcurso_ruby","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fclaudimf%2Fcurso_ruby","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclaudimf%2Fcurso_ruby/lists"}