ruby-rails-extensions 1.1.1 → 2.0.0

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 (59) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -0
  3. data/lib/ruby-rails-extensions/extensions/all_keys.rb +3 -5
  4. data/lib/ruby-rails-extensions/extensions/all_values.rb +3 -5
  5. data/lib/ruby-rails-extensions/extensions/any_key.rb +3 -5
  6. data/lib/ruby-rails-extensions/extensions/any_value.rb +3 -5
  7. data/lib/ruby-rails-extensions/extensions/assign_nil.rb +51 -56
  8. data/lib/ruby-rails-extensions/extensions/clean_string.rb +22 -30
  9. data/lib/ruby-rails-extensions/extensions/compact_blank_join.rb +6 -8
  10. data/lib/ruby-rails-extensions/extensions/compact_map.rb +11 -15
  11. data/lib/ruby-rails-extensions/extensions/current_day.rb +3 -5
  12. data/lib/ruby-rails-extensions/extensions/current_month.rb +6 -10
  13. data/lib/ruby-rails-extensions/extensions/current_week.rb +6 -10
  14. data/lib/ruby-rails-extensions/extensions/day_of_week.rb +6 -10
  15. data/lib/ruby-rails-extensions/extensions/display_military.rb +6 -10
  16. data/lib/ruby-rails-extensions/extensions/display_user.rb +9 -15
  17. data/lib/ruby-rails-extensions/extensions/find_bang.rb +7 -11
  18. data/lib/ruby-rails-extensions/extensions/find_dupes.rb +8 -10
  19. data/lib/ruby-rails-extensions/extensions/first_dupe.rb +4 -6
  20. data/lib/ruby-rails-extensions/extensions/google_format.rb +3 -5
  21. data/lib/ruby-rails-extensions/extensions/hash_only.rb +16 -20
  22. data/lib/ruby-rails-extensions/extensions/humanize_symbol.rb +2 -4
  23. data/lib/ruby-rails-extensions/extensions/in_utc.rb +6 -10
  24. data/lib/ruby-rails-extensions/extensions/input.rb +6 -10
  25. data/lib/ruby-rails-extensions/extensions/month_and_year.rb +3 -5
  26. data/lib/ruby-rails-extensions/extensions/month_year.rb +3 -5
  27. data/lib/ruby-rails-extensions/extensions/no_keys.rb +3 -5
  28. data/lib/ruby-rails-extensions/extensions/no_values.rb +3 -5
  29. data/lib/ruby-rails-extensions/extensions/only_some.rb +16 -18
  30. data/lib/ruby-rails-extensions/extensions/overlaps.rb +5 -9
  31. data/lib/ruby-rails-extensions/extensions/pipe.rb +6 -10
  32. data/lib/ruby-rails-extensions/extensions/presence_bang.rb +9 -11
  33. data/lib/ruby-rails-extensions/extensions/quarter_dates.rb +28 -34
  34. data/lib/ruby-rails-extensions/extensions/range_add.rb +36 -38
  35. data/lib/ruby-rails-extensions/extensions/range_multiply.rb +36 -38
  36. data/lib/ruby-rails-extensions/extensions/remove_reserved_keywords.rb +18 -20
  37. data/lib/ruby-rails-extensions/extensions/safe_parse.rb +15 -21
  38. data/lib/ruby-rails-extensions/extensions/select_present.rb +2 -6
  39. data/lib/ruby-rails-extensions/extensions/select_present_join.rb +1 -3
  40. data/lib/ruby-rails-extensions/extensions/set_to_sentence.rb +2 -4
  41. data/lib/ruby-rails-extensions/extensions/to_bool.rb +14 -24
  42. data/lib/ruby-rails-extensions/extensions/to_dec.rb +9 -15
  43. data/lib/ruby-rails-extensions/extensions/to_i.rb +6 -10
  44. data/lib/ruby-rails-extensions/extensions/to_local.rb +8 -12
  45. data/lib/ruby-rails-extensions/extensions/to_negative_i.rb +22 -28
  46. data/lib/ruby-rails-extensions/extensions/to_nonzero_i.rb +22 -28
  47. data/lib/ruby-rails-extensions/extensions/to_or_sentence.rb +5 -9
  48. data/lib/ruby-rails-extensions/extensions/to_positive_i.rb +22 -28
  49. data/lib/ruby-rails-extensions/extensions/to_sort_i.rb +5 -11
  50. data/lib/ruby-rails-extensions/extensions/to_x.rb +9 -15
  51. data/lib/ruby-rails-extensions/extensions/todays_date.rb +9 -12
  52. data/lib/ruby-rails-extensions/extensions/uniq_map.rb +13 -15
  53. data/lib/ruby-rails-extensions/extensions/usd_to_f.rb +9 -15
  54. data/lib/ruby-rails-extensions/extensions/usd_to_i.rb +6 -10
  55. data/lib/ruby-rails-extensions/extensions/weighted_sum.rb +16 -18
  56. data/lib/ruby-rails-extensions/extensions/yesno.rb +9 -15
  57. data/lib/ruby-rails-extensions/extensions/zero_range.rb +14 -16
  58. data/lib/ruby-rails-extensions/version.rb +1 -1
  59. metadata +2 -2
@@ -3,45 +3,35 @@
3
3
  require 'forwardable'
4
4
 
5
5
  TrueClass.class_eval do
6
- unless method_defined?(:to_bool)
7
- # :nodoc:
8
- def to_bool
9
- true
10
- end
6
+ # :nodoc:
7
+ def to_bool
8
+ true
11
9
  end
12
10
  end
13
11
 
14
12
  FalseClass.class_eval do
15
- unless method_defined?(:to_bool)
16
- # :nodoc:
17
- def to_bool
18
- false
19
- end
13
+ # :nodoc:
14
+ def to_bool
15
+ false
20
16
  end
21
17
  end
22
18
 
23
19
  NilClass.class_eval do
24
- unless method_defined?(:to_bool)
25
- # :nodoc:
26
- def to_bool
27
- false
28
- end
20
+ # :nodoc:
21
+ def to_bool
22
+ false
29
23
  end
30
24
  end
31
25
 
32
26
  String.class_eval do
33
- unless method_defined?(:to_bool)
34
- # :nodoc:
35
- def to_bool
36
- match?(/^(true|1|t|y|yes)$/i)
37
- end
27
+ # :nodoc:
28
+ def to_bool
29
+ match?(/^(true|1|t|y|yes)$/i)
38
30
  end
39
31
  end
40
32
 
41
33
  Numeric.class_eval do
42
- unless method_defined?(:to_bool)
43
- extend Forwardable
34
+ extend Forwardable
44
35
 
45
- def_delegators :to_s, :to_bool
46
- end
36
+ def_delegators :to_s, :to_bool
47
37
  end
@@ -1,28 +1,22 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  NilClass.class_eval do
4
- unless method_defined?(:to_dec)
5
- # :nodoc:
6
- def to_dec(*_args)
7
- nil
8
- end
4
+ # :nodoc:
5
+ def to_dec(*_args)
6
+ nil
9
7
  end
10
8
  end
11
9
 
12
10
  Numeric.class_eval do
13
- unless method_defined?(:to_dec)
14
- # :nodoc:
15
- def to_dec(p = 4)
16
- (to_f / 100.0).round(p)
17
- end
11
+ # :nodoc:
12
+ def to_dec(p = 4)
13
+ (to_f / 100.0).round(p)
18
14
  end
19
15
  end
20
16
 
21
17
  String.class_eval do
22
- unless method_defined?(:to_dec)
23
- # :nodoc:
24
- def to_dec(p = 4)
25
- (to_f / 100.0).round(p)
26
- end
18
+ # :nodoc:
19
+ def to_dec(p = 4)
20
+ (to_f / 100.0).round(p)
27
21
  end
28
22
  end
@@ -1,19 +1,15 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  TrueClass.class_eval do
4
- unless method_defined?(:to_i)
5
- # :nodoc:
6
- def to_i
7
- 1
8
- end
4
+ # :nodoc:
5
+ def to_i
6
+ 1
9
7
  end
10
8
  end
11
9
 
12
10
  FalseClass.class_eval do
13
- unless method_defined?(:to_i)
14
- # :nodoc:
15
- def to_i
16
- 0
17
- end
11
+ # :nodoc:
12
+ def to_i
13
+ 0
18
14
  end
19
15
  end
@@ -5,22 +5,18 @@ if defined?(ActiveSupport::TimeWithZone)
5
5
  require 'forwardable'
6
6
 
7
7
  Time.class_eval do
8
- unless method_defined?(:to_local)
9
- extend Forwardable
8
+ extend Forwardable
10
9
 
11
- def_delegators :to_datetime, :to_local
12
- end
10
+ def_delegators :to_datetime, :to_local
13
11
  end
14
12
 
15
13
  DateTime.class_eval do
16
- unless method_defined?(:to_local)
17
- # Converts to an Eastern time zone
18
- #
19
- # @return [DateTime]
20
- #
21
- def to_local
22
- in_time_zone(RubyRailsExtensions.configuration.default_time_zone || 'Eastern Time (US & Canada)').to_datetime
23
- end
14
+ # Converts to an Eastern time zone
15
+ #
16
+ # @return [DateTime]
17
+ #
18
+ def to_local
19
+ in_time_zone(RubyRailsExtensions.configuration.default_time_zone || 'Eastern Time (US & Canada)').to_datetime
24
20
  end
25
21
  end
26
22
  end
@@ -1,45 +1,39 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  String.class_eval do
4
- unless method_defined?(:to_negative_i)
5
- # Calls `to_i` and returns the value if it is negative
6
- #
7
- # @return [Integer, Nil]
8
- #
9
- def to_negative_i
10
- val = to_i
4
+ # Calls `to_i` and returns the value if it is negative
5
+ #
6
+ # @return [Integer, Nil]
7
+ #
8
+ def to_negative_i
9
+ val = to_i
11
10
 
12
- return unless val.negative?
11
+ return unless val.negative?
13
12
 
14
- val
15
- end
13
+ val
16
14
  end
17
15
  end
18
16
 
19
17
  Numeric.class_eval do
20
- unless method_defined?(:to_negative_i)
21
- # Calls `to_i` and returns the value if it is negative
22
- #
23
- # @return [Integer, Nil]
24
- #
25
- def to_negative_i
26
- val = to_i
18
+ # Calls `to_i` and returns the value if it is negative
19
+ #
20
+ # @return [Integer, Nil]
21
+ #
22
+ def to_negative_i
23
+ val = to_i
27
24
 
28
- return unless val.negative?
25
+ return unless val.negative?
29
26
 
30
- val
31
- end
27
+ val
32
28
  end
33
29
  end
34
30
 
35
31
  NilClass.class_eval do
36
- unless method_defined?(:to_negative_i)
37
- # Calls `to_i` and returns the value if it is negative
38
- #
39
- # @return [Nil]
40
- #
41
- def to_negative_i
42
- nil
43
- end
32
+ # Calls `to_i` and returns the value if it is negative
33
+ #
34
+ # @return [Nil]
35
+ #
36
+ def to_negative_i
37
+ nil
44
38
  end
45
39
  end
@@ -1,45 +1,39 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  String.class_eval do
4
- unless method_defined?(:to_nonzero_i)
5
- # Calls `to_i` and returns the value if it is nonzero
6
- #
7
- # @return [Integer, Nil]
8
- #
9
- def to_nonzero_i
10
- val = to_i
4
+ # Calls `to_i` and returns the value if it is nonzero
5
+ #
6
+ # @return [Integer, Nil]
7
+ #
8
+ def to_nonzero_i
9
+ val = to_i
11
10
 
12
- return if val.zero?
11
+ return if val.zero?
13
12
 
14
- val
15
- end
13
+ val
16
14
  end
17
15
  end
18
16
 
19
17
  Numeric.class_eval do
20
- unless method_defined?(:to_nonzero_i)
21
- # Calls `to_i` and returns the value if it is nonzero
22
- #
23
- # @return [Integer, Nil]
24
- #
25
- def to_nonzero_i
26
- val = to_i
18
+ # Calls `to_i` and returns the value if it is nonzero
19
+ #
20
+ # @return [Integer, Nil]
21
+ #
22
+ def to_nonzero_i
23
+ val = to_i
27
24
 
28
- return if val.zero?
25
+ return if val.zero?
29
26
 
30
- val
31
- end
27
+ val
32
28
  end
33
29
  end
34
30
 
35
31
  NilClass.class_eval do
36
- unless method_defined?(:to_nonzero_i)
37
- # Calls `to_i` and returns the value if it is nonzero
38
- #
39
- # @return [Integer, Nil]
40
- #
41
- def to_nonzero_i
42
- nil
43
- end
32
+ # Calls `to_i` and returns the value if it is nonzero
33
+ #
34
+ # @return [Integer, Nil]
35
+ #
36
+ def to_nonzero_i
37
+ nil
44
38
  end
45
39
  end
@@ -4,18 +4,14 @@ require 'forwardable'
4
4
  require 'set'
5
5
 
6
6
  Array.class_eval do
7
- unless method_defined?(:to_or_sentence)
8
- # @return [String]
9
- def to_or_sentence
10
- to_sentence(two_words_connector: ' or ', last_word_connector: ', or ')
11
- end
7
+ # @return [String]
8
+ def to_or_sentence
9
+ to_sentence(two_words_connector: ' or ', last_word_connector: ', or ')
12
10
  end
13
11
  end
14
12
 
15
13
  Set.class_eval do
16
- unless method_defined?(:to_or_sentence)
17
- extend Forwardable
14
+ extend Forwardable
18
15
 
19
- def_delegators :to_a, :to_or_sentence
20
- end
16
+ def_delegators :to_a, :to_or_sentence
21
17
  end
@@ -1,45 +1,39 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  String.class_eval do
4
- unless method_defined?(:to_positive_i)
5
- # Calls `to_i` and returns the value if it is positive
6
- #
7
- # @return [Integer, Nil]
8
- #
9
- def to_positive_i
10
- val = to_i
4
+ # Calls `to_i` and returns the value if it is positive
5
+ #
6
+ # @return [Integer, Nil]
7
+ #
8
+ def to_positive_i
9
+ val = to_i
11
10
 
12
- return unless val.positive?
11
+ return unless val.positive?
13
12
 
14
- val
15
- end
13
+ val
16
14
  end
17
15
  end
18
16
 
19
17
  Numeric.class_eval do
20
- unless method_defined?(:to_positive_i)
21
- # Calls `to_i` and returns the value if it is positive
22
- #
23
- # @return [Integer, Nil]
24
- #
25
- def to_positive_i
26
- val = to_i
18
+ # Calls `to_i` and returns the value if it is positive
19
+ #
20
+ # @return [Integer, Nil]
21
+ #
22
+ def to_positive_i
23
+ val = to_i
27
24
 
28
- return unless val.positive?
25
+ return unless val.positive?
29
26
 
30
- val
31
- end
27
+ val
32
28
  end
33
29
  end
34
30
 
35
31
  NilClass.class_eval do
36
- unless method_defined?(:to_positive_i)
37
- # Calls `to_i` and returns the value if it is positive
38
- #
39
- # @return [Integer, Nil]
40
- #
41
- def to_positive_i
42
- nil
43
- end
32
+ # Calls `to_i` and returns the value if it is positive
33
+ #
34
+ # @return [Integer, Nil]
35
+ #
36
+ def to_positive_i
37
+ nil
44
38
  end
45
39
  end
@@ -1,22 +1,16 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  TrueClass.class_eval do
4
- unless method_defined?(:to_sort_i)
5
- alias_method :to_sort_i, :to_i
6
- end
4
+ alias_method :to_sort_i, :to_i
7
5
  end
8
6
 
9
7
  FalseClass.class_eval do
10
- unless method_defined?(:to_sort_i)
11
- alias_method :to_sort_i, :to_i
12
- end
8
+ alias_method :to_sort_i, :to_i
13
9
  end
14
10
 
15
11
  NilClass.class_eval do
16
- unless method_defined?(:to_sort_i)
17
- # :nodoc:
18
- def to_sort_i
19
- -1
20
- end
12
+ # :nodoc:
13
+ def to_sort_i
14
+ -1
21
15
  end
22
16
  end
@@ -1,28 +1,22 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  TrueClass.class_eval do
4
- unless method_defined?(:to_x)
5
- # :nodoc:
6
- def to_x(*_args)
7
- 'X'
8
- end
4
+ # :nodoc:
5
+ def to_x(*_args)
6
+ 'X'
9
7
  end
10
8
  end
11
9
 
12
10
  FalseClass.class_eval do
13
- unless method_defined?(:to_x)
14
- # :nodoc:
15
- def to_x(unless_true = '')
16
- unless_true
17
- end
11
+ # :nodoc:
12
+ def to_x(unless_true = '')
13
+ unless_true
18
14
  end
19
15
  end
20
16
 
21
17
  NilClass.class_eval do
22
- unless method_defined?(:to_x)
23
- # :nodoc:
24
- def to_x(unless_true = nil)
25
- unless_true
26
- end
18
+ # :nodoc:
19
+ def to_x(unless_true = nil)
20
+ unless_true
27
21
  end
28
22
  end
@@ -1,17 +1,14 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- if defined?(ActiveSupport::TimeWithZone) && Time.method_defined?(:to_local)
4
- Date.class_eval do
5
- class << self
6
- unless method_defined?(:todays_date)
7
- # Returns today according to Eastern time
8
- #
9
- # @return [Date]
10
- #
11
- def todays_date
12
- Time.zone.now.to_local.to_date
13
- end
14
- end
3
+ # Requires `ActiveSupport::TimeWithZone` and `Time#to_local`
4
+ Date.class_eval do
5
+ class << self
6
+ # Returns today according to Eastern time
7
+ #
8
+ # @return [Date]
9
+ #
10
+ def todays_date
11
+ Time.zone.now.to_local.to_date
15
12
  end
16
13
  end
17
14
  end
@@ -1,25 +1,23 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  Array.class_eval do
4
- unless method_defined?(:uniq_map)
5
- # Same as `my_array.map(&block).uniq`
6
- #
7
- # @return [Array, Enumerable]
8
- #
9
- def uniq_map
10
- return to_enum(:uniq_map) unless block_given?
4
+ # Same as `my_array.map(&block).uniq`
5
+ #
6
+ # @return [Array, Enumerable]
7
+ #
8
+ def uniq_map
9
+ return to_enum(:uniq_map) unless block_given?
11
10
 
12
- results = []
11
+ results = []
13
12
 
14
- each do |*args|
15
- result = yield(*args)
13
+ each do |*args|
14
+ result = yield(*args)
16
15
 
17
- next if results.include?(result)
16
+ next if results.include?(result)
18
17
 
19
- results.push(result)
20
- end
21
-
22
- return results
18
+ results.push(result)
23
19
  end
20
+
21
+ return results
24
22
  end
25
23
  end
@@ -1,28 +1,22 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  NilClass.class_eval do
4
- unless method_defined?(:usd_to_f)
5
- # :nodoc:
6
- def usd_to_f
7
- nil
8
- end
4
+ # :nodoc:
5
+ def usd_to_f
6
+ nil
9
7
  end
10
8
  end
11
9
 
12
10
  Numeric.class_eval do
13
- unless method_defined?(:usd_to_f)
14
- # :nodoc:
15
- def usd_to_f
16
- to_f
17
- end
11
+ # :nodoc:
12
+ def usd_to_f
13
+ to_f
18
14
  end
19
15
  end
20
16
 
21
17
  String.class_eval do
22
- unless method_defined?(:usd_to_f)
23
- # :nodoc:
24
- def usd_to_f
25
- gsub(/[$,]/, '').to_f
26
- end
18
+ # :nodoc:
19
+ def usd_to_f
20
+ gsub(/[$,]/, '').to_f
27
21
  end
28
22
  end
@@ -1,19 +1,15 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  NilClass.class_eval do
4
- unless method_defined?(:usd_to_i)
5
- # :nodoc:
6
- def usd_to_i
7
- nil
8
- end
4
+ # :nodoc:
5
+ def usd_to_i
6
+ nil
9
7
  end
10
8
  end
11
9
 
12
10
  String.class_eval do
13
- unless method_defined?(:usd_to_i)
14
- # :nodoc:
15
- def usd_to_i
16
- gsub(/[$,]/, '').to_i
17
- end
11
+ # :nodoc:
12
+ def usd_to_i
13
+ gsub(/[$,]/, '').to_i
18
14
  end
19
15
  end
@@ -1,25 +1,23 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  Array.class_eval do
4
- unless method_defined?(:weighted_sum)
5
- # Sums the array with each element weighing 10 times as the next.
6
- # Expects `self` to be [Array<Numeric>]
7
- #
8
- # @raise [RubyRailsExtensions::Errors::NonNumericError] if any element is not Numeric
9
- #
10
- # @return [Integer]
11
- #
12
- def weighted_sum
13
- each_with_index.sum do |val, index|
14
- unless Numeric === val
15
- raise(
16
- RubyRailsExtensions::Errors::NonNumericError,
17
- "Wrong element type (given #{val.class}, expected Numeric)"
18
- )
19
- end
20
-
21
- val * (10**(size - index))
4
+ # Sums the array with each element weighing 10 times as the next.
5
+ # Expects `self` to be [Array<Numeric>]
6
+ #
7
+ # @raise [RubyRailsExtensions::Errors::NonNumericError] if any element is not Numeric
8
+ #
9
+ # @return [Integer]
10
+ #
11
+ def weighted_sum
12
+ each_with_index.sum do |val, index|
13
+ unless Numeric === val
14
+ raise(
15
+ RubyRailsExtensions::Errors::NonNumericError,
16
+ "Wrong element type (given #{val.class}, expected Numeric)"
17
+ )
22
18
  end
19
+
20
+ val * (10**(size - index))
23
21
  end
24
22
  end
25
23
  end
@@ -1,28 +1,22 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  TrueClass.class_eval do
4
- unless method_defined?(:yesno)
5
- # :nodoc:
6
- def yesno
7
- 'Yes'
8
- end
4
+ # :nodoc:
5
+ def yesno
6
+ 'Yes'
9
7
  end
10
8
  end
11
9
 
12
10
  FalseClass.class_eval do
13
- unless method_defined?(:yesno)
14
- # :nodoc:
15
- def yesno
16
- 'No'
17
- end
11
+ # :nodoc:
12
+ def yesno
13
+ 'No'
18
14
  end
19
15
  end
20
16
 
21
17
  NilClass.class_eval do
22
- unless method_defined?(:yesno)
23
- # :nodoc:
24
- def yesno
25
- 'N/A'
26
- end
18
+ # :nodoc:
19
+ def yesno
20
+ 'N/A'
27
21
  end
28
22
  end