Small

Small collection of useful Ruby utilities
Support
- Ruby 1.9.x
- JRuby 1.6.x in 1.9 mode
- Rubinious 1.2.x in 1.9 mode
Classes
-
Math
* fibanocci(n) * factorial(n) -
String
* camelize * dashize * humanize * underscore * constantize * encode64 * decode64 * to_sha1 * to_sha256(provider) * to_md5 * escape * unescape * html_escape * url_encode -
Integer
* year, years * month, months * week, weeks * day, days * hour, hours * minute, minutes * second, seconds -
Array
* extract_options * sample -
Hash
* stringify_keys! * symbolize_keys! * to_params -
Time
* since(seconds) * ago(seconds) * advance(options) * change(options) * to_date * to_datetime * to_formatted_s(format) * leap_year? * weekend? * today? * future? * past? * days_in_month * days_to_week_start(start_day) * weekends * business_week(start_day) * beginning_of_business_week(start_day) * end_of_business_week(start_day) * beginning_of_day * beginning_of_week(start_day) * beginning_of_month * beginning_of_year * end_of_day * end_of_week(start_day) * end_of_month * end_of_year * tomorrow * yesterday * next_year * last_year * next_month * last_month * next_week * last_week -
Object
* string? * boolean? * numeric? * integer? * fixnum? * float? * proc? * blank? * present? * presence * try(method, &block) -
Benchmark - small DSL for Benchmark class
* benchmark(&block) * measure(&block) * realtime(&block) * run(n, &block)
require 'small/benchmark'
benchmark do |b|
b.report("test") do
run 50_000 do
puts "hello world"
end
end
end
Notes: some codes extracted from ActiveSupport, but some codes are modified
Benchmark
Using a time command execution
Small: time ruby -r small -e 'puts Time.now.end_of_week'
2012-05-06 23:59:59 -0500
real 0m0.167s
user 0m0.113s
sys 0m0.048s
ActiveSupport: time ruby -r active_support/all -e 'puts Time.now.end_of_week'
2012-05-06 23:59:59 -0500
real 0m1.320s
user 0m1.240s
sys 0m0.074s
License
small is licensed under the MIT license