Sha256: 3d86f95075ba5f9a253357feba97dd1183bcc12b76c6409e664e0a957867790a

Contents?: true

Size: 853 Bytes

Versions: 13

Compression:

Stored size: 853 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

13 entries across 13 versions & 1 rubygems

Version Path
netzke-core-0.7.7 lib/netzke/core_ext/array.rb
netzke-core-0.7.6 lib/netzke/core_ext/array.rb
netzke-core-0.7.5 lib/netzke/core_ext/array.rb
netzke-core-0.7.4 lib/netzke/core_ext/array.rb
netzke-core-0.7.3 lib/netzke/core_ext/array.rb
netzke-core-0.7.2 lib/netzke/core_ext/array.rb
netzke-core-0.7.1 lib/netzke/core_ext/array.rb
netzke-core-0.6.7 lib/netzke/core_ext/array.rb
netzke-core-0.7.0 lib/netzke/core_ext/array.rb
netzke-core-0.6.6 lib/netzke/core_ext/array.rb
netzke-core-0.6.5 lib/netzke/core_ext/array.rb
netzke-core-0.6.4 lib/netzke/core_ext/array.rb
netzke-core-0.6.3 lib/netzke/core_ext/array.rb