Skip to content

Instantly share code, notes, and snippets.

@douglascamata
douglascamata / death_of_ifs.rb
Last active December 16, 2015 16:48
Another solution to this post (http://jumpstartlab.com/news/archives/2013/04/23/the-death-of-ifs) with objects that can do real stuff, like Twitter (or any other social network, i.e.) API calls.
def start
command = ""
command_processor = CommandProcessor.new
command_processor.add_command('follow', Proc.new { puts 'do some stuff' })
while command != "q"
printf "enter command: "
command = gets.chomp
command_processor.process(command)
end
end
def start
command = ""
command_processor = CommandProcessor.new
command_processor.add_command('follow', 'following')
while command != "q"
printf "enter command: "
command = gets.chomp
command_processor.process(command)
end
end
@douglascamata
douglascamata / death_of_ifs.rb
Created April 26, 2013 06:02
Another solution to this post (http://jumpstartlab.com/news/archives/2013/04/23/the-death-of-ifs) problem: use Ruby Not using objects.
def start
command = ""
commands = default_commands
add_command(commands, "follow", "following")
while command != "q"
printf "enter command: "
command = gets.chomp
process(command, commands)
end
end
def calculate
bet_scores_per_type = {
winner_fighter_id: { @result[:winner_fighter_id] => 10 },
fight_victory_type_id: { @result[:fight_victory_type_id] => 30},
round: { @result[:details][:round] => 50}
}
user_bets_per_type = {
winner_fighter_id: @betting[:bet_fighter_id],
fight_victory_type_id: @betting[:fight_victory_type_id]
def get(self):
key = self._load_request_as_json().get('key')
is_metadata_request = self._load_request_as_json().get('metadata')
response = self.sam.get(key=key).resource()
if hasattr(response.data, 'metadata_key'):
if is_metadata_request:
response = cyclone.web.escape.json_encode({'metadata_key':response.data.metadata_key})
elif response.data.metadata_key:
response = cyclone.web.escape.json_encode({'done':True})
@defer.inlineCallbacks
@cyclone.web.asynchronous
def put(self):
self.set_header('Content-Type', 'application/json')
key = str(uuid4())
today = datetime.today().strftime(u'%d/%m/%y %H:%M')
user = self._get_current_user()[0]
value = self._load_request_as_json().get('value')
if not value:
log.msg("PUT failed!")
@douglascamata
douglascamata / gist:3195859
Created July 29, 2012 02:54
Monkey patch to fix relative url issues with assets in Rails 3.1
module Sass
module Rails
module Helpers
protected
def public_path(asset, kind)
resolver = options[:custom][:resolver]
asset_paths = resolver.context.asset_paths
path = resolver.public_path(asset, kind.pluralize)
if !asset_paths.send(:has_request?) && ENV['RAILS_RELATIVE_URL_ROOT']
path = ENV['RAILS_RELATIVE_URL_ROOT'] + path
@douglascamata
douglascamata / gist:2878100
Created June 5, 2012 21:23
Sete Atitudes para Hackear a Indústria de Software
Sete Atitudes para Hackear a Indústria de Software
By Klaus Wuestefeld
1) Torne-se excelente.
Seja realmente bom em alguma coisa. Não fique só choramingando ou
querendo progredir às custas dos outros. Não pense q pq vc sentou 4
anos numa faculdade ouvindo um professor falar sobre software q vc
sabe alguma coisa. Jogador de futebol não aprende a jogar bola tendo
matriz = []
for i in range(1,n):
coluna = []
for j in range(1,n):
coluna.append(1)
matriz.append(coluna)
require 'llvm/core'
require 'llvm/execution_engine'
class Gerador
def initialize(syntax_tree)
@tree = syntax_tree
end
def compile