Module: BlankEmptyNilFilters::HashExtensions

Defined in:
lib/blank_empty_nil_filters.rb

Instance Method Summary collapse

Instance Method Details

#blank_value_keysObject



90
91
92
# File 'lib/blank_empty_nil_filters.rb', line 90

def blank_value_keys
  only_blank_values.key
end

#empty_value_keysObject



86
87
88
# File 'lib/blank_empty_nil_filters.rb', line 86

def empty_value_keys
  only_empty_values.keys
end

#is_blank?Boolean

Returns:

  • (Boolean)


114
115
116
# File 'lib/blank_empty_nil_filters.rb', line 114

def is_blank?
  length.zero? || reject_blank_values.length.zero?
end

#is_empty?Boolean

Returns:

  • (Boolean)


110
111
112
# File 'lib/blank_empty_nil_filters.rb', line 110

def is_empty?
  length.zero? || no_empty_values.length.zero?
end

#nil_value_keysObject



94
95
96
# File 'lib/blank_empty_nil_filters.rb', line 94

def nil_value_keys
  only_nil_values.keys
end

#no_blank_valuesObject Also known as: reject_blank_values



66
67
68
# File 'lib/blank_empty_nil_filters.rb', line 66

def no_blank_values
  reject_values(:is_blank?)
end

#no_empty_valuesObject Also known as: reject_empty_values



56
57
58
# File 'lib/blank_empty_nil_filters.rb', line 56

def no_empty_values
  reject_values(:is_empty?)
end

#no_nil_valuesObject Also known as: reject_nil_values



76
77
78
# File 'lib/blank_empty_nil_filters.rb', line 76

def no_nil_values
  reject_values(:nil?)
end

#non_blank_value_keysObject



102
103
104
# File 'lib/blank_empty_nil_filters.rb', line 102

def non_blank_value_keys
  no_blank_values.keys
end

#non_empty_value_keysObject



98
99
100
# File 'lib/blank_empty_nil_filters.rb', line 98

def non_empty_value_keys
  no_empty_values.key
end

#non_nil_value_keysObject



106
107
108
# File 'lib/blank_empty_nil_filters.rb', line 106

def non_nil_value_keys
  no_nil_values.keys
end

#only_blank_valuesObject Also known as: select_blank_values



71
72
73
# File 'lib/blank_empty_nil_filters.rb', line 71

def only_blank_values
  select_values(:is_blank?)
end

#only_empty_valuesObject Also known as: select_empty_values



61
62
63
# File 'lib/blank_empty_nil_filters.rb', line 61

def only_empty_values
  select_values(:is_empty?)
end

#only_nil_valuesObject Also known as: select_nil_values



81
82
83
# File 'lib/blank_empty_nil_filters.rb', line 81

def only_nil_values
  select_values(:nil?)
end

#reject_values(filter) ⇒ Object



118
119
120
121
# File 'lib/blank_empty_nil_filters.rb', line 118

def reject_values(filter)
  dup.transform_values { |val| val.respond_to?(:reject_values) ? val.reject_values(filter) : val }
     .reject { |_key, val| val.send(filter) }
end

#select_values(filter) ⇒ Object



123
124
125
126
# File 'lib/blank_empty_nil_filters.rb', line 123

def select_values(filter)
  dup.transform_values { |val| val.respond_to?(:select_values) ? val.select_values(filter) : val }
     .select { |_key, val| val.send(filter) }
end