Sha256: 59d491f060f0f8305e8fed339ca3cddf4981d3bea37ee4e3146f90b2c8584e69

Contents?: true

Size: 863 Bytes

Versions: 3

Compression:

Stored size: 863 Bytes

Contents

class Array
  def jsonify
    self.map{ |el| el.instance_of?(Array) || el.instance_of?(Hash) ? el.jsonify : el }
  end
  
  # Camelizes the keys of hashes and converts them to JSON
  def to_nifty_json
    self.recursive_delete_if_nil.jsonify.to_json
  end
  
  # Applies deep_convert_keys to each element which responds to deep_convert_keys
  def deep_convert_keys(&block)
    block_given? ? self.map do |i|
      i.respond_to?('deep_convert_keys') ? i.deep_convert_keys(&block) : i
    end : self
  end
  
  def deep_each_pair(&block)
    self.each{ |el| el.respond_to?('deep_each_pair') && el.deep_each_pair(&block) }
  end
  
  def recursive_delete_if_nil
    self.map{|el| el.respond_to?('recursive_delete_if_nil') ? el.recursive_delete_if_nil : el}
  end
  
  def deep_freeze
    each { |j| j.deep_freeze if j.respond_to? :deep_freeze }
    freeze
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
netzke-core-0.6.2 lib/netzke/core_ext/array.rb
netzke-core-0.6.1 lib/netzke/core_ext/array.rb
netzke-core-0.6.0 lib/netzke/core_ext/array.rb