-->

Программирование на языке Ruby

На нашем литературном портале можно бесплатно читать книгу Программирование на языке Ruby, Фултон Хэл-- . Жанр: Программирование. Онлайн библиотека дает возможность прочитать весь текст и даже без регистрации и СМС подтверждения на нашем литературном портале bazaknig.info.
Программирование на языке Ruby
Название: Программирование на языке Ruby
Дата добавления: 16 январь 2020
Количество просмотров: 499
Читать онлайн

Программирование на языке Ruby читать книгу онлайн

Программирование на языке Ruby - читать бесплатно онлайн , автор Фултон Хэл
Ruby — относительно новый объектно-ориентированный язык, разработанный Юкихиро Мацумото в 1995 году и позаимствовавший некоторые особенности у языков LISP, Smalltalk, Perl, CLU и других. Язык активно развивается и применяется в самых разных областях: от системного администрирования до разработки сложных динамических сайтов. Книга является полноценным руководством по Ruby — ее можно использовать и как учебник, и как справочник, и как сборник ответов на вопросы типа «как сделать то или иное в Ruby». В ней приведено свыше 400 примеров, разбитых по различным аспектам программирования, и к которым автор дает обстоятельные комментарии. Издание предназначено для программистов самого широкого круга и самой разной квалификации, желающих научиться качественно и профессионально работать на Ruby.

Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала

Перейти на страницу:

Чтобы включить механизм завершения, добавьте в файл

.irbrc
следующий фрагмент:

IRB.conf[:AUTO_INDENT] = true

IRB.сonf[:USE_READLINE] = true

IRB.conf[:LOAD_MODULES] ||= []

IRB.conf[:LOAD_MODULES] |= ['irb/completion']

В файле

.irbrc
может содержаться произвольный код. Например, я часто пользуюсь описанным ниже методом. Для краткости он назван
sm
(сокращение от «show methods»), а цель — вывести (в алфавитном порядке) список всех методов, которые можно вызывать для данного объекта, за исключением тех, которые он унаследовал от своих предков:

def sm(obj)

 list = obj.methods

 anc = obj.class.ancestors — [obj.class]

 anc.each {|a| list -= a.instance_methods }

 list.sort

end

Вот пример его использования:

irb(main):001:0> str = "hello"

=> "hello"

irb(main):002:0> sm str

=> ["%", "*", "+", "<<", "<=>", "[]", "[]=", "capitalize",

"capitalize!", "casecmp", "center", "chomp", "chomp!", "chop", "chop!",

"concat", "count", "crypt", "delete", "delete!", "downcase", "downcase!",

"dump", "each", "each_byte", "each_line", "empty?", "gsub", "gsub!", "hex",

"index", "insert", "intern", "length", "ljust", "lstrip", "lstrip!", "match",

"next", "next!", "oct", "replace", "reverse", "reverse!", "rindex", "rjust",

"rstrip", "rstrip!", "scan", "size", "slice", "slice!", "split", "squeeze",

"squeeze!", "strip", "strip!", "sub", "sub!", "succ", "succ!", "sum",

"swapcase", "swapcase!", "to_f", "to_i", "to_str", "to_sym", "tr", "tr!",

"tr_s", "tr_s!", "unpack", "upcase", "upcase!", "upto"]

irb(main):003:0> sm String

=> ["allocate", "new", "superclass"]

irb(main):004:0> sm 123 => ["%", "*", "**", "+", "-", "/", "<<", ">>", "[]", "^",

"id2name", "power!", "rdiv", "rpower", "size", "to_f", "to_sym, "|", "-"]

Программа

irb
позволяет запускать подсеансы внутри сеанса, хотя это используется и нечасто. Можно запустить несколько сеансов и переключаться между ними, у каждого сеанса собственный набор привязок.

Может быть, вам это и не кажется полезным, но можно, например, задать объект в сочетании с подкомандой

irb
. Тогда контекстом подсеанса станет этот объект, псевдопеременная
self
будет ссылаться на него, он же станет областью видимости и т.д.:

$ irb

irb(main):001:0> t0 = Time.now

=> Mon Jul 31 04:51:50 CDT 2006

irb(main):002:0> irb t0

irb#1(Mon Jul 31 04:51:50 CDT 2006):001:0> strftime("%a %b %c")

=> "Mon Jul Mon Jul 31 04:51:50 2006"

irb#1(Mon Jul 31 04:51:50 CDT 2006):002:0> to_i

=> 1154339510

irb#1(Mon Jul 31 04:51:50 CDT 2006):003:0> self + 1000

=> Mon Jul 31 05:08:30 CDT 2006

irb#1(Mon Jul 31 04:51:50 CDT 2006):004:0> wday

=> 1

irb#1(Mon Jul 31 04:51:50 CDT 2006):005:0> class

SyntaxError: compile error

(irb#1):5: syntax error, unexpected $end

           from (irb#1):5

irb#1(Mon Jul 31 04:51:50 CDT 2006):006:0> self.class

=> Time

irb#1(Mon Jul 31 04:51:50 CDT 2006):007:0> quit

=> #<IRB::Irb: @scanner=#<RubyLex:0xb7ee8394>,

@signal_status=:IN_EVAL, @context=#<IRB::Context:0xb7ee86f0>>

irb(main):003:0> quit

$

Мы уже убедились в полезности библиотеки

ruby-breakpoint
(см. главу 16). В сочетании с ней
irb
становится мощным средством отладки, поскольку вы можете установить точку прерывания и «оказаться» в сеансе
irb
. Конечно, это не настоящий отладчик, потому что не позволяет исполнять код в пошаговом режиме.

Перейти на страницу:
Комментариев (0)
название