xqsr3 0.15.1 → 0.15.2

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.
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