Sha256: dcd2495a6c913b6050c780041996efdc8d927e4f009aa5cc7ff1b6cf160f197c
Contents?: true
Size: 1.14 KB
Versions: 2
Compression:
Stored size: 1.14 KB
Contents
# Copyright (c) 2008 Michael Fellinger m.fellinger@gmail.com # All files in this distribution are subject to the terms of the MIT license. module Ramaze module CoreExtensions # Extensions for Array module Array # a = [1, 2, 3] # a.put_within(4, :after => 2, :before => 3) # a # => [1, 2, 4, 3] def put_within(object, constrain) pre, post = constrain.values_at(:after, :before) return put_after(pre, object) if rindex(post) - index(pre) == 1 raise ArgumentError, "Too many elements within constrain" end # a = [1, 2, 3] # a.put_after(2, 4) # a # => [1, 2, 4, 3] def put_after(element, object) return self[index(element) + 1, 0] = object if include?(element) raise ArgumentError, "The given element doesn't exist" end # a = [1, 2, 3] # a.put_before(2, 4) # a # => [1, 4, 2, 3] def put_before(element, object) return self[rindex(element), 0] = object if include?(element) raise ArgumentError, "The given element doesn't exist" end end # Array end # CoreExtensions end # Ramaze
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
ramaze-2012.04.14 | lib/ramaze/snippets/array/put_within.rb |
ramaze-2012.03.07 | lib/ramaze/snippets/array/put_within.rb |