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.


14
15
16
17
# File 'lib/yard/core_ext/insertion.rb', line 14

def initialize(list, value)
  @list = list
  @values = (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]

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

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


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

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

#before(val, recursive = false) ⇒ Object

Inserts the value before val


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

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


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

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