/vine

Primary LanguageRuby

Vine

This gem let you quickly access and update nested Hash and List structures using a dot notation string.

Example

{ a: [ 100, 200 ] }.access("a.0")
=> 100 

{ a: { b: 100 } }.access("a.b") 
=> 100 

{'availableForPickup': false}.access(:availableForPickup)
=> false

Example 2

h = { a: { "b"=> 10 } }
h.set("a.b", 2)
=> { a: { "b"=> 2 } }

h.set("a.b1.0", 10)
=> { a: { "b"=> 2, b1: [10] } }

h.set("a.b.c", 100)
=> { a: { "b"=> {c: 100}, b1: [10] } }

Example 3

h = { phone_numbers: [ { type: "mobile", num: 123 } ] }
h.set("phone_numbers.0.type", "fixed")

Example 4

There is also a method for segmentation.

[1,2,3,4].segmentation(2)
=> [[[1], [2, 3, 4]], 
    [[1, 2], [3, 4]], 
    [[1, 2, 3], [4]]] 

Install

gem install vine

Setup

require "vine"