Sha256: b5ff54e60e2aecc735e7c7cd3f92e6402fe3d1246e220a3ff6eda3e539768c4b

Contents?: true

Size: 735 Bytes

Versions: 9

Compression:

Stored size: 735 Bytes

Contents

module ModelWrapper
  # For cretain values, we wrap them to make the behave as a
  # model.
  def wrap_value(value, lookup)
    if value.is_a?(Array)
      value = new_array_model(value, @options.merge(parent: self, path: path + lookup))
    elsif value.is_a?(Hash)
      value = new_model(value, @options.merge(parent: self, path: path + lookup))
    end

    return value
  end

  def wrap_values(values, lookup=[])
    if values.is_a?(Array)
      # Coming from an array
      values = values.map {|v| wrap_value(v,lookup + [:[]]) }
    elsif values.is_a?(Hash)
      pairs = values.map do |k,v|
        path = lookup + [k]

        [k, wrap_value(v,path)]
      end

      values = Hash[pairs]
    end

    return values
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
volt-0.8.8 lib/volt/models/model_wrapper.rb
volt-0.8.7 lib/volt/models/model_wrapper.rb
volt-0.8.6 lib/volt/models/model_wrapper.rb
volt-0.8.5 lib/volt/models/model_wrapper.rb
volt-0.8.4 lib/volt/models/model_wrapper.rb
volt-0.8.3 lib/volt/models/model_wrapper.rb
volt-0.8.2 lib/volt/models/model_wrapper.rb
volt-0.8.1 lib/volt/models/model_wrapper.rb
volt-0.8.0 lib/volt/models/model_wrapper.rb