Class: Hash
- Inherits:
-
Object
- Object
- Hash
- Defined in:
- lib/monkeypatch.rb,
lib/monkeypatch.rb
Instance Method Summary collapse
- #compact ⇒ Object
-
#deep_merge(second) ⇒ Object
rubocop:disable Style/CaseEquality rubocop:disable Lint/UnusedBlockArgument.
- #fnbase64 ⇒ Object
- #fnjoin(separator = "") ⇒ Object
- #fnselect(index = 0) ⇒ Object
- #fnsplit(separator = "") ⇒ Object
- #fnsub(variable_map = nil) ⇒ Object
-
#recursive_compact ⇒ Object
rubocop:enable Style/CaseEquality rubocop:enable Lint/UnusedBlockArgument.
Instance Method Details
#compact ⇒ Object
215 216 217 |
# File 'lib/monkeypatch.rb', line 215 def compact delete_if { |_k, v| v.nil? } end |
#deep_merge(second) ⇒ Object
rubocop:disable Style/CaseEquality rubocop:disable Lint/UnusedBlockArgument
201 202 203 204 |
# File 'lib/monkeypatch.rb', line 201 def deep_merge(second) merger = proc { |key, v1, v2| Hash === v1 && Hash === v2 ? v1.merge(v2, &merger) : Array === v1 && Array === v2 ? v1 | v2 : [:undefined, nil, :nil].include?(v2) ? v1 : v2 } self.merge(second.to_h, &merger) end |
#fnbase64 ⇒ Object
240 241 242 243 244 |
# File 'lib/monkeypatch.rb', line 240 def fnbase64 { "Fn::Base64": self } end |
#fnjoin(separator = "") ⇒ Object
40 41 42 43 44 45 46 47 |
# File 'lib/monkeypatch.rb', line 40 def fnjoin(separator = "") { "Fn::Join": [ separator, self ] } end |
#fnselect(index = 0) ⇒ Object
219 220 221 222 223 224 225 226 |
# File 'lib/monkeypatch.rb', line 219 def fnselect(index = 0) { "Fn::Select": [ index, self ] } end |
#fnsplit(separator = "") ⇒ Object
49 50 51 52 53 54 55 56 |
# File 'lib/monkeypatch.rb', line 49 def fnsplit(separator = "") { "Fn::Split": [ separator, self ] } end |
#fnsub(variable_map = nil) ⇒ Object
228 229 230 231 232 233 234 235 236 237 238 |
# File 'lib/monkeypatch.rb', line 228 def fnsub(variable_map = nil) unless variable_map return { "Fn::Sub": self } end { "Fn::Sub": [ self, variable_map ] } end |
#recursive_compact ⇒ Object
rubocop:enable Style/CaseEquality rubocop:enable Lint/UnusedBlockArgument
208 209 210 211 212 213 |
# File 'lib/monkeypatch.rb', line 208 def recursive_compact delete_if do |k, v| next if v == false || k =~ /Fn\:/ (v.respond_to?(:empty?) ? v.empty? : !v) || v.instance_of?(Hash) && v.recursive_compact.empty? end end |