xqsr3 0.15.1 → 0.15.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 910334beb91320d62615b7f02f9464022938e516
4
- data.tar.gz: df68d9b8d9959735425d6c08b49aafa3df3e0af7
3
+ metadata.gz: 8bac00397c53de860cb2094d8b0d0294ac2df4d0
4
+ data.tar.gz: 97b0e53955c9700186216d9f8e79a3788151dbc7
5
5
  SHA512:
6
- metadata.gz: 8b9e4d8e41e5d42bff485838be0ac51e74994e0a06e66edd416362ace55fe878021545f2313e531e629274f85b146bab0c5f41df74d12211367097974679ecb8
7
- data.tar.gz: f8e8e8ff15521a4afa43ebee7b155c9f9a3b2982a990eec0c2bc684b2cb52a656203682cf77696aea4450465e12dc1c59f8f8521acd78e0761a7970e039c10db
6
+ metadata.gz: 794f86ebad8a99416f0b43f85bb55604d40b85887819844aba99632ce1fe3151cafbbc831c356a65019ee8463da54b33256456ee0f0f055da8758bf7f91d2e1f
7
+ data.tar.gz: 2b6c1dee8c9d5b697e32a228ac8b371757e32a2f73e1a24d4832233aae32a0f3543595d15314119e5ec6f7a21573d44b8219df415975110e16d2d8bdf35c48a2
@@ -5,7 +5,7 @@
5
5
  # Purpose: Adds a Integer 'overload' to the Kernel module
6
6
  #
7
7
  # Created: 21st November 2017
8
- # Updated: 21st November 2017
8
+ # Updated: 22nd November 2017
9
9
  #
10
10
  # Home: http://github.com/synesissoftware/xqsr3
11
11
  #
@@ -54,6 +54,22 @@ module Kernel
54
54
 
55
55
  alias xqsr3_Integer_original_method Integer
56
56
 
57
+ # A monkey-patch extension of +Kernel#Integer+ with +options+
58
+ #
59
+ # === Signature
60
+ #
61
+ # * *Parameters*:
62
+ # - +arg+:: The argument to be converted (to +Fixnum+ or +Bignum+)
63
+ # - +base+:: A value of 0, or between 2 and 36. Defaults to 0
64
+ # - +options+:: An options hash, containing any of the following
65
+ # options
66
+ #
67
+ # * *Options*:
68
+ # - +:default+:: A default value to be used when +arg+ is +nil+ or
69
+ # cannot be converted by (the original) +Kernel#Integer+
70
+ # - +:nil+:: Returns +nil+ if +arg+ is +nil+ or cannot be
71
+ # converted by (the original) +Kernel#Integer+. Ignored if
72
+ # +:default+ is specified
57
73
  def Integer(arg, base = 0, **options)
58
74
 
59
75
  if options.has_key?(:default) || options[:nil]
@@ -75,6 +91,8 @@ module Kernel
75
91
  xqsr3_Integer_original_method arg, base
76
92
  end
77
93
  end
94
+
95
+ private :xqsr3_Integer_original_method
78
96
  end # module Kernel
79
97
 
80
98
  # ############################## end of file ############################# #
data/lib/xqsr3/version.rb CHANGED
@@ -50,7 +50,7 @@
50
50
  module Xqsr3
51
51
 
52
52
  # Current version of the Xqsr3 library
53
- VERSION = '0.15.1'
53
+ VERSION = '0.15.2'
54
54
 
55
55
  private
56
56
  VERSION_PARTS_ = VERSION.split(/[.]/).collect { |n| n.to_i } # :nodoc:
@@ -60,6 +60,16 @@ class Test_X_Kernel_Integer < Test::Unit::TestCase
60
60
  assert_equal :sentinel, Integer('plus 1', default: :sentinel)
61
61
  assert_equal :sentinel, Integer('/0', default: :sentinel)
62
62
  end
63
+
64
+ def test_Integer_with_invalid_values_returning_sentinel_of_nil
65
+
66
+ assert_equal nil, Integer(nil, default: nil)
67
+ assert_equal nil, Integer('', default: nil)
68
+ assert_equal nil, Integer('abc', default: nil)
69
+ assert_equal nil, Integer('zero', default: nil)
70
+ assert_equal nil, Integer('plus 1', default: nil)
71
+ assert_equal nil, Integer('/0', default: nil)
72
+ end
63
73
  end
64
74
 
65
75
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xqsr3
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.15.1
4
+ version: 0.15.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Wilson