- 浏览: 261385 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
aliang032:
php socket 编程建使用http://www.work ...
PHP Socket 编程 -
大秦布衣:
不错的教程 简明额要 不过要是完善百度的照片就更好了
Git入门教程 -
bravelinw:
这个问题网上有很多个版本,有的还弄得很深邃,还是lz的看到了问 ...
(leopard)MySQL #2002 - 服务器没有响应 -
sunnylocus:
很有感触,我也是刚刚做项目经理,沟通能力是做PM的基本要求,希 ...
面试了一位项目经理后我的感想 -
artoy:
看来,对技术人员也有与对销售人员相同的要求,
面试了一位项目经理后我的感想
General Syntax Rules
- Comments start with a pound/sharp (#) character and go to EOL.
- Ruby programs are sequence of expressions.
- Each expression is delimited by semicolons(;) or newlines unless obviously incomplete (e.g. trailing '+').
- Backslashes at the end of line does not terminate expression.
Reserved words
alias and BEGIN begin break case class def defined do else elsif END end ensure false for if in module next nil not or redo rescue retry return self super then true undef unless until when while yield
Types
Basic types are numbers, strings, ranges, regexen, symbols, arrays, and hashes. Also included are files because they are used so often.
Numbers
123 1_234 123.45 1.2e-3 0xffff (hex) 0b01011 (binary) 0377 (octal) ?a ASCII character ?\C-a Control-a ?\M-a Meta-a ?\M-\C-a Meta-Control-a
Strings
In all of the %() cases below, you may use any matching characters or any single character for delimiters. %[], %!!, %@@, etc.
'no interpolation' "#{interpolation}, and backslashes\n" %q(no interpolation) %Q(interpolation and backslashes) %(interpolation and backslashes) `echo command interpretation with interpolation and backslashes` %x(echo command interpretation with interpolation and backslashes)
Backslashes
\t (tab), \n (newline), \r (carriage return), \f (form feed), \b (backspace), \a (bell), \e (escape), \s (whitespace), \nnn (octal), \xnn (hexadecimal), \cx (control x), \C-x (control x), \M-x (meta x), \M-\C-x (meta control x)
Here Docs
<<identifier - interpolated, goes until identifier <<"identifier" - same thing <<'identifier' - no interpolation <<-identifier - you can indent the identifier by using "-" in front
Symbols
Internalized String. Guaranteed to be unique and quickly comparable. Ideal for hash keys. Symbols may not contain \0 or be empty.
:symbol => :symbol :'#{"without"} interpolation' => :"#{"without"} interpolation" :"#{"with"} interpolation" => :"with interpolation" %s(#{"without"} interpolation) => :"#{"without"} interpolation"
Ranges
1..10 1...10 'a'..'z' 'a'...'z' (1..10) === 5 => true (1..10) === 10 => true (1...10) === 10 => false (1..10) === 15 => false while gets # prints lines starting at 'start' and ending at 'end' print if /start/../end/ end
class comparable # ... def <=>(rhs) # ... end def succ # ... end end range = RangeThingy.new(lower_bound)..RangeThingy.new(upper_bound)
Regexen
/normal regex/iomx[neus] %r|alternate form|
options:
/i case insensitive /o only interpolate #{} blocks once /m multiline mode - '.' will match newline /x extended mode - whitespace is ignored /[neus] encoding: none, EUC, UTF-8, SJIS, respectively
regex characters:
. any character except newline [ ] any single character of set [^ ] any single character NOT of set * 0 or more previous regular expression *? 0 or more previous regular expression (non-greedy) + 1 or more previous regular expression +? 1 or more previous regular expression (non-greedy) ? 0 or 1 previous regular expression | alternation ( ) grouping regular expressions ^ beginning of a line or string $ end of a line or string {m,n} at least m but most n previous regular expression {m,n}? at least m but most n previous regular expression (non-greedy) \1-9 nth previous captured group \A beginning of a string \b backspace(0x08)(inside[]only) \b word boundary(outside[]only) \B non-word boundary \d digit, same as[0-9] \D non-digit \S non-whitespace character \s whitespace character[ \t\n\r\f] \W non-word character \w word character[0-9A-Za-z_] \z end of a string \Z end of a string, or before newline at the end (?#) comment (?:) grouping without backreferences (?=) zero-width positive look-ahead assertion (?!) zero-width negative look-ahead assertion (?>) nested anchored sub-regexp. stops backtracking. (?imx-imx) turns on/off imx options for rest of regexp. (?imx-imx:re) turns on/off imx options, localized in group.
special character classes:
[:alnum:] alpha-numeric characters [:alpha:] alphabetic characters [:blank:] whitespace - does not include tabs, carriage returns, etc [:cntrl:] control characters [:digit:] decimal digits [:graph:] graph characters [:lower:] lower case characters [:print:] printable characters [:punct:] punctuation characters [:space:] whitespace, including tabs, carriage returns, etc [:upper:] upper case characters [:xdigit:] hexadecimal digits
Arrays
[1, 2, 3] %w(foo bar baz) %W(foo bar baz #{var})
Indexes may be negative, and they index backwards (eg -1 is last element).
Hashes
{1=>2, 2=>4, 3=>6} { expr => expr...}
Files
Common methods include:
- File.join(p1, p2, ... pN) => "p1/p2/.../pN" platform independent paths
- File.new(path, modestring="r") => file
- File.new(path, modenum [, permnum]) => file
- File.open(fileName, aModeString="r") {|file| block} -> nil
- File.open(fileName [, aModeNum [, aPermNum ]]) {|file| block} -> nil
- IO.foreach(path, sepstring=$/) {|line| block}
- IO.readlines(path) => array
Mode Strings
Variables
$global_variable @@class_variable @instance_variable [OtherClass::]CONSTANT local_variable
Pseudo variables
self the receiver of the current method nil the sole instance of the Class NilClass(represents false) true the sole instance of the Class TrueClass(typical true value) false the sole instance of the Class FalseClass(represents false) __FILE__ the current source file name. __LINE__ the current line number in the source file.
Pre-defined variables
$! The exception information message set by 'raise'. $@ Array of backtrace of the last exception thrown. $& The string matched by the last successful match. $` The string to the left of the last successful match. $' The string to the right of the last successful match. $+ The highest group matched by the last successful match. $1 The Nth group of the last successful match. May be > 1. $~ The information about the last match in the current scope. $= The flag for case insensitive, nil by default. $/ The input record separator, newline by default. $\ The output record separator for the print and IO#write. Default is nil. $, The output field separator for the print and Array#join. $; The default separator for String#split. $. The current input line number of the last file that was read. $< The virtual concatenation file of the files given on command line (or from $stdin if no files were given). $> The default output for print, printf. $stdout by default. $_ The last input line of string by gets or readline. $0 Contains the name of the script being executed. May be assignable. $* Command line arguments given for the script sans args. $$ The process number of the Ruby running this script. $? The status of the last executed child process. $: Load path for scripts and binary modules by load or require. $" The array contains the module names loaded by require. $DEBUG The status of the -d switch. $FILENAME Current input file from $<. Same as $<.filename. $LOAD_PATH The alias to the $:. $stderr The current standard error output. $stdin The current standard input. $stdout The current standard output. $VERBOSE The verbose flag, which is set by the -v switch. $-0 The alias to $/. $-a True if option -a is set. Read-only variable. $-d The alias to $DEBUG. $-F The alias to $;. $-i In in-place-edit mode, this variable holds the extension, otherwise nil. $-I The alias to $:. $-l True if option -l is set. Read-only variable. $-p True if option -p is set. Read-only variable. $-v The alias to $VERBOSE. $-w True if option -w is set.
Pre-defined global constants
TRUE The typical true value. FALSE The false itself. NIL The nil itself. STDIN The standard input. The default value for $stdin. STDOUT The standard output. The default value for $stdout. STDERR The standard error output. The default value for $stderr. ENV The hash contains current environment variables. ARGF The alias to the $<. ARGV The alias to the $*. DATA The file object of the script, pointing just after __END__. RUBY_VERSION The ruby version string (VERSION was deprecated). RUBY_RELEASE_DATE The release date string. RUBY_PLATFORM The platform identifier.
Expressions
Terms
Terms are expressions that may be a basic type (listed above), a shell command, variable reference, constant reference, or method invocation.
Operators and Precedence
(Top to bottom) :: . [] ** -(unary) +(unary) ! ~ * / % + - << >> & | ^ > >= < <= <=> == === != =~ !~ && || .. ... =(+=, -=...) not and or
All of the above are just methods except these:
=, ::, ., .., ..., !, not, &&, and, ||, or, !=, !~
In addition, assignment operators(+= etc.) are not user-definable.
Control Expressions
<!---->
if bool-expr [then] body elsif bool-expr [then] body else body end
unless bool-expr [then] body else body end
expr if bool-expr expr unless bool-expr
case target-expr when comparison [, comparison]... [then] body when comparison [, comparison]... [then] body ... [else body] end
(comparisons may be regexen)
loop do body end
while bool-expr [do] body end
until bool-expr [do] body end
begin body end while bool-expr
begin body end until bool-expr
for name[, name]... in expr [do] body end
expr.each do | name[, name]... | body end
expr while bool-expr expr until bool-expr
- break terminates loop immediately.
- redo immediately repeats w/o rerunning the condition.
- next starts the next iteration through the loop.
- retry restarts the loop, rerunning the condition.
Invoking a Method
Nearly everything available in a method invocation is optional, consequently the syntax is very difficult to follow. Here are some examples:
- method
- obj.method
- Class::method
- method(key1 => val1, key2 => val2)
- is one argument for def method(hash_arg) !
- method(arg1, *[arg2, arg3]) becomes: method(arg1, arg2, arg3)
- as ugly as you want it to be:
- method(arg1, key1 => val1, key2 => val2, *splat_arg) #{ block }
invocation := [receiver ('::' | '.')] name [ parameters ] [ block ] parameters := ( [param]* [, hashlist] [*array] [&aProc] ) block := { blockbody } | do blockbody end
Defining a Class
Class names begin w/ capital character.
class Identifier [< superclass ] expr.. end
# singleton classes, add methods to a single instance class << obj expr.. end
Defining a Module
module Identifier expr.. end
Defining a Method
def method_name(arg_list, *list_expr, &block_expr) expr.. end
# singleton method def expr.identifier(arg_list, *list_expr, &block_expr) expr.. end
- All items of the arg list, including parens, are optional.
- Arguments may have default values (name=expr).
- Method_name may be operators (see above).
- The method definitions can not be nested.
- Methods may override operators: .., |, ^, &, <=>, ==, ===, =~, >, >=, <, <=, +, -, *, /, %, **, <<, >>, ~, +@, -@, [], []= (2 args)
Access Restriction
- public - totally accessible.
- protected - accessible only by instances of class and direct descendants. Even through hasA relationships. (see below)
- private - accessible only by instances of class (must be called nekkid no "self." or anything else).
- Restriction used w/o arguments set the default access control.
- Used with arguments, sets the access of the named methods and constants.
class A protected def protected_method # nothing end end class B < A public def test_protected myA = A.new myA.protected_method end end b = B.new.test_protected
Accessors
Class Module provides the following utility methods:
Aliasing
alias :new :old alias_method :new, :old
Creates a new reference to whatever old referred to. old can be any existing method, operator, global. It may not be a local, instance, constant, or class variable.
Blocks, Closures, and Procs
Blocks/Closures
- blocks must follow a method invocation:
invocation do ... end invocation { ... }
- Blocks remember their variable context, and are full closures.
- Blocks are invoked via yield and may be passed arguments.
- Brace form has higher precedence and will bind to the last parameter if invocation made w/o parens.
- do/end form has lower precedence and will bind to the invocation even without parens.
Proc Objects
Created via:
- Kernel#proc
- Proc#new
- By invoking a method w/ a block argument.
See class Proc for more information.
Exceptions, Catch, and Throw
- Exception
- NoMemoryError
- ScriptError
- LoadError
- NotImplementedError
- SyntaxError
- SignalException
- Interrupt
- StandardError (default for rescue)
- ArgumentError
- IOError
- EOFError
- IndexError
- LocalJumpError
- NameError
- NoMethodError
- RangeError
- FloatDomainError
- RegexpError
- RuntimeError (default for raise)
- SecurityError
- SystemCallError
- Errno::*
- SystemStackError
- ThreadError
- TypeError
- ZeroDivisionError
- SystemExit
- fatal
Raising and Rescuing
raise ExceptionClass[, "message"]
begin expr.. [rescue [error_type [=> var],..] expr..].. [else expr..] [ensure expr..] end
Catch and Throw
- catch (:label) do ... end
- throw :label jumps back to matching catch and terminates the block.
- + can be external to catch, but has to be reached via calling scope.
- + Hardly ever needed.
Standard Library
Ruby comes with an extensive library of classes and modules. Some are built-in, and some are part of the standard library. You can distinguish the two by the fact that the built-in classes are in fact, built-in. There are no dot-rb files for them.
Built-in Library
Class Hierarchy
- Object
- Hash
- Symbol
- IO
- File
- Continuation
- File::Stat
- Data
- NilClass
- Exception (see tree above)
- Array
- Proc
- String
- Numeric
- Float
- Integer
- Bignum
- Fixnum
- Regexp
- Thread
- Module
- Class
- ThreadGroup
- Method
- UnboundMethod
- Struct
- Struct::Tms
- TrueClass
- Time
- Dir
- Binding
- Range
- MatchData
- FalseClass
Modules
- Comparable
- Enumerable
- Errno
- FileTest
- GC
- Kernel
- Marshal
- Math
- ObjectSpace
- Precision
- Process
Standard Library
The essentials:
- benchmark.rb a simple benchmarking utility
- cgi-lib.rb decode CGI data - simpler than cgi.rb
- cgi.rb CGI interaction
- date.rb date object (compatible)
- debug.rb ruby debugger
- delegate.rb delegate messages to other object
- English.rb access global variables by english names
- fileutils.rb file utility methods for copying, moving, removing, etc.
- find.rb traverse directory tree
- jcode.rb UTF-8 and Japanese String helpers (replaces String methods)
- net/*.rb Networking classes of all kinds
- observer.rb observer design pattern library (provides Observable)
- open-uri.rb good wrapper for net/http, net/https and net/ftp
- open3.rb open subprocess connection stdin/stdout/stderr
- ostruct.rb python style object (freeform assignment to instance vars)
- parsearg.rb argument parser using getopts
- pp prettier debugging output, 'p' on steroids.
- profile.rb ruby profiler - find that slow code!
- pstore.rb persistent object strage using marshal
- rexml/*.rb XML toolkit
- singleton.rb singleton design pattern library
- stringio lets you use an IO attached to a string.
- tempfile.rb temporary file that automatically removed
- test/unit unit testing framework
- time.rb extension to Time class with a lot of converters
- tracer.rb execution tracer
- webrick Fairly spiffy web server
- yaml alternative readable serialization format
Tools
ruby
Command Line Options
-0[octal] specify record separator (\0, if no argument). -a autosplit mode with -n or -p (splits $_ into $F). -c check syntax only. -Cdirectory cd to directory, before executing your script. --copyright print the copyright and exit. -d set debugging flags (set $DEBUG to true). -e 'command' one line of script. Several -e's allowed. -F regexp split() pattern for autosplit (-a). -h prints summary of the options. -i[extension] edit ARGV files in place (make backup if extension supplied). -Idirectory specify $LOAD_PATH directory (may be used more than once). -Kkcode specifies KANJI (Japanese) code-set. -l enable line ending processing. -n assume 'while gets(); ... end' loop around your script. -p assume loop like -n but print line also like sed. -rlibrary require the library, before executing your script. -s enable some switch parsing for switches after script name. -S look for the script using PATH environment variable. -T[level] turn on tainting checks. -v print version number, then turn on verbose mode. --version print the version and exit. -w turn warnings on for your script. -x[directory] strip off text before #! line and perhaps cd to directory. -X directory causes Ruby to switch to the directory. -y turns on compiler debug mode.
Environment Variables
DLN_LIBRARY_PATH Search path for dynamically loaded modules. RUBYLIB Additional search paths. RUBYLIB_PREFIX Add this prefix to each item in RUBYLIB. Windows only. RUBYOPT Additional command line options. RUBYPATH With -S, searches PATH, or this value for ruby programs. RUBYSHELL Shell to use when spawning.
irb
irb [options] [script [args]]
The essential options are:
-d Sets $DEBUG to true. Same as "ruby -d ..." -f Prevents the loading of ~/.irb.rc. -h Get a full list of options. -m Math mode. Overrides --inspect. Loads "mathn.rb". -r module Loads a module. Same as "ruby -r module ..." -v Prints the version and exits. --inf-ruby-mode Turns on emacs support and turns off readline. --inspect Turns on inspect mode. Default. --noinspect Turns off inspect mode. --noprompt Turns off the prompt. --noreadline Turns off readline support. --prompt Sets to one of 'default', 'xmp', 'simple', or 'inf-ruby'. --readline Turns on readline support. Default. --tracer Turns on trace mode.
Besides arbitrary ruby commands, the special commands are:
exit exits the current session, or the program fork block forks and runs the given block cb args changes to a secified binding source file loads a ruby file into the session irb [obj] starts a new session, with obj as self, if specified conf[.key[= val]] access the configuration of the session jobs lists the known sessions fg session switches to the specifed session kill session kills a specified session
Session may be specified via session#, thread-id, obj, or self.
xmp
require "irb/xmp" xmp "something to eval" # or: x = XMP.new x.puts "something to eval"
ruby-mode
TODO: I don't have a freakin clue how to use the inferior ruby thing... I always fire up a shell in emacs... DOH!
Debugger
To invoke the debugger:
ruby -r debug ...
To use the debugger:
b[reak] [file:|class:]<line|method b[reak] [class.]<line|method set breakpoint to some position wat[ch] expression set watchpoint to some expression cat[ch] exception set catchpoint to an exception b[reak] list breakpoints cat[ch] show catchpoint del[ete][ nnn] delete some or all breakpoints disp[lay] expression add expression into display expression list undisp[lay][ nnn] delete one particular or all display expressions c[ont] run until program ends or hit breakpoint s[tep][ nnn] step (into methods) one line or till line nnn n[ext][ nnn] go over one line or till line nnn w[here] display frames f[rame] alias for where l[ist][ (-|nn-mm)] list program, - lists backwards nn-mm lists given lines up[ nn] move to higher frame down[ nn] move to lower frame fin[ish] return to outer frame tr[ace] (on|off) set trace mode of current thread tr[ace] (on|off) all set trace mode of all threads q[uit] exit from debugger v[ar] g[lobal] show global variables v[ar] l[ocal] show local variables v[ar] i[nstance] object show instance variables of object v[ar] c[onst] object show constants of object m[ethod] i[nstance] obj show methods of object m[ethod] class|module show instance methods of class or module th[read] l[ist] list all threads th[read] c[ur[rent]] show current thread th[read] [sw[itch]] nnn switch thread context to nnn th[read] stop nnn stop thread nnn th[read] resume nnn resume thread nnn p expression evaluate expression and print its value h[elp] print this help everything else evaluate empty repeats the last command
rdoc
=begin the everything between a line beginning with `=begin' and that with `=end' will be skipped by the interpreter. =end
FIX: there is a lot more to rdoc.
Mindshare, Idiom and Patterns
Object Design
Visitor Pattern
By defining the method #each and including Enumerable, you get to use all the methods in Enumerable:
class Mailbox include Enumerable # ... def each @mail.each do # ... yield end end end
Class SimpleDelegator, DelegateClass
foo = Object.new foo2 = SimpleDelegator.new(foo) foo.hash == foo2.hash # => false Foo = DelegateClass(Array) class ExtArray<DelegateClass(Array) ... end
Module Observer
monitor.add_observer(self) ... def update ... notify_observers(data, ...) end
Module Singleton
class Klass include Singleton # ... end a, b = Klass.instance, Klass.instance a == b # => true a.new # raises NoMethodError
Other Third-party Libraries
Racc
Test::Unit
- assert(boolean, message=nil)
- assert_block(message="assert_block failed.") do ... end
- assert_equal(expected, actual, message=nil)
- assert_in_delta(expected_float, actual_float, delta, message="")
- assert_instance_of(klass, object, message="")
- assert_kind_of(klass, object, message="")
- assert_match(pattern, string, message="")
- assert_nil(object, message="")
- assert_no_match(regexp, string, message="")
- assert_not_equal(expected, actual, message="")
- assert_not_nil(object, message="")
- assert_not_same(expected, actual, message="")
- assert_nothing_raised(*args)
- assert_nothing_thrown(message="") do ... end
- assert_operator(object1, operator, object2, message="")
- assert_raises(expected_exception_klass, message="") do ... end
- assert_respond_to(object, method, message="")
- assert_same(expected, actual, message="")
- assert_send(send_array, message="")
- assert_throws(expected_symbol, message="") do ... end
- flunk(message="Flunked")
发表评论
-
ruby 经典电子书免费下载--英文原版
2009-07-21 19:06 3260ruby 经典电子书免费下载--英文原版 [list] ... -
ruby 36要点
2008-12-05 16:20 13931. 它是面向对象的。 这表示什么意义呢?如果问10个程序员, ... -
用Ruby来开发GUI程序
2008-11-10 15:02 2530Ruby 写的 GUI 黑白棋游戏 把脚本下载以后,发现 ... -
漂亮的FishEye菜单
2008-11-10 14:32 2016我们都喜欢MAC,喜欢FishEye菜单。 实际上整合 ... -
地图跟踪你网站访问者来自哪里
2008-11-10 14:32 2200在maps.amung.us的帮助下可以很清楚的看到你网站访问 ... -
Prototype弹出框-颜色可变大小可调
2008-11-10 14:31 2788Prototype windows是一个javascript类 ... -
Rake命令简介
2008-11-10 14:25 1586Rake(http://rake.rubyforge.or ... -
运用Ruby 收发邮件
2008-05-27 15:00 2058转http://tech.it168.com/o/2007- ...
相关推荐
《Ruby袖珍参考手册》是一本旨在帮助Ruby开发者快速查找所需知识点的手册。无论你是通过Rails框架接触Ruby,还是因为Ruby是一种干净、强大且表达力丰富的语言而对它产生兴趣,《Ruby袖珍参考手册》都能提供你需要的...
5. **Scaffolding**:Rails的快速开发特性,能自动生成用于CRUD(创建、读取、更新、删除)操作的基础控制器、视图和路由,便于快速搭建原型。 6. ** erb/haml/slim**:Rails支持多种模板引擎,如ERB(Embedded ...
一个基于Ruby的快速且强大的类型检查器,大部分代码都是用Ruby编写,个人经导师指导并认可通过的97分大作业设计项目,适用人群:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业或毕业设计,作为...
3. 解释型语言:Ruby是一种解释型语言,这使得它在开发过程中具有快速迭代的优势。 4. 面向对象:Ruby是一种真正的面向对象编程语言,与Smalltalk一样,它在面向对象的设计和实现上达到了高标准。 5. 服务器端脚本:...
参考手册是学习任何编程语言的重要工具,它能帮助你快速查找并理解特定的函数、方法或概念。Programming Ruby通常是指"The Pragmatic Programmer's Guide to Ruby",这是一本深入介绍Ruby编程的经典书籍,中文版可以...
**Ruby-EMMidori:轻量级、灵活与快速的Ruby Web框架** EMMidori是基于EventMachine的轻量级Web框架,它以其高效、灵活和简洁的设计在Ruby社区中备受青睐。作为一款Web框架,EMMidori的核心目标是提供高性能的服务...
除了Python之外,Ruby也是一种非常适用于游戏开发的语言,尤其适合那些希望快速原型化和迭代游戏设计的开发者。本书同样深入地探讨了Ruby在游戏开发中的应用,例如: - **Ruby游戏框架**:介绍了一些流行的Ruby游戏...
本套官方文档包含了关于Ruby核心库、标准库、语言特性和整体框架的详细信息,是学习和深入理解Ruby不可或缺的参考资料。 《ruby23-stdlib.chm》文档主要涵盖了Ruby的标准库(Standard Library)。Ruby标准库提供了...
总的来说,"ruby中英文api"的资源对于Ruby初学者来说是非常宝贵的,它可以帮助他们快速入门并逐渐精通这门语言。通过深入阅读和实践,开发者可以掌握Ruby的灵活性和强大能力,从而在Web开发或其他领域发挥出它的潜力...
- **http://www.zenspider.com/Languages/Ruby/QuickRef.html**:另一份快速参考文档。 - **http://ruby.on-page.net/**:面向对象脚本语言RUBY参考手册。 - **http://www.kuqin.com/rubycndocument/man/index.html*...
开发者可以通过阅读源码了解其内部实现,参考示例快速上手,通过文档理解各个方法的功能和使用方式,而测试用例则可以帮助验证库的正确性。 为了使用Ruby-DingTalkBot,首先需要在项目中引入库(通过Gemfile或直接...
《The Book of Ruby》不仅是一本优秀的Ruby编程入门书籍,更是一部全面涵盖Ruby编程语言各个方面的重要参考文献。无论你是刚刚接触编程的新手,还是拥有一定经验但想进一步提升自己的开发者,都能从中获得有价值的...
本教程针对初学者,旨在帮助读者快速掌握Ruby的基础知识,并通过实例深入理解其用法。 首先,Ruby的基本语法是它的一大亮点。Ruby允许开发者以更自然的方式编写代码,这得益于它的语法接近于英语。例如,变量的声明...
Sketch Up Ruby API by Sugar Sketch Up Ruby API by Sugar...Sketch Up Ruby API by Sugar 提供了 SketchUp 的详细的 Ruby API 参考手册,涵盖了 SketchUp 的各个方面,帮助开发者快速开发 SketchUp 插件和应用程序。
4. **Rails安装**:Ruby on Rails是Ruby的一个框架,用于快速开发Web应用。首先,确保已经安装了`bundler` gem,它是管理Rails应用依赖的工具。然后,通过`gem install rails`命令安装Rails。验证Rails是否安装成功...
如果需要深入学习,可以研究源码,查看其API设计,或者参考提供的示例,以提高自己的Ruby数据可视化技能。 总之,RubyGraphViz是Ruby开发中的一个重要工具,它结合了GraphViz的强大图形渲染能力和Ruby的易读性,为...
在输入时,irbtools能够提供基于当前上下文的智能提示,包括对象的方法、属性以及常量等,帮助你快速找到需要的信息。 6. **定制化**: 通过配置文件,你可以调整irbtools的行为以满足个人习惯,比如改变颜色方案...
- Scaffold:快速生成基本的CRUD(创建、读取、更新、删除)功能的代码,帮助开发者快速搭建应用原型。 3. **Rails开发工具**: - Gem:Ruby的包管理器,用于安装、管理和升级Ruby库。 - Bundler:管理项目依赖...
为了更好地利用Ruby-Squid,建议阅读其官方文档,那里有详细的示例和API参考,可以帮助你快速掌握各种用法。同时,不断探索和实践将有助于你发掘更多可能,比如结合数据分析库如Numo-NArray或Pandas-Ruby,将Ruby-...