Skip to content

Instantly share code, notes, and snippets.

View prodis's full-sized avatar
💻
Writing code that generates business value

Fernando Hamasaki de Amorim prodis

💻
Writing code that generates business value
View GitHub Profile
### Keybase proof
I hereby claim:
* I am prodis on github.
* I am prodis (https://keybase.io/prodis) on keybase.
* I have a public key ASBYWVy_Ip4Ln4bB3NQeUXJeiZScRB3HwNvoJh-_bbiT3Ao
To claim this, I am signing this object:
@prodis
prodis / init_attributes.rb
Last active October 25, 2017 21:33
Module to initialize required attributes
module InitAttributes
def self.included(base)
base.send(:include, InstanceMethods)
base.extend(ClassMethods)
end
module InstanceMethods
def initialize(attributes)
init_instance_variables(self.class.accessor_attributes, attributes)
init_instance_variables(self.class.reader_attributes, attributes)
@prodis
prodis / blocks_procs_lambdas.txt
Last active August 29, 2015 14:21
Fernando's whiteboard
Difference between blocks, procs and lambdas.
Blocks are not objects and can't be manipulates as objects. With procs and lambdas is possible to
create objects that represents a block.
Procs and lambdas have the 'call' method, that executes the block code associated in their creation.
A proc behaves like a block, different of lambdas that behaves like a method. For that reason,
lambdas need to receive the exact number of parameters defined in your declaration.
@prodis
prodis / gist:5728513
Last active December 18, 2015 04:49 — forked from kincorvia/gist:4540489
# Typically in Rails to use VCR we setup the RSpec config like so:
RSpec.configure do |config|
config.extend VCR::RSpec::Macros #deprecated
end
# This gives us access to the use_vcr_cassette method:
describe Reviewed::Article do
use_vcr_cassette 'article/grill'
end
@prodis
prodis / alias_metodos_de_classe_01.rb
Created March 29, 2013 18:18
Ruby Fundamental - Alias para métodos de classe
# You didn't write this code
class ExternalClass
def self.class_number
123 # Just to exemplify
end
def some_number
456 # Just to exemplify
end
end
@prodis
prodis / hash_values_01.rb
Last active December 11, 2015 23:58
Ruby Fundamental - Uma maneira não trivial de acessar valores de hash
my_hash[:status] if my_hash
# or
my_hash[:status] unless my_hash.nil?
@prodis
prodis / .git_completation.sh
Last active December 11, 2015 21:49
Mac configuration files
#!bash
#
# bash completion support for core Git.
#
# Copyright (C) 2006,2007 Shawn O. Pearce <spearce@spearce.org>
# Conceptually based on gitcompletion (http://gitweb.hawaga.org.uk/).
# Distributed under the GNU General Public License, version 2.0.
#
# The contained completion routines provide support for completing:
#
@prodis
prodis / recursividade_hash_01.xml
Last active March 14, 2017 11:48
Ruby Fundamental - Usando recursividade para alterar valores de hash
<transaction>
<id>456</id>
<status>Aprovada</status>
<order_number>F2457</order_number>
<price>33.21</price>
<date_transaction>2012-12-13T12:35:30</date_transaction>
<date_release></date_release>
<payment>
<payment_method>Mastercard</payment_method>
<date_approval>2012-12-13T12:35:31</date_approval>
@prodis
prodis / alias_metodos_01.rb
Created October 1, 2012 00:04
Ruby Fundamental - Alias para métodos em Ruby
names = ["Akira", "Fernando", "Jose"]
names.length # => 3
names.size # => 3
@prodis
prodis / Prodis.ExitPageConfirmer.js
Created May 26, 2012 08:14
JavaScript exit page confirmer object
function ExitPageConfirmer(message) {
this.message = message;
this.needToConfirm = false;
var myself = this;
window.onbeforeunload = function() {
if (myself.needToConfirm) {
return myself.message;
}