Sha256: 9b185fb4eda67fd0e00bea08216f218236cd5cb7e7b01edd675ba8dd276c3b4d

Contents?: true

Size: 747 Bytes

Versions: 11

Compression:

Stored size: 747 Bytes

Contents

require 'volt/models/model_wrapper'

class ArrayModel < ReactiveArray
  include ModelWrapper
  
  attr_reader :parent, :path

  def initialize(array=[], parent=nil, path=nil)
    @parent = parent
    @path = path || []
    
    array = wrap_values(array)
    
    super(array)
  end
  
  def attributes
    self
  end
  
  # Make sure it gets wrapped
  def <<(*args)
    args = wrap_values(args)
    
    super(*args)
  end
  
  # Make sure it gets wrapped
  def inject(*args)
    args = wrap_values(args)
    super(*args)
  end

  # Make sure it gets wrapped
  def +(*args)
    args = wrap_values(args)
    super(*args)
  end
  
  def new_model(*args)
    Model.new(*args)
  end
  
  def new_array_model(*args)
    ArrayModel.new(*args)
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
volt-0.4.9 lib/volt/models/array_model.rb
volt-0.4.8 lib/volt/models/array_model.rb
volt-0.4.7 lib/volt/models/array_model.rb
volt-0.4.5 lib/volt/models/array_model.rb
volt-0.4.4 lib/volt/models/array_model.rb
volt-0.4.3 lib/volt/models/array_model.rb
volt-0.4.2 lib/volt/models/array_model.rb
volt-0.4.1 lib/volt/models/array_model.rb
volt-0.4.0 lib/volt/models/array_model.rb
volt-0.3.9 lib/volt/models/array_model.rb
volt-0.3.8 lib/volt/models/array_model.rb