Программирование на языке Ruby
На нашем литературном портале можно бесплатно читать книгу Программирование на языке Ruby, Фултон Хэл-- . Жанр: Программирование. Онлайн библиотека дает возможность прочитать весь текст и даже без регистрации и СМС подтверждения на нашем литературном портале bazaknig.info.
Название: Программирование на языке Ruby
Автор: Фултон Хэл
Дата добавления: 16 январь 2020
Количество просмотров: 834
Программирование на языке Ruby читать книгу онлайн
Программирование на языке Ruby - читать бесплатно онлайн , автор Фултон Хэл
Ruby — относительно новый объектно-ориентированный язык, разработанный Юкихиро Мацумото в 1995 году и позаимствовавший некоторые особенности у языков LISP, Smalltalk, Perl, CLU и других. Язык активно развивается и применяется в самых разных областях: от системного администрирования до разработки сложных динамических сайтов. Книга является полноценным руководством по Ruby — ее можно использовать и как учебник, и как справочник, и как сборник ответов на вопросы типа «как сделать то или иное в Ruby». В ней приведено свыше 400 примеров, разбитых по различным аспектам программирования, и к которым автор дает обстоятельные комментарии. Издание предназначено для программистов самого широкого круга и самой разной квалификации, желающих научиться качественно и профессионально работать на Ruby.
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала
Перейти на страницу:
break if line =~ /^s*$/ next if line =~ /^s/ next unless line =~ allowed_headers # Вырезать префикс [ruby-talk:nnnn] из темы, прежде чем # отправлять в конференцию. if line =~ /^Subject:s*(.*)/ subject = $1 # Следующий код вырезает специальный номер ruby-talk # из начала сообщения в списке рассылки, перед тем # как отправлять его новостному серверу. line.sub!(/[ruby-talk:(d+)]s*/, '') subject = "[#$1] #{line}" head << "X-ruby-talk: #$1n" end head << lineendhead << "#{Params::LOOP_FLAG}n"body = ""while line = gets body << lineendmsg = head + "n" + bodymsg.gsub!(/r?n/, "rn")nntp = NNTPIO.new(Params::NEWS_SERVER)raise "Failed to connect" unless nntp.connectnntp.post(msg)Листинг 18.7. Перенаправление конференции в почту
### Простой сценарий для зеркалирования трафика# из конференции comp.lang.ruby в список рассылки ruby-talk.## Вызывается периодически (скажем, каждые 20 минут).# Запрашивает у новостного сервера все сообщения с номером,# большим номера последнего сообщения, полученного# в прошлый раз. Если таковые есть, то читает сообщения,# отправляет их в список рассылки и запоминает номер последнего.require 'nntp'require 'net/smtp'require 'params'include NNTP###
# Отправить сообщения в список рассылки. Сообщение должно# быть отправлено участником списка, хотя в строке From:# может стоять любой допустимый адрес.#def send_mail(head, body) smtp = Net::SMTP.new smtp.start(Params::SMTP_SERVER) smtp.ready(Params::MAIL_SENDER, Params::MAILING_LIST) do |a| a.write head a.write "#{Params::LOOP_FLAG}rn" a.write "rn" a.write body endend### Запоминаем идентификатор последнего прочитанного из конференции# сообщения.begin last_news = File.open(Params::LAST_NEWS_FILE) {|f| f.read}.to_irescue last_news = nilend### Соединяемся с новостным сервером и получаем номера сообщений# из конференции comp.lang.ruby.#nntp = NNTPIО.new(Params::NEWS_SERVER)raise "Failed to connect" unless nntp.connectcount, first, last = nntp.set_group(Params::NEWSGROUP)### Если номер последнего сообщения не был запомнен раньше,# сделаем это сейчас.if not last_news last_news = lastend### Перейти к последнему прочитанному ранее сообщению# и попытаться получить следующие за ним. Это может привести# к исключению, если сообщения с указанным номером# не существует, но мы не обращаем на это внимания.begin nntp.set_stat(last_news)rescueend### Читаем все имеющиеся сообщения и отправляем каждое# в список рассылки.new_last = last_newsbegin loop do nntp.set_next head = "" body = "" new_last, = nntp.get_head do |line| head << line
Перейти на страницу:
