The beginning of our point and click glossary to ruby - we'll see how it goes. If the item below has got a link read it - otherwise put up with our definition. You have been warned!
Select from the range below:
Symbols ?, #, ::, etc. | a - d | e - l | m - r | s - z
term | parent | description |
$SAFE | Core API | Global Safety Level (from Pickaxe):
$SAFE >= 1 * The environment variables RUBYLIB and RUBYOPT are not processed, and the current directory is not added to the path. * The command-line options -e, -i, -I, -r, -s, -S, and -x are not allowed. * Can't start processes from $PATH if any directory in it is world-writable. * Can't manipulate or chroot to a directory whose name is a tainted string. * Can't glob tainted strings. * Can't eval tainted strings. * Can't load or require a file whose name is a tainted string. * Can't manipulate or query the status of a file or pipe whose name is a tainted string. * Can't execute a system command or exec a program from a tainted string. * Can't pass trap a tainted string. $SAFE >= 2 * Can't change, make, or remove directories, or use chroot. * Can't load a file from a world-writable directory. * Can't load a file from a tainted filename starting with ~. * Can't use File#chmod, File#chown, File#lstat, File.stat , File#truncate , File.umask , File#flock, IO#ioctl , IO#stat , Kernel#fork , Kernel#syscall , Kernel#trap . Process::setpgid , Process::setsid , Process::setpriority , or Process::egid= . * Can't handle signals using trap. $SAFE >= 3 * All objects are created tainted. * Can't untaint objects. $SAFE >= 4 * Can't modify a nontainted array, hash, or string. * Can't modify a global variable. * Can't access instance variables of nontainted objects. * Can't change an environment variable. * Can't close or reopen nontainted files. * Can't freeze nontainted objects. * Can't change visibility of methods (private/public/protected). * Can't make an alias in a nontainted class or module. * Can't get meta information (such as method or variable lists). * Can't define, redefine, remove, or undef a method in a nontainted class or module. * Can't modify Object. * Can't remove instance variables or constants from non-tainted objects. * Can't manipulate threads, terminate a thread other than the current, or set abort_on_exception. * Can't have thread local variables. * Can't raise an exception in a thread with a lower $SAFE value. * Can't move threads between ThreadGroups. * Can't invoke exit, exit!, or abort. * Can load only wrapped files, and can't include modules in nontainted classes and modules. * Can't convert symbol identifiers to object references. * Can't write to files or pipes. * Can't use autoload. * Can't taint objects. |
scope | Core API | scope variable names$ - global @ - instance @@ - class |
String | Core API->String | String Object. unpack method. |
strings | Core API | multiple definitions
# double quotes - allows escaping "variable is substitued #{myvar}" "newline is substituted \n" # single quotes - char escaping only ' variable is not substituted #{myvar}' 'escapes the \' single quote' # % form %q(single quote) or $Q (double quote) # delimiters may be () [] {} <> %Q("this is a string including double quotes) # % x execute - sent to OS %x[ps ax|more] # %r - regex # %w array myarray = %w[one two three] |
super | Core API | invokes the parent class hierarchy with same parameters
# called with no params - # scans hierarchy looking for mmethod executes # then runs {local stuff} def mmethod super + {local stuff} end |
times | Core API | Applies to integer and iterates from zero to integer value -1
# NOTE: integer 0 iterates zero times 3.times {|i| print i} # => 0 1 2 |
unless | Core API | Inverted form of if - anywhere you can use if you can use unless if the code reads more sensibly:
if x != y end # more sensibly written as unless x == y end |
unpack | String | Method of String takes the following parameters (incomplete list - we add as we use 'em):
m takes a base64 encoded string returns a string |
value? | Hash | Alias for has_value? |
yield | Core API | Executes the supplied code block (remember: all methods may take an optional block argument):
# simple form def thing yield end # caller obj.thing {do something} # test for block def thing if block_given? yield else puts "no block given" end end # caller obj.thing {do something} # inside an iterator def thing @myarray.each {|x| yield x} end # caller obj.thing {|y| do something to y} # block applied to each element of the array # passing arguments to yield def thing(p1,p2) if block_given? yield(p1,p2) else p1 + p2 end end # caller obj.thing(2,3) {|x,y| x*x + y*y } # => 13 obj.thing(2,3) # => 5 # internal arguments to yield @attr = 5 def thing(p1) if block_given? yield(@attr,p1) # uses instance variable else @attr + p1 end end # caller obj.thing(2) {|x,y| x*x + y*y } # => 29 obj.thing(2) # => 7 # passing variable number of arguments to yield # block made visible using & which creates Proc object def thing(p1,p2,&bb) if block_given? if bb.arity == 2 yield(p1,p2) else yield(p1) end else p1 + p2 end end # caller obj.thing(2) {|x| x*x } # => 4 obj.thing(2,3) {|x,y| x*x + y*y } # => 13 obj.thing(2,3) # => 5 |
Select from the range below:
Symbols ?, #, ::, etc. | a - d | e - l | m - r | s - z
Problems, comments, suggestions, corrections (including broken links) or something to add? Please take the time from a busy life to 'mail us' (at top of screen), the webmaster (below) or info-support at zytrax. You will have a warm inner glow for the rest of the day.
Tech Stuff
If you are happy it's OK - but your browser is giving a less than optimal experience on our site. You could, at no charge, upgrade to a W3C standards compliant browser such as Firefox
Search
Share
Page
Resources
Main Ruby site
The Book
ruby-doc.org
RubyGems
Ruby on Rails
Useful Stuff
Our Pages
Site
Copyright © 1994 - 2024 ZyTrax, Inc. All rights reserved. Legal and Privacy |
site by zytrax hosted by javapipe.com |
web-master at zytrax Page modified: January 20 2022. |