Class: Array::Reorder
- Inherits:
 - 
      Object
      
        
- Object
 - Array::Reorder
 
 
- Includes:
 - Releaf::Service
 
- Defined in:
 - app/services/array/reorder.rb
 
Instance Method Summary collapse
- #call ⇒ Object
 - #delete(values) ⇒ Object
 - #index(value) ⇒ Object
 - #reorder_index(options) ⇒ Object
 - #values=(val) ⇒ Object
 
Instance Method Details
#call ⇒ Object
      35 36 37 38 39 40 41 42 43 44  | 
    
      # File 'app/services/array/reorder.rb', line 35 def call deleted_values = delete(values) index = reorder_index() values.reverse_each do|value| array.insert(index, deleted_values[value]) end array end  | 
  
#delete(values) ⇒ Object
      60 61 62 63 64 65 66 67 68 69 70  | 
    
      # File 'app/services/array/reorder.rb', line 60 def delete(values) deleted = {} values.each do|value| index = index(value) deleted[value] = array[index] array.delete_at(index) end deleted end  | 
  
#index(value) ⇒ Object
      72 73 74 75 76 77 78 79 80 81  | 
    
      # File 'app/services/array/reorder.rb', line 72 def index(value) value = value.to_s array.index do |existing_value| if existing_value.is_a? Hash existing_value.keys.first.to_s == value else existing_value.to_s == value end end end  | 
  
#reorder_index(options) ⇒ Object
      46 47 48 49 50 51 52 53 54 55 56 57 58  | 
    
      # File 'app/services/array/reorder.rb', line 46 def reorder_index() if == :first 0 elsif == :last array.length elsif [:after] index([:after]) + 1 elsif [:before] index([:before]) else raise ArgumentError, "unknown reorder option" end end  | 
  
#values=(val) ⇒ Object
      30 31 32 33  | 
    
      # File 'app/services/array/reorder.rb', line 30 def values=(val) val = [val] unless val.is_a? Array super end  |