Skip to content

Instantly share code, notes, and snippets.

@devton
devton / spec_helper.rb
Created March 21, 2011 02:58
Clear mongodb collection in end of the each
config.after(:each) do
puts "cleaning mongodb...."
Mongoid.database.collections.each do |collection|
unless collection.name =~ /^system\./
collection.remove
end
end
puts "finished cleaning mongodb."
end
@devton
devton / resqued_devise_mailer.rb
Created September 6, 2011 13:15
Devise rescued mail fixed some things
class ResquedDeviseMailer < Devise::Mailer
include Resque::Mailer
private
# Configure default email options
def devise_mail(record, action)
record = hack_record(record)
@scope_name = Devise::Mapping.find_scope!(record)
@devton
devton / gist:2430160
Created April 20, 2012 16:34
Mailer interceptor
#config/initializers/interceptor.rb
require "#{Rails.root}/lib/development_mail_interceptor"
ActionMailer::Base.register_interceptor(DevelopmentMailInterceptor) if Rails.env.development?
#lib/development_mail_interceptor.rb
class DevelopmentMailInterceptor
def self.delivering_email(message)
message.subject = "[#{message.to}] #{message.subject}"
message.to = `git config --global user.email`.strip
end
@devton
devton / 0_reuse_code.js
Created May 22, 2014 14:45
Here are some things you can do with Gists in GistBox.
// Use Gists to store code you would like to remember later on
console.log(window); // log the "window" object to the console
@devton
devton / perf.rake
Created February 8, 2015 04:39
Basica benchmark for MetaInspector and Direct nokogiri
# user system total real
# MetaInspector: 1.150000 0.040000 1.190000 (1.241086)
# Nokogiri #xpath: 0.010000 0.000000 0.010000 (0.011218)
# Nokogiri #css 0.010000 0.000000 0.010000 (0.010822)
# Nokogiri #search 0.010000 0.000000 0.010000 (0.010091)
require 'open-uri'
namespace :benchmarks do
desc 'MetaInspector vs Nokogiri'
@devton
devton / web_spec.rb
Created February 8, 2015 06:39
app/services/crawler/web_spec.rb
require "rails_helper"
RSpec.describe Crawler::Web, :type => :service do
describe ".collect_links_from" do
let(:collected_links) {
[
'http://www.example.com/page_link_1.html',
'http://www.example.com/page_link_2.html',
'http://www.example.com/page_link_3.html',
'http://www.example.com/page_link_4.html',
@devton
devton / web.rb
Last active August 29, 2015 14:15
app/services/crawler/web.rb
module Crawler
class Web
attr_reader :valid_urls
# Metodo de classe que já coleta e retorna um array unico
# com todos os links percorridos dentro do site
def self.collect_links_from url
_ = new url
_.collect_links!
_.valid_urls.uniq
@devton
devton / negative_model_migration.rb
Created February 9, 2015 00:14
Arquivo de migração gerado pelo: rails g model NegativeExpression
# Arquivo de migração gerado pelo: rails g model NegativeExpression
class CreateNegativeExpressions < ActiveRecord::Migration
def change
create_table :negative_expressions do |t|
t.text :domains, array: true, null: false
t.text :expressions, array: true, null: false
t.timestamps null: false
end
@devton
devton / negative_expression_spec.rb
Created February 9, 2015 01:30
NegativeExpression spec
require 'rails_helper'
RSpec.describe NegativeExpression, :type => :model do
describe ".expressions_for" do
subject { NegativeExpression.expressions_for 'http://example.com' }
context "should get expressions" do
context "when have a domain expression" do
before do
@devton
devton / negative_expression.rb
Created February 9, 2015 01:48
NegativeExpression model
class NegativeExpression < ActiveRecord::Base
# Scope que verifica se existe alguma
# expressão negativa para o dominio (host) informado
scope :expressions_for, -> (host) {
where("lower(?) ~* ANY(domains)", host)
}
# Scope que faz um regex match no campo expressions
# verificando se o path informado retornando
# todas as expressões que passou no match