Class: Object
- Inherits:
- BasicObject
- Defined in:
- lib/lite/ruby/object.rb,
lib/lite/ruby/safe/object.rb
Constant Summary collapse
- FALSE_VALUES =
%w[ 0 f false n no off ].freeze
- TRUE_VALUES =
%w[ 1 t true y yes on ].freeze
Instance Method Summary collapse
- #array? ⇒ Boolean
- #blank? ⇒ Boolean
- #bool? ⇒ Boolean
- #boolean? ⇒ Boolean
- #date? ⇒ Boolean
- #deep_dup ⇒ Object
- #duplicable? ⇒ Boolean
-
#false? ⇒ Boolean
rubocop:disable Style/YodaCondition.
-
#falsey? ⇒ Boolean
rubocop:enable Style/YodaCondition.
- #float? ⇒ Boolean
- #hash? ⇒ Boolean
- #integer? ⇒ Boolean
-
#is_any?(*objects) ⇒ Boolean
rubocop:disable Naming/PredicateName.
-
#numeral? ⇒ Boolean
rubocop:enable Naming/PredicateName.
- #numeric? ⇒ Boolean
- #open_struct? ⇒ Boolean
- #palindrome? ⇒ Boolean
- #presence ⇒ Object
- #present? ⇒ Boolean
- #range? ⇒ Boolean
- #safe_call ⇒ Object
- #safe_send ⇒ Object
- #safe_try ⇒ Object
- #salvage(placeholder = '---') ⇒ Object
- #salvage_try(method_name = nil, *args, placeholder: '---', &block) ⇒ Object
- #send_chain(*args) ⇒ Object
- #send_chain_if(*args) ⇒ Object
- #send_if(key, *args, **kwargs, &block) ⇒ Object
- #set? ⇒ Boolean
- #string? ⇒ Boolean
- #struct? ⇒ Boolean
- #symbol? ⇒ Boolean
- #time? ⇒ Boolean
- #to_bool ⇒ Object (also: #to_b)
-
#true? ⇒ Boolean
rubocop:disable Style/YodaCondition.
-
#truthy? ⇒ Boolean
rubocop:enable Style/YodaCondition.
- #try(method_name = nil, *args, &block) ⇒ Object
- #try!(method_name = nil, *args, &block) ⇒ Object
- #try_call ⇒ Object
- #try_send ⇒ Object
Instance Method Details
#array? ⇒ Boolean
17 18 19 |
# File 'lib/lite/ruby/object.rb', line 17 def array? is_a?(Array) end |
#blank? ⇒ Boolean
5 6 7 8 9 |
# File 'lib/lite/ruby/safe/object.rb', line 5 def blank? object = self object = object.strip if respond_to?(:strip) respond_to?(:empty?) ? object.empty? : !object end |
#bool? ⇒ Boolean
22 23 24 |
# File 'lib/lite/ruby/object.rb', line 22 def bool? true? || false? end |
#boolean? ⇒ Boolean
26 27 28 29 |
# File 'lib/lite/ruby/object.rb', line 26 def boolean? val = to_s.downcase TRUE_VALUES.include?(val) || FALSE_VALUES.include?(val) end |
#date? ⇒ Boolean
31 32 33 |
# File 'lib/lite/ruby/object.rb', line 31 def date? is_a?(Date) end |
#deep_dup ⇒ Object
11 12 13 |
# File 'lib/lite/ruby/safe/object.rb', line 11 def deep_dup duplicable? ? dup : self end |
#duplicable? ⇒ Boolean
15 16 17 |
# File 'lib/lite/ruby/safe/object.rb', line 15 def duplicable? true end |
#false? ⇒ Boolean
rubocop:disable Style/YodaCondition
36 37 38 |
# File 'lib/lite/ruby/object.rb', line 36 def false? false == self end |
#falsey? ⇒ Boolean
rubocop:enable Style/YodaCondition
41 42 43 |
# File 'lib/lite/ruby/object.rb', line 41 def falsey? nil? || FALSE_VALUES.include?(to_s.downcase) end |
#float? ⇒ Boolean
45 46 47 |
# File 'lib/lite/ruby/object.rb', line 45 def float? is_a?(Float) end |
#hash? ⇒ Boolean
49 50 51 |
# File 'lib/lite/ruby/object.rb', line 49 def hash? is_a?(Hash) end |
#integer? ⇒ Boolean
53 54 55 |
# File 'lib/lite/ruby/object.rb', line 53 def integer? is_a?(Integer) end |
#is_any?(*objects) ⇒ Boolean
rubocop:disable Naming/PredicateName
58 59 60 |
# File 'lib/lite/ruby/object.rb', line 58 def is_any?(*objects) objects.any? { |obj| is_a?(obj) } end |
#numeral? ⇒ Boolean
rubocop:enable Naming/PredicateName
63 64 65 |
# File 'lib/lite/ruby/object.rb', line 63 def numeral? !to_s.match(/\A[+-]?\d+?(\.\d+)?\Z/).nil? end |
#numeric? ⇒ Boolean
67 68 69 |
# File 'lib/lite/ruby/object.rb', line 67 def numeric? is_a?(Numeric) end |
#open_struct? ⇒ Boolean
71 72 73 |
# File 'lib/lite/ruby/object.rb', line 71 def open_struct? is_a?(OpenStruct) end |
#palindrome? ⇒ Boolean
75 76 77 |
# File 'lib/lite/ruby/object.rb', line 75 def palindrome? to_s == to_s.reverse end |
#presence ⇒ Object
23 24 25 |
# File 'lib/lite/ruby/safe/object.rb', line 23 def presence self if present? end |
#present? ⇒ Boolean
19 20 21 |
# File 'lib/lite/ruby/safe/object.rb', line 19 def present? !blank? end |
#range? ⇒ Boolean
79 80 81 |
# File 'lib/lite/ruby/object.rb', line 79 def range? is_a?(Range) end |
#safe_call ⇒ Object
83 84 85 |
# File 'lib/lite/ruby/object.rb', line 83 def safe_call(...) try_call(...) || self end |
#safe_send ⇒ Object
87 88 89 |
# File 'lib/lite/ruby/object.rb', line 87 def safe_send(...) try_send(...) || self end |
#safe_try ⇒ Object
91 92 93 |
# File 'lib/lite/ruby/object.rb', line 91 def safe_try(...) try(...) || self end |
#salvage(placeholder = '---') ⇒ Object
95 96 97 |
# File 'lib/lite/ruby/object.rb', line 95 def salvage(placeholder = '---') blank? ? placeholder : self end |
#salvage_try(method_name = nil, *args, placeholder: '---', &block) ⇒ Object
99 100 101 |
# File 'lib/lite/ruby/object.rb', line 99 def salvage_try(method_name = nil, *args, placeholder: '---', &block) try(method_name, *args, &block).salvage(placeholder) end |
#send_chain(*args) ⇒ Object
103 104 105 |
# File 'lib/lite/ruby/object.rb', line 103 def send_chain(*args) Array(args).inject(self) { |obj, argz| obj.send(*argz) } end |
#send_chain_if(*args) ⇒ Object
107 108 109 |
# File 'lib/lite/ruby/object.rb', line 107 def send_chain_if(*args) Array(args).inject(self) { |obj, argz| obj.send_if(*argz) } end |
#send_if(key, *args, **kwargs, &block) ⇒ Object
111 112 113 114 115 |
# File 'lib/lite/ruby/object.rb', line 111 def send_if(key, *args, **kwargs, &block) return self unless respond_to?(key) send(key, *args, **kwargs, &block) end |
#set? ⇒ Boolean
117 118 119 |
# File 'lib/lite/ruby/object.rb', line 117 def set? is_a?(Set) end |
#string? ⇒ Boolean
121 122 123 |
# File 'lib/lite/ruby/object.rb', line 121 def string? is_a?(String) end |
#struct? ⇒ Boolean
125 126 127 |
# File 'lib/lite/ruby/object.rb', line 125 def struct? is_a?(Struct) end |
#symbol? ⇒ Boolean
129 130 131 |
# File 'lib/lite/ruby/object.rb', line 129 def symbol? is_a?(Symbol) end |
#time? ⇒ Boolean
133 134 135 |
# File 'lib/lite/ruby/object.rb', line 133 def time? is_a?(Time) end |
#to_bool ⇒ Object Also known as: to_b
137 138 139 140 141 142 |
# File 'lib/lite/ruby/object.rb', line 137 def to_bool return true if truthy? return false if falsey? nil end |
#true? ⇒ Boolean
rubocop:disable Style/YodaCondition
145 146 147 |
# File 'lib/lite/ruby/object.rb', line 145 def true? true == self end |
#truthy? ⇒ Boolean
rubocop:enable Style/YodaCondition
150 151 152 |
# File 'lib/lite/ruby/object.rb', line 150 def truthy? TRUE_VALUES.include?(to_s.downcase) end |
#try(method_name = nil, *args, &block) ⇒ Object
27 28 29 30 31 32 33 |
# File 'lib/lite/ruby/safe/object.rb', line 27 def try(method_name = nil, *args, &block) if method_name.nil? && block block.arity.zero? ? instance_eval(&block) : yield(self) elsif respond_to?(method_name) public_send(method_name, *args, &block) end end |
#try!(method_name = nil, *args, &block) ⇒ Object
35 36 37 38 39 40 41 |
# File 'lib/lite/ruby/safe/object.rb', line 35 def try!(method_name = nil, *args, &block) if method_name.nil? && block block.arity.zero? ? instance_eval(&block) : yield(self) else public_send(method_name, *args, &block) end end |
#try_call ⇒ Object
154 155 156 157 158 |
# File 'lib/lite/ruby/object.rb', line 154 def try_call(...) return unless respond_to?(:call) call(...) end |
#try_send ⇒ Object
160 161 162 163 164 |
# File 'lib/lite/ruby/object.rb', line 160 def try_send(...) send(...) rescue StandardError nil end |