Method: Code::Object::Dictionary#code_delete_unless

Defined in:
lib/code/object/dictionary.rb

#code_delete_unless(argument, **globals) ⇒ Object



271
272
273
274
275
276
277
278
279
280
281
282
283
284
# File 'lib/code/object/dictionary.rb', line 271

def code_delete_unless(argument, **globals)
  if argument.is_a?(Class)
    raw.delete_if { |_, value| !value.is_a?(argument.raw) }
  else
    raw.delete_if.with_index do |(key, value), index|
      argument.call(
        arguments: List.new([key, value, self, Integer.new(index)]),
        **globals
      ).falsy?
    end
  end

  self
end