visionmedia-rext 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/History.rdoc +5 -0
- data/Manifest +22 -0
- data/benchmarks/enumerable.rb +14 -0
- data/benchmarks/proc.rb +24 -0
- data/lib/rext/all.rb +1 -1
- data/lib/rext/date/helpers.rb +12 -0
- data/lib/rext/date.rb +6 -0
- data/lib/rext/enumerable/helpers.rb +75 -0
- data/lib/rext/enumerable.rb +6 -0
- data/lib/rext/hash/helpers.rb +23 -0
- data/lib/rext/hash.rb +6 -0
- data/lib/rext/integer/helpers.rb +29 -0
- data/lib/rext/module/helpers.rb +11 -0
- data/lib/rext/module.rb +6 -0
- data/lib/rext/proc/helpers.rb +22 -0
- data/lib/rext/proc.rb +7 -0
- data/lib/rext/time/helpers.rb +43 -0
- data/lib/rext/time.rb +6 -0
- data/lib/rext/version.rb +1 -1
- data/rext.gemspec +3 -3
- data/spec/date_spec.rb +15 -0
- data/spec/enumerable_spec.rb +45 -0
- data/spec/hash_spec.rb +18 -0
- data/spec/module_spec.rb +38 -0
- data/spec/time_spec.rb +23 -0
- data/tasks/benchmark.rake +13 -0
- metadata +37 -2
data/History.rdoc
CHANGED
data/Manifest
CHANGED
@@ -1,18 +1,40 @@
|
|
1
|
+
benchmarks/enumerable.rb
|
2
|
+
benchmarks/proc.rb
|
1
3
|
History.rdoc
|
2
4
|
lib/rext/all.rb
|
5
|
+
lib/rext/date/helpers.rb
|
6
|
+
lib/rext/date.rb
|
7
|
+
lib/rext/enumerable/helpers.rb
|
8
|
+
lib/rext/enumerable.rb
|
9
|
+
lib/rext/hash/helpers.rb
|
10
|
+
lib/rext/hash.rb
|
11
|
+
lib/rext/integer/helpers.rb
|
3
12
|
lib/rext/integer/time.rb
|
4
13
|
lib/rext/integer.rb
|
14
|
+
lib/rext/module/helpers.rb
|
15
|
+
lib/rext/module.rb
|
16
|
+
lib/rext/proc/helpers.rb
|
17
|
+
lib/rext/proc.rb
|
5
18
|
lib/rext/string/escape.rb
|
6
19
|
lib/rext/string/helpers.rb
|
7
20
|
lib/rext/string.rb
|
21
|
+
lib/rext/time/helpers.rb
|
22
|
+
lib/rext/time.rb
|
8
23
|
lib/rext/version.rb
|
9
24
|
lib/rext.rb
|
10
25
|
Manifest
|
11
26
|
Rakefile
|
12
27
|
README.rdoc
|
28
|
+
rext.gemspec
|
29
|
+
spec/date_spec.rb
|
30
|
+
spec/enumerable_spec.rb
|
31
|
+
spec/hash_spec.rb
|
13
32
|
spec/integer_spec.rb
|
33
|
+
spec/module_spec.rb
|
14
34
|
spec/spec_helper.rb
|
15
35
|
spec/string_spec.rb
|
36
|
+
spec/time_spec.rb
|
37
|
+
tasks/benchmark.rake
|
16
38
|
tasks/docs.rake
|
17
39
|
tasks/gemspec.rake
|
18
40
|
tasks/spec.rake
|
@@ -0,0 +1,14 @@
|
|
1
|
+
|
2
|
+
list = %w( just some random foo bar like cookies )
|
3
|
+
|
4
|
+
benchmark 'Enumerable#group_by', :times => $times do
|
5
|
+
report 'with block' do
|
6
|
+
list.group_by { |item| item.length }
|
7
|
+
end
|
8
|
+
report 'with evaled block' do
|
9
|
+
list.group_by { length }
|
10
|
+
end
|
11
|
+
report 'with proxy' do
|
12
|
+
list.group_by.length
|
13
|
+
end
|
14
|
+
end
|
data/benchmarks/proc.rb
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
|
2
|
+
def yield_or_eval_test &block
|
3
|
+
block.yield_or_eval 'foo'
|
4
|
+
end
|
5
|
+
|
6
|
+
def manual &block
|
7
|
+
foo = 'foo'
|
8
|
+
if block.arity > 0
|
9
|
+
yield foo
|
10
|
+
else
|
11
|
+
foo.instance_eval &block
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
benchmark 'Proc', :times => $times do
|
16
|
+
report '#yield_or_eval' do
|
17
|
+
yield_or_eval_test { length }
|
18
|
+
yield_or_eval_test { |foo| foo.length }
|
19
|
+
end
|
20
|
+
report 'manual arity check' do
|
21
|
+
manual { length }
|
22
|
+
manual { |foo| foo.length }
|
23
|
+
end
|
24
|
+
end
|
data/lib/rext/all.rb
CHANGED
data/lib/rext/date.rb
ADDED
@@ -0,0 +1,75 @@
|
|
1
|
+
|
2
|
+
require 'rext/module/helpers'
|
3
|
+
require 'rext/proc/helpers'
|
4
|
+
|
5
|
+
module Enumerable
|
6
|
+
|
7
|
+
##
|
8
|
+
# Proxy
|
9
|
+
#
|
10
|
+
# The enumerable proxy class is utilized to
|
11
|
+
# allow methods such as #group_by, #map, and others
|
12
|
+
# to provide a method call alternative to a block.
|
13
|
+
#
|
14
|
+
# For example words.group_by { |word| word.length } can
|
15
|
+
# be replaced by words.group_by_.length
|
16
|
+
#
|
17
|
+
# === See
|
18
|
+
#
|
19
|
+
# * Enumerable#proxy
|
20
|
+
#
|
21
|
+
|
22
|
+
class Proxy
|
23
|
+
instance_methods.each { |m| undef_method m unless m.match(/^__/) }
|
24
|
+
|
25
|
+
def initialize object, meth
|
26
|
+
@object, @method = object, meth
|
27
|
+
end
|
28
|
+
|
29
|
+
def method_missing meth, *args, &block
|
30
|
+
@object.__send__(@method) { |o| o.__send__(meth, *args, &block) }
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
##
|
35
|
+
# Shortcut for Proxy.new self, +meth+.
|
36
|
+
|
37
|
+
def proxy meth
|
38
|
+
Proxy.new self, meth
|
39
|
+
end
|
40
|
+
|
41
|
+
##
|
42
|
+
# Return a hash grouped by +block+.
|
43
|
+
#
|
44
|
+
# === Examples
|
45
|
+
#
|
46
|
+
# words = %w( just some foo bar )
|
47
|
+
# words.group_by { |word| word.length } # => {3=>["foo", "bar"], 4=>["just", "some"]}
|
48
|
+
# words.group_by { length } # => {3=>["foo", "bar"], 4=>["just", "some"]}
|
49
|
+
# words.group_by.length # => {3=>["foo", "bar"], 4=>["just", "some"]}
|
50
|
+
#
|
51
|
+
|
52
|
+
def group_by &block
|
53
|
+
return proxy(:group_by) unless block
|
54
|
+
inject({}) do |hash, value|
|
55
|
+
(hash[block.yield_or_eval(value)] ||= []) << value
|
56
|
+
hash
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
##
|
61
|
+
# Sexy Symbol#to_proc replacement for mapping enums.
|
62
|
+
#
|
63
|
+
# === Examples
|
64
|
+
#
|
65
|
+
# names = %w( tj scott joe bob )
|
66
|
+
# names.every.length.join # => 2533
|
67
|
+
# names.every.empty?.any? # => false
|
68
|
+
# names.every { length > 4 }.all? # => true
|
69
|
+
#
|
70
|
+
|
71
|
+
def every &block
|
72
|
+
block ? proxy(:map).instance_eval(&block) : proxy(:map)
|
73
|
+
end
|
74
|
+
|
75
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
|
2
|
+
class Hash
|
3
|
+
|
4
|
+
##
|
5
|
+
# Delete key-value pairs, returning the values found
|
6
|
+
# using the +keys+ passed. Aliased as extract!
|
7
|
+
#
|
8
|
+
# === Examples
|
9
|
+
#
|
10
|
+
# options = { :width => 25, :height => 100 }
|
11
|
+
# width, height = options.delete_at :width, :height
|
12
|
+
#
|
13
|
+
# width # => 25
|
14
|
+
# height # => 100
|
15
|
+
# options # => {}
|
16
|
+
#
|
17
|
+
|
18
|
+
def delete_at *keys
|
19
|
+
keys.map { |key| delete key }
|
20
|
+
end
|
21
|
+
alias :extract! :delete_at
|
22
|
+
|
23
|
+
end
|
data/lib/rext/hash.rb
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
|
2
|
+
class Integer
|
3
|
+
|
4
|
+
##
|
5
|
+
# Ordinalize turns a number into an ordinal string used to denote the
|
6
|
+
# position in an ordered sequence such as 1st, 2nd, 3rd, 4th.
|
7
|
+
#
|
8
|
+
# === Examples
|
9
|
+
#
|
10
|
+
# 1.ordinalize # => "1st"
|
11
|
+
# 2.ordinalize # => "2nd"
|
12
|
+
# 1002.ordinalize # => "1002nd"
|
13
|
+
# 1003.ordinalize # => "1003rd"
|
14
|
+
#
|
15
|
+
|
16
|
+
def ordinalize
|
17
|
+
if (11..13).include? self % 100
|
18
|
+
"#{self}th"
|
19
|
+
else
|
20
|
+
case self % 10
|
21
|
+
when 1 ; "#{self}st"
|
22
|
+
when 2 ; "#{self}nd"
|
23
|
+
when 3 ; "#{self}rd"
|
24
|
+
else "#{self}th"
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
data/lib/rext/module.rb
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
|
2
|
+
class Proc
|
3
|
+
|
4
|
+
##
|
5
|
+
# Yield or instance evaluate the +object+ passed
|
6
|
+
# based on this proc's arity.
|
7
|
+
#
|
8
|
+
# === Examples
|
9
|
+
#
|
10
|
+
# def foo &block
|
11
|
+
# block.yield_or_eval 'bar'
|
12
|
+
# end
|
13
|
+
#
|
14
|
+
# foo { |v| v.length } # => 3
|
15
|
+
# foo { length } # => 3
|
16
|
+
#
|
17
|
+
|
18
|
+
def yield_or_eval object
|
19
|
+
arity > 0 ? self.call(object) : object.instance_eval(&self)
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
data/lib/rext/proc.rb
ADDED
@@ -0,0 +1,43 @@
|
|
1
|
+
|
2
|
+
class Time
|
3
|
+
|
4
|
+
def to_time #:nodoc:
|
5
|
+
self
|
6
|
+
end
|
7
|
+
|
8
|
+
##
|
9
|
+
# Time in words since +time+ or now.
|
10
|
+
#
|
11
|
+
# === Examples
|
12
|
+
#
|
13
|
+
# 5.seconds.ago.in_words_since_now # => less than one minute
|
14
|
+
# 5.days.ago.in_words_since_now # => 5 days
|
15
|
+
# 1.month.ago.in_words_since_now # => 1 month
|
16
|
+
# 101.years.ago.in_words_since_now # => hundreds of years
|
17
|
+
#
|
18
|
+
# "the article was published #{article.created_at.in_words_since_now} ago"
|
19
|
+
# # => the article was published 15 minutes ago
|
20
|
+
#
|
21
|
+
|
22
|
+
def in_words_since time = Time.now
|
23
|
+
return if self > time
|
24
|
+
seconds = (time - self).to_i
|
25
|
+
# TODO: abstract this out
|
26
|
+
pluralize = lambda do |type|
|
27
|
+
n = seconds.send(:"to_#{type}s")
|
28
|
+
n == 1 ? "one #{type}" : "#{n} #{type}s"
|
29
|
+
end
|
30
|
+
case seconds
|
31
|
+
when 0..59 ; 'less than one minute'
|
32
|
+
when 1.minute..59.minutes ; pluralize[:minute]
|
33
|
+
when 1.hour..23.hours ; pluralize[:hour]
|
34
|
+
when 1.day..6.days ; pluralize[:day]
|
35
|
+
when 1.week..3.weeks ; pluralize[:week]
|
36
|
+
when 1.month..11.months ; pluralize[:month]
|
37
|
+
when 1.year..99.years ; pluralize[:year]
|
38
|
+
else 'hundreds of years'
|
39
|
+
end
|
40
|
+
end
|
41
|
+
alias :in_words_since_now :in_words_since
|
42
|
+
|
43
|
+
end
|
data/lib/rext/time.rb
ADDED
data/lib/rext/version.rb
CHANGED
data/rext.gemspec
CHANGED
@@ -2,15 +2,15 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{rext}
|
5
|
-
s.version = "0.0.
|
5
|
+
s.version = "0.0.2"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["TJ Holowaychuk"]
|
9
9
|
s.date = %q{2009-03-23}
|
10
10
|
s.description = %q{Ruby extensions}
|
11
11
|
s.email = %q{tj@vision-media.ca}
|
12
|
-
s.extra_rdoc_files = ["lib/rext/all.rb", "lib/rext/integer/time.rb", "lib/rext/integer.rb", "lib/rext/string/escape.rb", "lib/rext/string/helpers.rb", "lib/rext/string.rb", "lib/rext/version.rb", "lib/rext.rb", "README.rdoc", "tasks/docs.rake", "tasks/gemspec.rake", "tasks/spec.rake"]
|
13
|
-
s.files = ["History.rdoc", "lib/rext/all.rb", "lib/rext/integer/time.rb", "lib/rext/integer.rb", "lib/rext/string/escape.rb", "lib/rext/string/helpers.rb", "lib/rext/string.rb", "lib/rext/version.rb", "lib/rext.rb", "Manifest", "Rakefile", "README.rdoc", "spec/integer_spec.rb", "spec/spec_helper.rb", "spec/string_spec.rb", "tasks/docs.rake", "tasks/gemspec.rake", "tasks/spec.rake", "Todo.rdoc"
|
12
|
+
s.extra_rdoc_files = ["lib/rext/all.rb", "lib/rext/date/helpers.rb", "lib/rext/date.rb", "lib/rext/enumerable/helpers.rb", "lib/rext/enumerable.rb", "lib/rext/hash/helpers.rb", "lib/rext/hash.rb", "lib/rext/integer/helpers.rb", "lib/rext/integer/time.rb", "lib/rext/integer.rb", "lib/rext/module/helpers.rb", "lib/rext/module.rb", "lib/rext/proc/helpers.rb", "lib/rext/proc.rb", "lib/rext/string/escape.rb", "lib/rext/string/helpers.rb", "lib/rext/string.rb", "lib/rext/time/helpers.rb", "lib/rext/time.rb", "lib/rext/version.rb", "lib/rext.rb", "README.rdoc", "tasks/benchmark.rake", "tasks/docs.rake", "tasks/gemspec.rake", "tasks/spec.rake"]
|
13
|
+
s.files = ["benchmarks/enumerable.rb", "benchmarks/proc.rb", "History.rdoc", "lib/rext/all.rb", "lib/rext/date/helpers.rb", "lib/rext/date.rb", "lib/rext/enumerable/helpers.rb", "lib/rext/enumerable.rb", "lib/rext/hash/helpers.rb", "lib/rext/hash.rb", "lib/rext/integer/helpers.rb", "lib/rext/integer/time.rb", "lib/rext/integer.rb", "lib/rext/module/helpers.rb", "lib/rext/module.rb", "lib/rext/proc/helpers.rb", "lib/rext/proc.rb", "lib/rext/string/escape.rb", "lib/rext/string/helpers.rb", "lib/rext/string.rb", "lib/rext/time/helpers.rb", "lib/rext/time.rb", "lib/rext/version.rb", "lib/rext.rb", "Manifest", "Rakefile", "README.rdoc", "rext.gemspec", "spec/date_spec.rb", "spec/enumerable_spec.rb", "spec/hash_spec.rb", "spec/integer_spec.rb", "spec/module_spec.rb", "spec/spec_helper.rb", "spec/string_spec.rb", "spec/time_spec.rb", "tasks/benchmark.rake", "tasks/docs.rake", "tasks/gemspec.rake", "tasks/spec.rake", "Todo.rdoc"]
|
14
14
|
s.has_rdoc = true
|
15
15
|
s.homepage = %q{http://github.com/visionmedia/rext}
|
16
16
|
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Rext", "--main", "README.rdoc"]
|
data/spec/date_spec.rb
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
|
2
|
+
require 'rext/date'
|
3
|
+
|
4
|
+
describe Date do
|
5
|
+
describe "helpers" do
|
6
|
+
|
7
|
+
describe "#to_time" do
|
8
|
+
it "should convert to a Time instance" do
|
9
|
+
event = Date.parse('may 25th 1987')
|
10
|
+
event.to_time.should be_an_instance_of(Time)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
|
2
|
+
require 'rext/enumerable'
|
3
|
+
|
4
|
+
describe Enumerable do
|
5
|
+
|
6
|
+
describe "#every" do
|
7
|
+
it "should map a method call" do
|
8
|
+
list = %w( cookies icecream sugar )
|
9
|
+
list.every.length.should == [7, 8 ,5]
|
10
|
+
end
|
11
|
+
|
12
|
+
it "should allow mapping shortcuts using a block" do
|
13
|
+
people = []
|
14
|
+
people << mock('Person', :name => 'TJ')
|
15
|
+
people << mock('Person', :name => 'Scott')
|
16
|
+
people.every { name.length }.should == [2, 5]
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
describe "helpers" do
|
21
|
+
describe "#group_by" do
|
22
|
+
before :each do
|
23
|
+
@enum = 'foo', :bar, 1, 2, 3
|
24
|
+
@results = {
|
25
|
+
String => ['foo'],
|
26
|
+
Symbol => [:bar],
|
27
|
+
Fixnum => [1, 2, 3]
|
28
|
+
}
|
29
|
+
end
|
30
|
+
|
31
|
+
it "should group an enum" do
|
32
|
+
@enum.group_by { |v| v.class }.should == @results
|
33
|
+
end
|
34
|
+
|
35
|
+
it "should group using instance evaluated block" do
|
36
|
+
@enum.group_by { self.class }.should == @results
|
37
|
+
end
|
38
|
+
|
39
|
+
it "should group by method call" do
|
40
|
+
@enum.group_by.class.should == @results
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
data/spec/hash_spec.rb
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
|
2
|
+
require 'rext/hash'
|
3
|
+
|
4
|
+
describe Hash do
|
5
|
+
describe "helpers" do
|
6
|
+
|
7
|
+
describe "#delete_at" do
|
8
|
+
it "should delete several keys, returning their values when present" do
|
9
|
+
options = { :foo => 1, :bar => 2 }
|
10
|
+
foo, bar, does_not_exist = options.delete_at :foo, :bar, :does_not_exist
|
11
|
+
foo.should == 1
|
12
|
+
bar.should == 2
|
13
|
+
does_not_exist.should be_nil
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
end
|
data/spec/module_spec.rb
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
|
2
|
+
require 'rext/module'
|
3
|
+
|
4
|
+
describe Module do
|
5
|
+
describe "helpers" do
|
6
|
+
|
7
|
+
describe "#chain" do
|
8
|
+
it "should allow chaining via super" do
|
9
|
+
class Foo
|
10
|
+
def method_missing meth
|
11
|
+
if meth.to_s =~ /^say_(\w+)/
|
12
|
+
"said #{$1}"
|
13
|
+
else
|
14
|
+
super
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
class Foo
|
20
|
+
chain {
|
21
|
+
def method_missing meth
|
22
|
+
if meth.to_s =~ /^ask_for_(\w+)/
|
23
|
+
"asked for #{$1}"
|
24
|
+
else
|
25
|
+
super
|
26
|
+
end
|
27
|
+
end
|
28
|
+
}
|
29
|
+
end
|
30
|
+
|
31
|
+
Foo.new.ask_for_array.should == 'asked for array'
|
32
|
+
Foo.new.say_hello.should == 'said hello'
|
33
|
+
lambda { Foo.new.does_not_exist }.should raise_error(NoMethodError)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
end
|
data/spec/time_spec.rb
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
|
2
|
+
require 'rext/time'
|
3
|
+
|
4
|
+
describe Time do
|
5
|
+
describe "helpers" do
|
6
|
+
|
7
|
+
describe "#in_words_since" do
|
8
|
+
it "should convert time lost to words" do
|
9
|
+
event = Time.now - 5.seconds
|
10
|
+
event.in_words_since_now.should == 'less than one minute'
|
11
|
+
event -= 1.minute
|
12
|
+
event.in_words_since_now.should == 'one minute'
|
13
|
+
event -= 2.minutes
|
14
|
+
event.in_words_since_now.should == '3 minutes'
|
15
|
+
event -= 5.years
|
16
|
+
event.in_words_since_now.should == '5 years'
|
17
|
+
event -= 100.years
|
18
|
+
event.in_words_since_now.should == 'hundreds of years'
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
|
2
|
+
desc 'Run benchmark suites n TIMES, defaulting to 1000'
|
3
|
+
task :benchmark do
|
4
|
+
$times = ENV['TIMES'] || 1000
|
5
|
+
begin
|
6
|
+
require 'rext/all'
|
7
|
+
require 'rubygems'
|
8
|
+
require 'rgauge'
|
9
|
+
rescue LoadError
|
10
|
+
abort 'visionmedia-rgauge is required, grab it from github'
|
11
|
+
end
|
12
|
+
Dir['benchmarks/*.rb'].each { |f| load f }
|
13
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: visionmedia-rext
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- TJ Holowaychuk
|
@@ -21,38 +21,73 @@ extensions: []
|
|
21
21
|
|
22
22
|
extra_rdoc_files:
|
23
23
|
- lib/rext/all.rb
|
24
|
+
- lib/rext/date/helpers.rb
|
25
|
+
- lib/rext/date.rb
|
26
|
+
- lib/rext/enumerable/helpers.rb
|
27
|
+
- lib/rext/enumerable.rb
|
28
|
+
- lib/rext/hash/helpers.rb
|
29
|
+
- lib/rext/hash.rb
|
30
|
+
- lib/rext/integer/helpers.rb
|
24
31
|
- lib/rext/integer/time.rb
|
25
32
|
- lib/rext/integer.rb
|
33
|
+
- lib/rext/module/helpers.rb
|
34
|
+
- lib/rext/module.rb
|
35
|
+
- lib/rext/proc/helpers.rb
|
36
|
+
- lib/rext/proc.rb
|
26
37
|
- lib/rext/string/escape.rb
|
27
38
|
- lib/rext/string/helpers.rb
|
28
39
|
- lib/rext/string.rb
|
40
|
+
- lib/rext/time/helpers.rb
|
41
|
+
- lib/rext/time.rb
|
29
42
|
- lib/rext/version.rb
|
30
43
|
- lib/rext.rb
|
31
44
|
- README.rdoc
|
45
|
+
- tasks/benchmark.rake
|
32
46
|
- tasks/docs.rake
|
33
47
|
- tasks/gemspec.rake
|
34
48
|
- tasks/spec.rake
|
35
49
|
files:
|
50
|
+
- benchmarks/enumerable.rb
|
51
|
+
- benchmarks/proc.rb
|
36
52
|
- History.rdoc
|
37
53
|
- lib/rext/all.rb
|
54
|
+
- lib/rext/date/helpers.rb
|
55
|
+
- lib/rext/date.rb
|
56
|
+
- lib/rext/enumerable/helpers.rb
|
57
|
+
- lib/rext/enumerable.rb
|
58
|
+
- lib/rext/hash/helpers.rb
|
59
|
+
- lib/rext/hash.rb
|
60
|
+
- lib/rext/integer/helpers.rb
|
38
61
|
- lib/rext/integer/time.rb
|
39
62
|
- lib/rext/integer.rb
|
63
|
+
- lib/rext/module/helpers.rb
|
64
|
+
- lib/rext/module.rb
|
65
|
+
- lib/rext/proc/helpers.rb
|
66
|
+
- lib/rext/proc.rb
|
40
67
|
- lib/rext/string/escape.rb
|
41
68
|
- lib/rext/string/helpers.rb
|
42
69
|
- lib/rext/string.rb
|
70
|
+
- lib/rext/time/helpers.rb
|
71
|
+
- lib/rext/time.rb
|
43
72
|
- lib/rext/version.rb
|
44
73
|
- lib/rext.rb
|
45
74
|
- Manifest
|
46
75
|
- Rakefile
|
47
76
|
- README.rdoc
|
77
|
+
- rext.gemspec
|
78
|
+
- spec/date_spec.rb
|
79
|
+
- spec/enumerable_spec.rb
|
80
|
+
- spec/hash_spec.rb
|
48
81
|
- spec/integer_spec.rb
|
82
|
+
- spec/module_spec.rb
|
49
83
|
- spec/spec_helper.rb
|
50
84
|
- spec/string_spec.rb
|
85
|
+
- spec/time_spec.rb
|
86
|
+
- tasks/benchmark.rake
|
51
87
|
- tasks/docs.rake
|
52
88
|
- tasks/gemspec.rake
|
53
89
|
- tasks/spec.rake
|
54
90
|
- Todo.rdoc
|
55
|
-
- rext.gemspec
|
56
91
|
has_rdoc: true
|
57
92
|
homepage: http://github.com/visionmedia/rext
|
58
93
|
post_install_message:
|