Class: Insertion

Inherits:
Object
  • Object
show all
Defined in:
lib/yard/core_ext/insertion.rb

Overview

The Insertion class inserts a value before or after another value in a list.

Examples:

Insertion.new([1, 2, 3], 4).before(3) # => [1, 2, 4, 3]

Instance Method Summary collapse

Constructor Details

#initialize(list, value) ⇒ Insertion

Creates an insertion object on a list with a value to be inserted. To finalize the insertion, call #before or #after on the object.



13
# File 'lib/yard/core_ext/insertion.rb', line 13

def initialize(list, value) @list, @values = list, (Array === value ? value : [value]) end

Instance Method Details

#after(val, recursive = false) ⇒ Object

Inserts the value after val.

Examples:

If subsections are ignored

Insertion.new([1, [2], 3], :X).after(1) # => [1, [2], :X, 3]


26
# File 'lib/yard/core_ext/insertion.rb', line 26

def after(val, recursive = false) insertion(val, 1, recursive) end

#after_any(val) ⇒ Object

Alias for #after with recursive set to true

Since:

  • 0.6.0



34
# File 'lib/yard/core_ext/insertion.rb', line 34

def after_any(val) insertion(val, 1, true) end

#before(val, recursive = false) ⇒ Object

Inserts the value before val



18
# File 'lib/yard/core_ext/insertion.rb', line 18

def before(val, recursive = false) insertion(val, 0, recursive) end

#before_any(val) ⇒ Object

Alias for #before with recursive set to true

Since:

  • 0.6.0



30
# File 'lib/yard/core_ext/insertion.rb', line 30

def before_any(val) insertion(val, 0, true) end