Skip to content

JhonataFerreira95/documention_Ruby

Repository files navigation

Documentação Ruby

Dependências

Ruby version 3.3.0

Gems

Faker e Roo foram utlizadas.

Índice

  1. Introdução
  2. Lógica com Ruby
  3. Arquivos, Módulos e Gems
  4. Programação Orientada a Objetos (POO)
  5. Ruby Avançado
  6. Ruby on Rails

Estrutura do projeto

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

# 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

def saudacao(nome)
  "Olá, #{nome}!"
end

puts saudacao("Ana")

Arquivos, Módulos e Gems

Trabalhando com Arquivos

# 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.

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.

# 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

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

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

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

class Pessoa
  attr_accessor :nome
end

pessoa = Pessoa.new
pessoa.nome = "Ana"
puts pessoa.nome

Blocks, Procs e Lambdas

# 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

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

class Post < ApplicationRecord
  validates :titulo, presence: true
end

Controlador

class PostsController < ApplicationController
  def index
    @posts = Post.all
  end
end

View

<% @posts.each do |post| %>
  <h1><%= post.titulo %></h1>
<% 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.

About

Documentando o Ruby

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Languages