Генерация токенов в руби

Время от времени возникает необходимость сформировать какую-нибудь случайную строку – например токен для jenkins проекта. Вариантов конечно существует воз и маленькая тележка, но мне очень понравилось, что в руби, начиная с версии 1.9.2 в исходную поставку входит модуль SecureRandom, который позволяет это сделать очень просто.

Так что, рецепт такой, запускаем irb и там выполняем последовательно

:001 > require 'securerandom'
=> true
:002 > SecureRandom.hex
=> "f44b0dabdd9e93dd7f3824aa3e320249"
:003 > SecureRandom.urlsafe_base64
=> "23wLyIytgYqEweoWjRqebg"
:004 > SecureRandom.urlsafe_base64 50
=> "ndePvxI9YN6ZIEWi9IjeodX-CXn2HWmSVUtLg8-M1rZ8zj1aTUyO90UUCpck6M8-b4Y"
:005 > exit

В 4 строчке была сформирована urlsafe строка длиной 50 символов.
Начиная с этого места можно уже погуглить какие ещё опции есть в этом модуле.

Определение размера директорий

Зачастую бывает необходимо узнать, какая же из директорий съедает больше всего места, и кого нужно удалить, чтобы опять появилось свободное место. В этом очень помогает следующая магическая строчка
 
$ du -ks * | sort -k1gr

Команда du показывает размер директорий на один уровень вниз, sort позволяет отсортировать данные. В частности, ключ r означает обратное расположение записей, то есть первой будет идти наиболее толстая директория. Ключ g означает, что сортировку надо проводить по числовому идентификатору.

Разработка приложений под Ruby on Rails – Часть 2 (annotate)

Гем annotate весьма полезное средство для автоматического создания описаний. Узнал я об этом геме из замечательного туториала Хартла http://ruby.railstutorial.org/ruby-on-rails-tutorial-book. Использование его очень простое, достаточно добавить в Gemfile строки

group :development do
gem 'annotate', '~> 2.5.0'
end

выполнить

$ bundle install

И после этого можно при каждой  миграции вызывать

$ bundle exec annotate

В этом случае в файлах моделей будут писаться куски кода вроде такого (взято из того же Хартла):

# == Schema Information
#
# Table name: users
#
# id :integer not null, primary key
# name :string(255)
# email :string(255)
# created_at :datetime
# updated_at :datetime
#

class User < ActiveRecord::Base attr_accessible :name, :email end