Skip to content

Instantly share code, notes, and snippets.

View carlosantoniodasilva's full-sized avatar
👨‍💻
Hacking beautiful code...

Carlos Antonio da Silva carlosantoniodasilva

👨‍💻
Hacking beautiful code...
View GitHub Profile
@carlosantoniodasilva
carlosantoniodasilva / apparition-bug.rb
Last active February 18, 2020 00:38
Sample one-file app to try to reproduce an issue with Capybara + Apparition: https://github.com/twalpole/apparition/issues/40
# frozen_string_literal: true
=begin
Sample one-file app to try to reproduce an issue with Capybara + Apparition:
https://github.com/twalpole/apparition/issues/40
Running the file using `ruby` causes it to fail and log the following response:
log: -> RESPONSE: "" "success" {"readyState":4,"responseText":"","status":200,"statusText":"OK"}
@carlosantoniodasilva
carlosantoniodasilva / post-receive
Created February 9, 2011 01:28
Basic git post-receive hook file to deploy a Rails app.
#!/bin/bash
APP_NAME="your-app-name-goes-here"
APP_PATH=/home/deploy/${APP_NAME}
# Production environment
export RAILS_ENV="production"
# This loads RVM into a shell session. Uncomment if you're using RVM system wide.
# [[ -s "/usr/local/lib/rvm" ]] && . "/usr/local/lib/rvm"
require 'benchmark/ips'
ARRAY = [1,2,3,1,'2',4,'5',6,7,8,9,'10']
Benchmark.ips do |x|
x.report("while") {
hash = {}
index = 0
length = ARRAY.length
@carlosantoniodasilva
carlosantoniodasilva / worker_example_group.rb
Created February 15, 2012 22:59
RSpec - Register Example Group
module Support
module WorkerExampleGroup
include RSpec::Rails::RailsExampleGroup
def self.included(base)
base.metadata[:type] = :worker
end
end
end
@carlosantoniodasilva
carlosantoniodasilva / dup.rb
Created May 13, 2012 20:58
Ruby dup/clone behavior
class A
def initialize_dup(other)
puts 'init dup'
super
end
def initialize_clone(other)
puts 'init clone'
super
end
#!/usr/bin/env ruby
require 'socket'
test_file = ARGV[0]
socket = UNIXSocket.new('testing.sock')
socket.write(test_file)
socket.close_write
@carlosantoniodasilva
carlosantoniodasilva / ar-override-define_attribute_methods.rb
Last active December 13, 2015 17:59
Test AR monkey patch of define_attribute_methods.
require 'active_record'
require 'active_record/base'
module ActiveRecord
module CVE123456
def define_attribute_methods
# ....
raise "OMG Monkey Patch!"
end
end
@carlosantoniodasilva
carlosantoniodasilva / simple_form_hour_input.rb
Created January 25, 2013 02:05
SimpleForm hour select input example.
# app/inputs/hour_input.rb
class HourInput < SimpleForm::Inputs::Base
def input
@builder.select(attribute_name, hour_options, { :selected => selected_value }, { :class => "input-medium" })
end
private
# The "Selecione..." string could also be translated with something like: I18n.t("helpers.select.prompt')
def hour_options
@carlosantoniodasilva
carlosantoniodasilva / bench_hash_key_vs_fetch.rb
Created January 9, 2013 15:56
Benchmarck Hash#[] vs Hash#fetch
require 'benchmark'
TIMES = 100000
HASH = { as: :fuu }
Benchmark.bm(25) do |x|
x.report('[:as] (existing)') do
TIMES.times do
HASH[:as] || :default
end
@carlosantoniodasilva
carlosantoniodasilva / infinite_comparable.rb
Last active December 10, 2015 14:38
Infinite Comparable attempt to refactor.
define_method '<=>_with_infinity' do |other|
if other.class == self.class
public_send('<=>_without_infinity', other)
else
infinite = try(:infinite?)
other_infinite = other.try(:infinite?)
# inf <=> inf
if infinite && other_infinite
infinite <=> other_infinite