5 More Ruby Tips
Yinquan Teo
twitter: @yinquanteo
github: github.com/yinquanteo
url: yinquanteo.com
1. HTTP Server
ruby -run -e httpd . -p 8080
2. inline Heredoc
UGLY :(
module Adding
class SomeSpace
def ugly_text
<<HERE
Such ugly indentation
isn't it?
HERE
end
end
end
2. INLINE HEREDOC
pretty :)
module Adding
class SomeSpace
def beautiful_text
<<-HERE.strip_heredoc
Beautifully indented
isn't it?
HERE
end
end
end
3. Ruby Scripting
printf "super\nsize\nme" | ruby -ne 'puts $_.upcase'
4. URI Query PARAMS
hash to query params
require 'active_support/core_ext'
params = {
scope: "read, write & profit",
url: "http://referralcandy.com"
}
params.to_query
# => "scope=read%2C+write+%26+profit&url=http%3A%2F%2Freferralcandy.com"
4. URI QUERY PARAMS
query params to hash
require 'rack'
query = "url=http%3A%2F%2Freferralcandy.com&scope=read%26profit"
Rack::Utils.parse_nested_query(query)
# => {"url"=>"http://referralcandy.com", "scope"=>"read&profit"}
5. rescuing from exception
BAD
loop do begin
booom
rescue Exception => e
end
end
RESCUE HIERARCHY
Exception
NoMemoryError
ScriptError
LoadError
NotImplementedError
SyntaxError
SignalException
Interrupt
StandardError
ArgumentError
IOError
EOFError
IndexError
LocalJumpError
NameError
NoMethodError
RangeError
FloatDomainError
RegexpError
RuntimeError
Timeout::Error
SecurityError
SocketError
SystemCallError
SystemStackError
ThreadError
TypeError
ZeroDivisionError
SystemExit
fatal
Good
begin
booom
rescue => e
end
QuESTIONS?
5 More Ruby Tips
By yinquanteo
5 More Ruby Tips
- 1,668