This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Allocation = Struct.new(:project, :person, :start, :finish) do | |
include Comparable | |
def mergable_with?(other) | |
if start > other.start | |
other.mergable_with?(self) | |
else | |
same_assignment?(other) && | |
finish >= other.start - 1 | |
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
gem 'minitest' | |
require 'minitest/autorun' | |
require './beer_song' | |
class BeerSongTest < Minitest::Test | |
V8 = | |
"8 bottles of beer on the wall, 8 bottles of beer.\n" + | |
"Take one down and pass it around, 7 bottles of beer on the wall.\n" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def new | |
allocate.tap { |obj| obj.initialize } | |
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env ruby | |
require 'rake/clean' | |
require 'rake/testtask' | |
task :default => [:spec, :test] | |
task :spec do | |
sh "rspec ." | |
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def foo(a=:default, b) | |
puts "a=#{a}, b=#{b}" | |
end | |
foo(:value) | |
foo(:x, :y) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def project(name, &block) | |
Project.new(name, &block) | |
end | |
class Project | |
def initialize(name, &block) | |
@name = name | |
@context = eval("self", block.binding) | |
instance_eval(&block) if block_given? |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$ rspec xx_spec.rb | |
.... | |
Finished in 0.00287 seconds | |
4 examples, 0 failures |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def test_spy | |
d = flexmock(f: :ok) | |
assert_equal :ok, d.f("Woof",2) | |
assert_spy_called d, :f, String, Integer | |
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
SOURCE: defined?(a) | |
RESULT: | |
[:program, [:stmts_add, [:stmts_new], [:defined, [:@rparen, ")", [1, 10]]]]] | |
SOURCE: "my name is #{name}" | |
RESULT: | |
[:program, | |
[:stmts_add, | |
[:stmts_new], | |
[:string_literal, |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# -*- coding: utf-8 -*- | |
Sqrt = ->(n) { | |
guess = n / 2.0 | |
loop do | |
if (guess**2 - n) < 0.0001 | |
return guess | |
end | |
guess = (guess + n/guess) / 2.0 | |
end |
NewerOlder