Skip to content

Instantly share code, notes, and snippets.

View jadercorrea's full-sized avatar

Jader Correa jadercorrea

View GitHub Profile
@jadercorrea
jadercorrea / postgres_initializer.rb
Created April 18, 2018 17:21
Add postgres initializer to bypass pg_sequence system catalog
# frozen_string_literal: true
require 'active_record/connection_adapters/postgresql_adapter'
module ActiveRecord
module ConnectionAdapters
class PostgreSQLAdapter
# Resets the sequence of a table's primary key to the maximum value.
def reset_pk_sequence!(table, pk = nil, sequence = nil) #:nodoc:
return if pk || sequence
@jadercorrea
jadercorrea / postgres config.sh
Created May 9, 2016 13:38
Postgres install commands for Elementary OS
Postgres
$ sudo sh -c "echo 'deb http://apt.postgresql.org/pub/repos/apt/ precise-pgdg main' > /etc/apt/sources.list.d/pgdg.list"
$ wget --quiet -O - http://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc | sudo apt-key add -
$ sudo apt-get update
$ sudo apt-get install postgresql-common
$ sudo apt-get install postgresql-9.3 libpq-dev
$ sudo -u postgres createuser username -s
@jadercorrea
jadercorrea / medium_length_worker_spec.rb
Created May 6, 2016 17:38
Modelo de teste de worker - singleton
require 'spec_helper'
describe MediumLengthWorker do
subject { described_class.new }
describe '#perform' do
it 'returns the length of the medium list' do
expect { described_class.perform }.to output "1"
described_class.perform
end
@jadercorrea
jadercorrea / products_controller.rb
Created May 6, 2016 01:45
Exemplo de successful response sem content
class ProductsController < ApplicationController
product = Product.new(product_params.merge(created_by: username))
if product.save
render nothing: true, status: 204, location: product
end
end
@jadercorrea
jadercorrea / metaprogramming_example.rb
Created May 4, 2016 14:05
Pequenos exemplos de metaprogramaçao em ruby
# Aqui, criamos dois methodos chamados header_bg e logo, testando se é valido ou carregando default
%w(header_bg logo).each do |attachment|
define_method attachment do |version|
object.send(attachment).try(:send, version) || DEFAULT_IMAGE
end
end
# mesmo caso aqui, criando contadores de downloads conforme o tipo
[:brief, :materials].each do |type|
define_method "#{ type }_downloads_count" do
@jadercorrea
jadercorrea / spec_helper.rb
Created May 4, 2016 12:44
Database cleaner config
RSpec.configure do |config|
config.before(:suite) do
DatabaseCleaner.strategy = :transaction
DatabaseCleaner.clean_with(:truncation)
end
...
config.before(:each) do
DatabaseCleaner.start
end

A navegacao pelos diretorios nao requer rotas. Podes ter um action no controler, carregando os diretorios e arquivos a partir de um diretorio de referencia passado pelo params. Essa carga pode ser feita em um helper, ja que vai ter que ser acessado pelas views pra montar links.

<% if has_collection?(dir) %>
  <%= render partial: 'navigation', locals: { targets: @collection, dir: dir, files: true } %>
<% elsif has_directories?(params[:teu_path], dir) %>
  <%= render partial: 'navigation', locals: { targets: @directories, dir: dir, files: false } %>
<% end %>
=Live Testing=
binding.pry + current_url
=Navigating=
visit('/projects')
visit(post_comments_path(post))
=Clicking links and buttons=
click_link('id-of-link')
click_link('Link Text')