is_same 0.0.4 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (4) hide show
  1. data/Gemfile +7 -0
  2. data/README.rdoc +5 -2
  3. data/lib/is_same/core_ext.rb +55 -29
  4. metadata +38 -3
data/Gemfile ADDED
@@ -0,0 +1,7 @@
1
+ source 'http://rubygems.org'
2
+
3
+ group :development, :test do
4
+ gem 'rdoc'
5
+ gem 'rspec'
6
+ gem 'rspec-core'
7
+ end
data/README.rdoc CHANGED
@@ -27,7 +27,10 @@ Supports Regexp.
27
27
  String.is_same?(/tring/) # Same as: /tring/.match(String.name)
28
28
  "String".is_same?(String) # Same as: "String" == String.name
29
29
 
30
- "1".is_same?(1) # Same as: 1.to_i == 1
31
- 0.001.is_same?("0.001") # Same as: 0.001 == "0.001".to_f
30
+ "1".is_same?(1) # Same as: "1" == 1.to_s
31
+ 0.001.is_same?("0.001") # Same as: 0.001.to_s == "0.001"
32
32
  123456.is_same?(/234/) # Same as: /234/.match(123456.to_s)
33
33
 
34
+
35
+ More examples can be seen in Rspec tests:
36
+ * https://github.com/tione/is_same/tree/master/spec
@@ -1,55 +1,81 @@
1
- class Object
1
+ class BasicObject
2
2
  def is_same?(object)
3
- return self <=> object
3
+ self == object
4
4
  end
5
5
  end
6
- class String
6
+
7
+ class Class
7
8
  def is_same?(object)
8
9
  case object
9
- when String; return self == object
10
- when Regexp; return object.match(self)
11
- when Class; return object.is_same?(self)
12
- else; return self == object.to_s
10
+ when String
11
+ object == self.name
12
+ when Symbol
13
+ object == self.name.to_sym
14
+ when Regexp
15
+ !!object.match(self.name)
16
+ else
17
+ super
13
18
  end
14
19
  end
15
20
  end
16
- class Symbol
21
+
22
+ class Numeric
17
23
  def is_same?(object)
18
24
  case object
19
- when Symbol; return self == object
20
- else; self.to_s.is_same?(object)
25
+ when String
26
+ object == self.to_s
27
+ when Symbol
28
+ object == self.to_s.to_sym
29
+ when Regexp
30
+ !!object.match(self.to_s)
31
+ else
32
+ super
21
33
  end
22
34
  end
23
35
  end
24
- class Class
36
+
37
+ class Regexp
25
38
  def is_same?(object)
26
39
  case object
27
- when Class; return self == object
28
- else; return self.name.is_same?(object)
40
+ when Class
41
+ !!self.match(object.name)
42
+ when Numeric, String, Symbol
43
+ !!self.match(object.to_s)
44
+ else
45
+ super
29
46
  end
30
47
  end
31
48
  end
32
- class Regexp
49
+
50
+ class String
33
51
  def is_same?(object)
34
52
  case object
35
- when Regexp; return object.match(self.to_s)
36
- else; return object.is_same?(self)
37
- end
38
- end
39
- end
40
- class Integer
41
- def is_same?(object)
42
- case
43
- when object.respond_to?(:to_i); return self == object.to_i
44
- else; return self.to_s.is_same?(object)
53
+ when Class
54
+ self == object.name
55
+ when Numeric, Symbol
56
+ self == object.to_s
57
+ when Regexp
58
+ !!object.match(self)
59
+ else
60
+ super
45
61
  end
46
62
  end
47
63
  end
48
- class Float
64
+
65
+ class Symbol
49
66
  def is_same?(object)
50
- case
51
- when object.respond_to?(:to_f); return self == object.to_f
52
- else; return self.to_s.is_same?(object)
67
+ case object
68
+ when Class
69
+ self == object.name.to_sym
70
+ when Numeric
71
+ self == object.to_s.to_sym
72
+ when Regexp
73
+ !!object.match(self.to_s)
74
+ when String
75
+ self == object.to_sym
76
+ else
77
+ super
53
78
  end
79
+
54
80
  end
55
- end
81
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: is_same
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,8 +9,41 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-01-12 00:00:00.000000000Z
13
- dependencies: []
12
+ date: 2012-02-16 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rspec
16
+ requirement: &23805580 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: *23805580
25
+ - !ruby/object:Gem::Dependency
26
+ name: rspec-core
27
+ requirement: &23805120 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: *23805120
36
+ - !ruby/object:Gem::Dependency
37
+ name: rdoc
38
+ requirement: &23804700 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ type: :development
45
+ prerelease: false
46
+ version_requirements: *23804700
14
47
  description: To evaluate if different kind of objects have the same value or meaning,
15
48
  comparing objects without the need to worry about their type. Supports regexp.
16
49
  email: margus@tione.eu
@@ -19,6 +52,7 @@ extensions: []
19
52
  extra_rdoc_files: []
20
53
  files:
21
54
  - README.rdoc
55
+ - Gemfile
22
56
  - lib/is_same/core_ext.rb
23
57
  - lib/is_same.rb
24
58
  homepage: https://github.com/tione/is_same
@@ -46,3 +80,4 @@ signing_key:
46
80
  specification_version: 3
47
81
  summary: Compare objects without the need to worry about their type.
48
82
  test_files: []
83
+ has_rdoc: