Guest User

Untitled

a guest
Feb 19th, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.68 KB | None | 0 0
  1. require 'addressable/uri'
  2.  
  3. class Object
  4. def tap
  5. yield(self)
  6. self
  7. end
  8. end
  9.  
  10. class Hash
  11. def stringify_keys_and_jsonify_values!(values=%w(key startkey endkey))
  12. keys.each do |key|
  13. value = self.delete(key)
  14. value = value.to_json if values.include?(key.to_s)
  15. self[key.to_s] = value
  16. end
  17. self
  18. end
  19. end
  20.  
  21. module Addressable
  22. class URI
  23. alias :orig_query_values= :query_values=
  24.  
  25. def query_values=(params)
  26. params.stringify_keys_and_jsonify_values!
  27. self.orig_query_values = params
  28. end
  29. end
  30. end
  31.  
  32. class String
  33. def to_uri(params={})
  34. Addressable::URI.parse(self).tap { |u| u.query_values = params }
  35. end
  36. end
Add Comment
Please, Sign In to add comment