Skip to content

Instantly share code, notes, and snippets.

View gbpereira's full-sized avatar

Guilherme Pereira gbpereira

  • São Paulo - Brazil
View GitHub Profile
class Name
attr_accessor :given_name, :family_name
end
class Address < Name; end
a = Address.new
puts a.respond_to?(:given_name)
#=> true
# módulo
module SomeModule
# pode ser chamado de qualquer lugar
def SomeModule.handle
puts 'some method'
end
# chamado pelas classes que incluem o módulo
def handle
puts 'other method'
class Access
def initialize(a, b, c)
@a = a
@b = b
@c = c
end
# acessível de qualquer lugar
def a
@a
# métodos
def some_method()
end
# convenção para métodos booleanos
def empty?()
end
# convenção para métodos destrutivos
def sort!()
# tipagem forte
a = 2
b = '4'
a * b
#=> TypeError: String can't be coerced into Fixnum
# tipagem dinamica
idade = 25
idade = '25'
Verbo Padrão URL Ação
GET /model(.:format) model#index
GET /model/new(.:format) model#new
POST /model(.:format) model#create
GET /model/:id/edit(.:format) model#edit
PATCH /model/:id(.:format) model#update
PUT /model/:id(.:format) model#update
default: &default
adapter: postgresql
encoding: utf8
collate: pt_BR.UTF-8
ctype: pt_BR.UTF-8
host: host
username: username
timeout: 5000
development:
# models de exemplo
rails g model product name:string description:text price:decimal
rails g model location lease_at:date return_at:date status:boolean
# application.rb
config.autoload_paths += %W["#{config.root}/app/validators/"]
# date_validator.rb
class DateValidator < ActiveModel::EachValidator
def validate_each(record, attribute, value)
class DateValidator < ActiveModel::EachValidator
def validate_each(record, attribute, value)
valid = value.to_date rescue false
record.errors[attribute] << (
options[:message] || "invalid date"
) unless valid
end
end
# instalando postgres e dependências
sudo apt-get install postgresql postgresql-contrib postgresql-server-dev-9.5
# acessando o postgres
sudo su - postgres
psql
# alterando o encoding que vem por padrão
update pg_database set encoding = 6, datcollate = 'pt_BR.UTF-8', datctype = 'pt_BR.UTF-8' where datname = 'postgres';
update pg_database set encoding = 6, datcollate = 'pt_BR.UTF-8', datctype = 'pt_BR.UTF-8' where datname = 'template0';