class Pipetree::Function::Insert
Constants
- Operations
Public Instance Methods
call(arr, operation, *args)
click to toggle source
DISCUSS: all methods write to original array.
# File lib/pipetree/insert.rb, line 6 def call(arr, operation, *args) # arr = arr.dup raise "[Pipetree] Unknown Insert operation #{args.inspect}" unless Operations.include?(operation) send("#{operation}!", arr, *args) # replace!(arr, Old, New) # arr end
Private Instance Methods
after!(arr, old_func, new_func)
click to toggle source
# File lib/pipetree/insert.rb, line 42 def after!(arr, old_func, new_func) index = arr.index(old_func)+1 arr.insert(index, new_func) end
append!(arr, old_func, new_func)
click to toggle source
# File lib/pipetree/insert.rb, line 47 def append!(arr, old_func, new_func) arr << (new_func) end
before!(arr, old_func, new_func)
click to toggle source
TODO: not nested.
# File lib/pipetree/insert.rb, line 37 def before!(arr, old_func, new_func) index = arr.index(old_func) arr.insert(index, new_func) end
delete!(arr, old_func, *)
click to toggle source
# File lib/pipetree/insert.rb, line 29 def delete!(arr, old_func, *) index = arr.index(old_func) arr.delete_at(index) arr end
prepend!(arr, old_func, new_func)
click to toggle source
# File lib/pipetree/insert.rb, line 51 def prepend!(arr, old_func, new_func) arr.unshift(new_func) end
replace!(arr, old_func, new_func)
click to toggle source
# File lib/pipetree/insert.rb, line 16 def replace!(arr, old_func, new_func) arr[arr.index(old_func)] = new_func # arr.each_with_index { |func, index| # if func.is_a?(::Pipetree::Collect) # arr[index] = Collect[*Pipeline::Insert.(func, new_func, replace: old_func)] # end # arr[index] = new_func if func==old_func # } arr end