Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Useful Hash and Array extensions
- # works well with Sams Extlib
- #
- class Hash
- def with(overrides = {})
- self.merge overrides
- end
- def symbolize_keys!
- replace(inject({}) { |h,(k,v)| h[k.to_sym] = v; h })
- end
- def stringify_keys!
- replace(inject({}) { |h,(k,v)| h[k.to_s] = v; h })
- end
- def downcase_keys!
- replace(inject({}) { |h,(k,v)| h[k.downcase] = v; h })
- end
- def downcase_values!
- replace(inject({}) { |h,(k,v)|
- h[k] = (v.instance_of? String) ? v.downcase : v ; h})
- end
- end
- class Array
- def except(*rejected)
- arr = self.dup
- rejected.each {|v| arr.delete(v) }
- arr
- end
- end
- class Object
- def self.direct_descendants
- arr = []
- ObjectSpace.each_object do |obj|
- if obj.class == Class and obj.superclass == self
- arr << obj
- end
- end
- arr
- end
- end
Add Comment
Please, Sign In to add comment