- I can show where I am in the directories.
- List the files in a particular directory.
- Make a directory.
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 fib n | |
a, b = 1, 2 | |
sum = 0 | |
while a < n | |
sum += a if a.even? | |
a, b = b, a + b | |
end | |
sum | |
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
require 'benchmark' | |
hash = {} | |
Benchmark.measure do | |
1_000_000.times do | |
hash = {} | |
end | |
end.real | |
#=> 0.245904 |
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
str = "aaa [first_name] bar [first_name] [last_name]" | |
last = str.scan(/\[last_name\]/).size | |
first = str.scan(/\[first_name\]/).size | |
remaining = str.gsub(/\[(first_name|last_name)\]/, '').size | |
first * 15 + last * 10 + remaining |
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
class MyClass | |
attr_accessor :user, :type | |
def initialize user: 'smith', type: 'pleb' | |
@user = user | |
@type = type | |
end | |
end | |
both = MyClass.new user: 'blah', type: 'pleb' | |
just_one = MyClass.new type: 'pleb' |
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
# An octothorp (#) starts a single-line comment. | |
=begin | |
Starting with a =being and ending with a =end | |
makes it a multi-line comment. | |
=end | |
## | |
# 1. Variables and flow control. | |
# |
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
# Determines how many cpus the virtual machine should be given. Uses half of | |
# what's available on the host with a default of 4. | |
def numvcpus | |
begin | |
os_cpu_cores / 2 | |
rescue | |
4 | |
end | |
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
require 'fiddle' | |
class Object | |
def cast(as) | |
# Make sure iv table of the new class gets initialized. | |
as.new.send(:instance_variable_set, :@nil, nil) | |
rbasic = Fiddle::Pointer.new(__id__ << 1) | |
as_klass = Fiddle::Pointer.new(as.__id__ << 1) | |
# Ruby guarantees sizeof(VALUE) == sizeof(void *) |
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
# Identity functor that does not give any additional structure | |
Identity = Struct.new(:value) do | |
def fmap(func = nil, &blk) | |
f = func || blk; | |
Identity.new(f.call(self.value)) | |
end | |
end | |
# Const Functor that preserves its content | |
Const = Struct.new(:value) do |
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
~ ruby json_benchmark.rb | |
String to JSON | |
Warming up -------------------------------------- | |
Oj.dump 24.918k i/100ms | |
Yajl.dump 9.461k i/100ms | |
JSON.dump 24.797k i/100ms | |
MessagePack.dump 44.355k i/100ms | |
Calculating ------------------------------------- | |
Oj.dump 267.683k (± 3.4%) i/s - 1.346M in 5.032971s | |
Yajl.dump 98.929k (± 2.8%) i/s - 501.433k in 5.072850s |