https://github.com/jhonataferreira95/documention_ruby
Documentando o Ruby/Rails
https://github.com/jhonataferreira95/documention_ruby
rails ruby ruby-gem ruby-lib ruby-on-rails
Last synced: 5 months ago
JSON representation
Documentando o Ruby/Rails
- Host: GitHub
- URL: https://github.com/jhonataferreira95/documention_ruby
- Owner: JhonataFerreira95
- Created: 2024-11-24T16:46:55.000Z (about 1 year ago)
- Default Branch: develop
- Last Pushed: 2025-03-02T19:22:17.000Z (11 months ago)
- Last Synced: 2025-03-02T20:27:51.084Z (11 months ago)
- Topics: rails, ruby, ruby-gem, ruby-lib, ruby-on-rails
- Language: Ruby
- Homepage: https://www.ruby-lang.org/pt/documentation/
- Size: 31.3 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Documentação Ruby
## Dependências
### Ruby version 3.3.0
### Gems
#### Faker e Roo foram utlizadas.
## Índice
1. [Introdução](#introdução)
2. [Lógica com Ruby](#lógica-com-ruby)
3. [Arquivos, Módulos e Gems](#arquivos-módulos-e-gems)
4. [Programação Orientada a Objetos (POO)](#programação-orientada-a-objetos-poo)
5. [Ruby Avançado](#ruby-avançado)
6. [Ruby on Rails](#ruby-on-rails)
---
## Estrutura do projeto
```bash
DOCUMENTAÇÃO RUBY/
├── Banco de dados SQL/
│ └── SQL/
├── Ruby arquivos, módulos e gems/
│ └── Gems/
│ └──Manipulação de arquivos/
│ └── Módulos/
│ └──projetos/
├── Ruby avançado/
│ └──Estrutura de dados/
│ └──Recursividade/
│ └──Sorting/
├── Ruby fundamentos/
│ ├── Ruby/
│ └── README.md
├── Ruby poo/
└── README.md
```
## Introdução
Ruby é uma linguagem de programação dinâmica, open-source, focada na simplicidade e produtividade. Seu criador, Yukihiro Matsumoto, a projetou com o objetivo de tornar a programação mais humana e intuitiva.
- **Principais características:**
- Sintaxe elegante e legível.
- Suporte a múltiplos paradigmas (orientado a objetos, funcional).
- Forte comunidade e ecossistema.
---
## Lógica com Ruby
Ruby oferece uma abordagem simples e intuitiva para lógica de programação. A seguir, abordamos os principais conceitos:
### Estruturas de Controle
```ruby
# Condicional
if x > 10
puts "Maior que 10"
elsif x == 10
puts "Igual a 10"
else
puts "Menor que 10"
end
# Loop
5.times do |i|
puts "Número: #{i}"
end
```
### Métodos
```ruby
def saudacao(nome)
"Olá, #{nome}!"
end
puts saudacao("Ana")
```
---
## Arquivos, Módulos e Gems
### Trabalhando com Arquivos
```ruby
# Leitura
File.open("exemplo.txt", "r") do |arquivo|
puts arquivo.read
end
# Escrita
File.open("exemplo.txt", "w") do |arquivo|
arquivo.puts "Nova linha no arquivo"
end
```
### Módulos
Os módulos são usados para organizar métodos e classes.
```ruby
module Saudacao
def self.ola(nome)
"Olá, #{nome}!"
end
end
puts Saudacao.ola("Mundo")
```
### Gems
As gems são bibliotecas reutilizáveis. Use o Bundler para gerenciar dependências.
```bash
# Instalar uma gem
gem install rails
# Adicionar ao Gemfile
bundle install
```
---
## Programação Orientada a Objetos (POO)
Ruby é completamente orientado a objetos, com suporte nativo a classes, herança e polimorfismo.
### Classes e Objetos
```ruby
class Pessoa
attr_accessor :nome, :idade
def initialize(nome, idade)
@nome = nome
@idade = idade
end
def saudacao
"Olá, meu nome é #{@nome} e tenho #{@idade} anos."
end
end
ana = Pessoa.new("Ana", 19)
puts ana.saudacao
```
### Herança
```ruby
class Animal
def falar
"Som genérico"
end
end
class Cachorro < Animal
def falar
"Au au!"
end
end
cachorro = Cachorro.new
puts cachorro.falar
```
---
## Ruby Avançado
### Estrutura de dados
```ruby
def factorial(n)
# Caso base: fatorial de 0 ou 1 é 1
return 1 if n <= 1
# Chamada recursiva: n * fatorial de (n-1)
n * factorial(n - 1)
end
puts factorial(5) # Saída: 120 (5 * 4 * 3 * 2 * 1)
```
### Metaprogramação
```ruby
class Pessoa
attr_accessor :nome
end
pessoa = Pessoa.new
pessoa.nome = "Ana"
puts pessoa.nome
```
### Blocks, Procs e Lambdas
```ruby
# Block
3.times { |i| puts "Número: #{i}" }
# Proc
imprimir = Proc.new { |x| puts x }
imprimir.call("Olá, mundo!")
# Lambda
saudacao = ->(nome) { "Olá, #{nome}" }
puts saudacao.call("Ana")
```
---
## Ruby on Rails
Rails é um framework web popular escrito em Ruby, que segue o padrão MVC (Model-View-Controller).
### Criação de um Projeto
```bash
rails new meu_projeto
```
### Estrutura do Projeto
- **app/models**: Contém os modelos.
- **app/views**: Contém as views.
- **app/controllers**: Contém os controladores.
### Exemplos Básicos
#### Modelo
```ruby
class Post < ApplicationRecord
validates :titulo, presence: true
end
```
#### Controlador
```ruby
class PostsController < ApplicationController
def index
@posts = Post.all
end
end
```
#### View
```erb
<% @posts.each do |post| %>
<%= post.titulo %>
<% end %>
```
---
### Conclusão
Ruby é uma linguagem poderosa e expressiva que, combinada com o Rails, permite o desenvolvimento de aplicações robustas e escaláveis. Com sua comunidade ativa, o aprendizado é facilitado, e as possibilidades são vastas.