p = Provider.firstИдиоматический способ для такой проверки:
if p.class == Provider
puts "p is Provider"
end
p = Provider.firstПолезная информация об идиоматических методах в Ruby.
if Provider === p.class
puts "p is Provider"
end
all glory to hypnotoad
p = Provider.firstИдиоматический способ для такой проверки:
if p.class == Provider
puts "p is Provider"
end
p = Provider.firstПолезная информация об идиоматических методах в Ruby.
if Provider === p.class
puts "p is Provider"
end
В Terminal.app по умолчанию неправильно работают клавиши Home и End. Для их правильной настройки необходимо перейти в меню «Терминал → Настройки → вкладка Настройки → Клавиатура».
Далее нужно найти в списке либо создать действия с клавишами «home» и «end». В строку редактирования нужно ввести:
home \033[H
end \033[F
Вставка \033 осуществляется нажатием клавиши Esc. Данный способ починит поведение этих клавиш в командной строке Terminal.app, но в текстовом редакторе vim они по-прежнему будут не работать. Для того, чтобы они там работали добавим следующие строки в файл .vimrc в домашней директории (редакатировать этот файл нужно в редакторе vim):
В настоящий момент изучаю замечательный фреймворк Rails, а попутно язык Ruby. В нём любые данные являются объектом и минимальное или максимальное значения массива можно получить очень удобным способом:
array = [ 10, 50, 180, 13, 86, 253 ]
array.max #=> 253
array.min #=> 10
Ребята, написавшие книгу по разработке на Rails настоящие юмористы. Вот цитаты оттуда:
The answer is both simple and subtle. Rails does some Ruby magic so that the instance variables of the controller object are injected into the template object. As a consequence, the view template can access any instance variables set in the controller as if they were its own.
Some folks press the point: “just how do these variables get set?” These folks clearly don’t believe in magic. Avoid spending Christmas with them.
The buyer uses Depot to browse the products we have to sell, select some to purchase, and supply the information needed to create an order. The seller uses Depot to maintain a list of products to sell, to determine the orders that are awaiting shipping, and to mark orders as shipped. (The seller also uses Depot to make scads of money and retire to a tropical island, but that’s the subject of another book.)
Our customer has one last request (customers always seem to have one last request).
Jesse James Garrett named this style of interaction AJAX (which once stood for Asynchronous JavaScript and XML but now just means Making Browsers Suck Less).
Очисткой мусора, а именно, удалением ненужных переменных в PHP занимается сборщик мусора (англ. garbage collector, gc). Конкретно, сборщик мусора удаляет переменную в тот момент, когда теряют актуальность все ссылки на неё. Это может быть завершение функции, в которой была определена переменная, либо присваивание переменной и всем ссылающимся на неё переменным значения null. Однако, в некоторых случаях сборщик мусора оказывается бесполезен, в таких случаях вся ответственность за очистку памяти возлагается на программиста.
Одним из таких случаев являются циклические зависимости, которые встречаются в коде достаточно часто, даже казалось бы в самых обычных вещах. К примеру, у нас есть объект, который поддерживает определенное количество сервисов. Массив объектов-сервисов хранится в свойстве класса. По определенным причинам, объект-сервис должен содержать в себе ссылку на экземпляр объекта, к которому он относится.
Очень надоедает писк системного динамика в Ubuntu. Есть способ его отключения посредством выключения соответствующего модуля:
Однако, по непонятным для меня причинам, этот способ моей системе не помог. Получилось отключить динамик в настройках композитного менеджера окон CompizConfig.
sudo modprobe -r pcspkr

Столкнулся с неожиданной проблемой во всеми нелюбимом браузере. Ситуация такая: скрипт получает ответ на AJAX-запрос и записывает этот ответ в DOM-элемент посредством изменения свойста innerHTML последнего. В ответе, в том числе, содержаться следующие строки:
<link rel="stylesheet" type="text/css" href="/bitrix/components/2008/people.add.block/templates/.default/style.css" />Все прекрасно работает в Firefox, но не работает в IE, а именно, не подключается файл со стилями. Оказывается, в IE есть проблемы с записью таких тэгов посредством изменения свойства innerHTML. Решение в таком случае простое:
<script type="text/javascript" src="/bitrix/js/main/utils.js"></script>
<script type="text/javascript" src="/bitrix/js/main/popup_menu.js"></script>
<div style="display: none;"><br></div>
<link rel="stylesheet" type="text/css" href="/bitrix/components/2008/people.add.block/templates/.default/style.css" />
<script defer type="text/javascript" src="/bitrix/js/main/utils.js"></script>
<script defer type="text/javascript" src="/bitrix/js/main/popup_menu.js"></script>
Те, кто использует в своей работе замечательную IDE PHPEd от компании NuSphere наверняка сталкивались с проблемой отладки скриптов в браузере Firefox. В частности, чтобы завершить сессию отладки приходилось вручную (либо с помощью дополнения Web developer) убивать куку DBGSESSID.
Но, оказывается, не все так печально, благо энтузиастом с форума компании NuSphere было написано дополнение, представляющее собой отладочный тулбар.