Strict typing
This commit is contained in:
parent
ccbb05d5aa
commit
c7c539efa5
@ -1,4 +1,4 @@
|
|||||||
# typed: true
|
# typed: strict
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
class Object
|
class Object
|
||||||
@ -12,15 +12,13 @@ class Object
|
|||||||
# to
|
# to
|
||||||
#
|
#
|
||||||
# address.blank?
|
# address.blank?
|
||||||
#
|
sig { returns(T::Boolean) }
|
||||||
# @return [true, false]
|
|
||||||
def blank?
|
def blank?
|
||||||
respond_to?(:empty?) ? !!T.unsafe(self).empty? : false
|
respond_to?(:empty?) ? !!T.unsafe(self).empty? : false
|
||||||
end
|
end
|
||||||
|
|
||||||
# An object is present if it's not blank.
|
# An object is present if it's not blank.
|
||||||
#
|
sig { returns(T::Boolean) }
|
||||||
# @return [true, false]
|
|
||||||
def present?
|
def present?
|
||||||
!blank?
|
!blank?
|
||||||
end
|
end
|
||||||
@ -39,8 +37,7 @@ class Object
|
|||||||
# becomes
|
# becomes
|
||||||
#
|
#
|
||||||
# region = params[:state].presence || params[:country].presence || 'US'
|
# region = params[:state].presence || params[:country].presence || 'US'
|
||||||
#
|
sig { returns(T.nilable(T.self_type)) }
|
||||||
# @return [Object]
|
|
||||||
def presence
|
def presence
|
||||||
self if present?
|
self if present?
|
||||||
end
|
end
|
||||||
@ -50,12 +47,12 @@ class NilClass
|
|||||||
# +nil+ is blank:
|
# +nil+ is blank:
|
||||||
#
|
#
|
||||||
# nil.blank? # => true
|
# nil.blank? # => true
|
||||||
#
|
sig { returns(TrueClass) }
|
||||||
# @return [true]
|
|
||||||
def blank?
|
def blank?
|
||||||
true
|
true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
sig { returns(FalseClass) }
|
||||||
def present? # :nodoc:
|
def present? # :nodoc:
|
||||||
false
|
false
|
||||||
end
|
end
|
||||||
@ -65,12 +62,12 @@ class FalseClass
|
|||||||
# +false+ is blank:
|
# +false+ is blank:
|
||||||
#
|
#
|
||||||
# false.blank? # => true
|
# false.blank? # => true
|
||||||
#
|
sig { returns(TrueClass) }
|
||||||
# @return [true]
|
|
||||||
def blank?
|
def blank?
|
||||||
true
|
true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
sig { returns(FalseClass) }
|
||||||
def present? # :nodoc:
|
def present? # :nodoc:
|
||||||
false
|
false
|
||||||
end
|
end
|
||||||
@ -80,12 +77,12 @@ class TrueClass
|
|||||||
# +true+ is not blank:
|
# +true+ is not blank:
|
||||||
#
|
#
|
||||||
# true.blank? # => false
|
# true.blank? # => false
|
||||||
#
|
sig { returns(FalseClass) }
|
||||||
# @return [false]
|
|
||||||
def blank?
|
def blank?
|
||||||
false
|
false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
sig { returns(TrueClass) }
|
||||||
def present? # :nodoc:
|
def present? # :nodoc:
|
||||||
true
|
true
|
||||||
end
|
end
|
||||||
@ -100,6 +97,7 @@ class Array
|
|||||||
# @return [true, false]
|
# @return [true, false]
|
||||||
alias_method :blank?, :empty?
|
alias_method :blank?, :empty?
|
||||||
|
|
||||||
|
sig { returns(T::Boolean) }
|
||||||
def present? # :nodoc:
|
def present? # :nodoc:
|
||||||
!empty?
|
!empty?
|
||||||
end
|
end
|
||||||
@ -114,6 +112,7 @@ class Hash
|
|||||||
# @return [true, false]
|
# @return [true, false]
|
||||||
alias_method :blank?, :empty?
|
alias_method :blank?, :empty?
|
||||||
|
|
||||||
|
sig { returns(T::Boolean) }
|
||||||
def present? # :nodoc:
|
def present? # :nodoc:
|
||||||
!empty?
|
!empty?
|
||||||
end
|
end
|
||||||
@ -126,6 +125,7 @@ class Symbol
|
|||||||
# :symbol.blank? # => false
|
# :symbol.blank? # => false
|
||||||
alias_method :blank?, :empty?
|
alias_method :blank?, :empty?
|
||||||
|
|
||||||
|
sig { returns(T::Boolean) }
|
||||||
def present? # :nodoc:
|
def present? # :nodoc:
|
||||||
!empty?
|
!empty?
|
||||||
end
|
end
|
||||||
@ -144,8 +144,7 @@ class String
|
|||||||
# Unicode whitespace is supported:
|
# Unicode whitespace is supported:
|
||||||
#
|
#
|
||||||
# "\u00a0".blank? # => true
|
# "\u00a0".blank? # => true
|
||||||
#
|
sig { returns(T::Boolean) }
|
||||||
# @return [true, false]
|
|
||||||
def blank?
|
def blank?
|
||||||
# The regexp that matches blank strings is expensive. For the case of empty
|
# The regexp that matches blank strings is expensive. For the case of empty
|
||||||
# strings we can speed up this method (~3.5x) with an empty? call. The
|
# strings we can speed up this method (~3.5x) with an empty? call. The
|
||||||
@ -158,6 +157,7 @@ class String
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
sig { returns(T::Boolean) }
|
||||||
def present? # :nodoc:
|
def present? # :nodoc:
|
||||||
!blank?
|
!blank?
|
||||||
end
|
end
|
||||||
@ -168,12 +168,12 @@ class Numeric # :nodoc:
|
|||||||
#
|
#
|
||||||
# 1.blank? # => false
|
# 1.blank? # => false
|
||||||
# 0.blank? # => false
|
# 0.blank? # => false
|
||||||
#
|
sig { returns(FalseClass) }
|
||||||
# @return [false]
|
|
||||||
def blank?
|
def blank?
|
||||||
false
|
false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
sig { returns(TrueClass) }
|
||||||
def present?
|
def present?
|
||||||
true
|
true
|
||||||
end
|
end
|
||||||
@ -183,12 +183,12 @@ class Time # :nodoc:
|
|||||||
# No Time is blank:
|
# No Time is blank:
|
||||||
#
|
#
|
||||||
# Time.now.blank? # => false
|
# Time.now.blank? # => false
|
||||||
#
|
sig { returns(FalseClass) }
|
||||||
# @return [false]
|
|
||||||
def blank?
|
def blank?
|
||||||
false
|
false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
sig { returns(TrueClass) }
|
||||||
def present?
|
def present?
|
||||||
true
|
true
|
||||||
end
|
end
|
||||||
|
|||||||
@ -1,6 +0,0 @@
|
|||||||
# typed: strict
|
|
||||||
|
|
||||||
class Object
|
|
||||||
sig { returns(T::Boolean) }
|
|
||||||
def present?; end
|
|
||||||
end
|
|
||||||
@ -12,7 +12,6 @@ require "set"
|
|||||||
|
|
||||||
# Only require "core_ext" here to ensure we're only requiring the minimum of
|
# Only require "core_ext" here to ensure we're only requiring the minimum of
|
||||||
# what we need.
|
# what we need.
|
||||||
require "extend/blank"
|
|
||||||
require "active_support/core_ext/array/access"
|
require "active_support/core_ext/array/access"
|
||||||
require "active_support/core_ext/enumerable"
|
require "active_support/core_ext/enumerable"
|
||||||
require "active_support/core_ext/file/atomic"
|
require "active_support/core_ext/file/atomic"
|
||||||
@ -75,6 +74,7 @@ HOMEBREW_PULL_OR_COMMIT_URL_REGEX =
|
|||||||
HOMEBREW_BOTTLES_EXTNAME_REGEX = /\.([a-z0-9_]+)\.bottle\.(?:(\d+)\.)?tar\.gz$/.freeze
|
HOMEBREW_BOTTLES_EXTNAME_REGEX = /\.([a-z0-9_]+)\.bottle\.(?:(\d+)\.)?tar\.gz$/.freeze
|
||||||
|
|
||||||
require "extend/module"
|
require "extend/module"
|
||||||
|
require "extend/blank"
|
||||||
require "env_config"
|
require "env_config"
|
||||||
require "macos_version"
|
require "macos_version"
|
||||||
require "os"
|
require "os"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user