marcandre-backports 1.6.7 → 1.6.8
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION.yml +1 -1
- data/lib/backports/symbol.rb +21 -4
- data/test/symbol_test.rb +23 -0
- metadata +3 -1
data/VERSION.yml
CHANGED
data/lib/backports/symbol.rb
CHANGED
@@ -4,17 +4,34 @@ class Symbol
|
|
4
4
|
Proc.new { |*args| args.shift.__send__(self, *args) }
|
5
5
|
end unless :to_proc.respond_to?(:to_proc)
|
6
6
|
|
7
|
-
|
8
|
-
|
7
|
+
# Standard in ruby 1.9. See official documentation[http://ruby-doc.org/core-1.9/classes/Symbol.html]
|
8
|
+
[ [%w(capitalize downcase next succ swapcase upcase), {:after => ".to_sym"}],
|
9
9
|
[%w(=~ [] empty? length match size), {}]
|
10
10
|
].each { |methods, options| methods.each do |method|
|
11
11
|
module_eval <<-end_eval
|
12
12
|
def #{method}(*args)
|
13
|
-
#{options[:before]}
|
14
13
|
to_s.#{method}(*args)#{options[:after]}
|
15
14
|
end unless method_defined? :#{method}
|
16
15
|
end_eval
|
17
16
|
end }
|
18
17
|
|
19
|
-
|
18
|
+
# Standard in ruby 1.9. See official documentation[http://ruby-doc.org/core-1.9/classes/Symbol.html]
|
19
|
+
def <=>(with)
|
20
|
+
return nil unless with.is_a? Symbol
|
21
|
+
to_s <=> with.to_s
|
22
|
+
end unless method_defined? :"<=>"
|
23
|
+
|
24
|
+
# Standard in ruby 1.9. See official documentation[http://ruby-doc.org/core-1.9/classes/Symbol.html]
|
25
|
+
def casecmp(with)
|
26
|
+
return nil unless with.is_a? Symbol
|
27
|
+
to_s.casecmp(with.to_s)
|
28
|
+
end unless method_defined? :casecmp
|
29
|
+
|
30
|
+
# Standard in ruby 1.9. See official documentation[http://ruby-doc.org/core-1.9/classes/Symbol.html]
|
31
|
+
unless ancestors.include? Comparable
|
32
|
+
alias_method :dont_override_equal_please, :==
|
33
|
+
include Comparable
|
34
|
+
alias_method :==, :dont_override_equal_please
|
35
|
+
end
|
36
|
+
|
20
37
|
end
|
data/test/symbol_test.rb
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class SymbolTest < Test::Unit::TestCase
|
4
|
+
context "Symbol" do
|
5
|
+
context "comparison" do
|
6
|
+
should "work as expected" do
|
7
|
+
assert_equal false, :abc == :def
|
8
|
+
assert_equal true, :abc == :abc
|
9
|
+
assert_equal false, :abc == "abc"
|
10
|
+
assert_equal false, :abc > :def
|
11
|
+
assert_equal true, :abc < :def
|
12
|
+
assert_raise(ArgumentError) {:abc < "def"}
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
context "string ops" do
|
17
|
+
should "work as expected" do
|
18
|
+
assert_equal :HELLO, :hello.upcase
|
19
|
+
assert_equal 5, :hello.length
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: marcandre-backports
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.6.
|
4
|
+
version: 1.6.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- "Marc-Andr\xC3\xA9 Lafortune"
|
@@ -60,6 +60,7 @@ files:
|
|
60
60
|
- test/object_test.rb
|
61
61
|
- test/regexp_test.rb
|
62
62
|
- test/string_test.rb
|
63
|
+
- test/symbol_test.rb
|
63
64
|
- test/test_helper.rb
|
64
65
|
has_rdoc: true
|
65
66
|
homepage: http://github.com/marcandre/backports
|
@@ -105,4 +106,5 @@ test_files:
|
|
105
106
|
- test/object_test.rb
|
106
107
|
- test/regexp_test.rb
|
107
108
|
- test/string_test.rb
|
109
|
+
- test/symbol_test.rb
|
108
110
|
- test/test_helper.rb
|