В openSUSE всілякі там Yast переписали на Ruby. Віконечно для встановлення запакетованої програмки через фірмовий One click install займає 131 Міб оперативки. Під час встановлення проце займає близько 200.
Тег ruby
Могло быть и хуже.
https://gist.github.com/Lin...403396b19f9b458b1758
Я для обновления сертификатов использую getssl с валидацией через записи в доменах, которые живут на DigitalOcean. Со временем таких записей становится слишком много, а ручками чистить лениво. Вот и написала такую фигню: используя doctl, генерирует Bash скрипт (или BAT файл, если убрать заголовок), который уже делает всю работу. Я могла бы вызывать doctl и для удаления записей, но в таком варианте можно хотя бы проинспектировать, что будет удаляться. Так что пока так.
Вечный вопрос: нужно ли удалять ненужные гемы, если вопрос места на диске не стоит на повестке дня?
Кстати, прикол от Nanoc. Там есть возможность писать свои фильтры и вообще внедрять свой код в процесс компиляции сайта, достаточно закинуть модули в папку lib. Ну я и закинула. А у меня один главный файл, к которому через require_relative прицеплены другие. В standalone режиме всё прекрасно работало, а тут компиляция начала валиться с сообщением, что дескать unicode normalization не применима к US-ASCII. С этого момента началось перелопачивание исходников в поисках, где он нашёл US-ASCII. Думала, что из-за включения гема unicode, пихала всё в module, чтобы не светилось наружу – нифига. Потом от отчаяния догадалась убрать require_relative, раз уж оно грузит все модули, что есть в папке без дополнительных пинков, и ошибка пропала. Короче, мистика.
Собственно, чего это я? Сегодня вместо работы сидела портировала код, конвертирующий текст в HTML с сохранением внешнего вида (в том числе и табов), с VBScript на Руби. Тоесть код нужен был для обновления программы на VB6, но на работе VB6 нет поэтому сначала писала на VBScript, а потом в VBA приводила в чувства. Собственно, на Руби я это дело перевести тоже хотела, а всё для чего? Для того чтобы у меня был свой собственный фильтр для Nanoc, чтобы обычный текст выводился нормально без всех Markdown премудростей. И фильтр я таки сделала, теперь нужно допилить его для нормального состояния, чтобы параметры были и всё такое. А там уже можно будет придумать, как мелкие рассказики пачкой публиковать, конвертируя из CherryTree XML ^^'
Терпеть не могу блоки в Руби. Тут пиши «then/end», там - «do/end», сям - «begin/end». Всё время путаюсь. Есть фигурные скобки, но смотрятся они некрасиво и как-то чужеродно =_=
Взяла код на VBScript, взяла свой модуль vb.rb и начала построчно переводить код на Руби. Этим язык меня и привлекает.
Из пятого HAML'а убрали опцию «ugly», и всё стало очень печально =_=
Gopher сервер на Руби OO
https://github.com/muffinista/gopher2000
На нём сделан Gopher гейт к Википедии:
gopher://gopherpedia.com
Если у нас сокеты, скажем, в каком-нибудь Net::HTTP, и случается ошибка, то вот вот это:
$stderr.puts "Ошибка: #{ e.message }"
может кончиться этим:
incompatible character encodings: UTF-8 and ASCII-8BIT (Encoding::CompatibilityError)
Поэтому нужно делать так:
$stderr.puts "Ошибка: #{ e.message.force_encoding("windows-1251").encode("UTF-8") }"
Собственно, это результат мышления в стиле «двух кодировок» и «какой-такой UTF-16 я в линупсах привык к UTF-8 и доки не читаю».
Я, конечно, ещё только начинаю осваивать Руби, но из всех языков с которыми я за последнее время познакомилась, именно Руби оставляет какое-то чувство комфорта при написании кода. Словно пишешь на VB7.
tumblelogs.sort_by! do |tumblelog|
tumblelog["title"]
end
Не перестаю удивляться!
[ file_contents ].pack("u")
И никаких сторонних утилит OO
Как заставить RVM работать не только в запущенном Баше, но и за его пределами, в тех же Иксах? А то Баш при запуске читает ~/.bashrc и запускает специальный скрипт, после чего все переменные окружения красиво устанавливаются, и нужная версия Руби подменяет системную (если есть). Иксы же при логоне запускают ~/.profile и даже выполняют указанный там скрипт, но переменные окружения так и не устанавливаются. В итоге работает только системная версия Руби, устаревшая лет пять назад == Приходится городить костыли с промежуточными скриптами, которые врукопашную устанавливают нужные переменные и запускают правильную версию Руби. Та же фигня с неинтерактивными пользователями вроде www-data в рамках вэб-сервера. У них вообще нет ~, а при системной установке RVM для них не выполняется обновлятор переменных окружения == И при запуске от суперпользователя (скажем, через крон) – RVM большими красными буквами не рекомендуют запускать от рута =_= Короче, пичалька.
Bing Logger переписала на Руби. До этого было на VBScript только для Windows, а тут прямо кроссплатформенно всё.
То, что у функций в Руби есть опциональные параметры с дефолтным значением, это, конечно, хорошо. А то, что нельзя пропустить один опциональный параметр и указать значения следующих вызовом вида «byaka(12, , 34)», это, конечно, очень плохо =_=
Пилю модуль со строковыми функциями в стиле VB6. В качестве упражнения и безболезненного погружения. Сначала хотела стандартный класс переопределить, но потом решила не делать этого. Собственно, узнала кое-что новое про сами VB функции. Например, в Replace() есть параметр Start, который по идее только сообщает с какого символа начинать поиск и замену, а на деле (и это задокументировано!) срезает всё, что было до этого символа. Я прямо в шоке, всегда думала, что активно использую этот параметр, ан нет, видать, ни разу не использовала.
То ли я невнимательно читала спецификацию syslog, то ли авторы класса Syslog в Руби, но ихние функции debug(), error() и прочие не соответствуют тому, что я вижу в своём syslog сервере. Тоесть отправляю error(), а оно появляется как Warning, falal() – как Error и так далее. Разве что только info() нормально выходит.
Пишу в начале скрипта на Руби:
!/usr/bin/env ruby
Запускаю, Баш начинает вести себя неадекватно, словно это – его собственный скрипт. Вспоминаю, убираю BOM, запускаю. Баш сообщает, что файл не найден. Вспоминаю, CRLF превращаю в LF. Запускаю, скрипт стартует без проблем.
При этом самого Руби это всё не смущает. Башу не хватает гибкости™
Так, посоны рубисты. У меня в проекте используется compass.
И этот компасс требует sass-css-importer
Где мне написать что это его зависимость?
В питоне я пишу requirements.in; Для npm есть package.json; А тут куда?