Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2019
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.49 KB | None | 0 0
  1. @datas = symbolise(JSON.parse(response.body.to_s))
  2. @doc = JSON.parse(@datas.to_json, object_class: OpenStruct)
  3. def snake_case(s)
  4. return s.downcase if s.match(/\A[A-Z]+\z/)
  5.  
  6. s.gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2').
  7. gsub(/([a-z])([A-Z])/, '\1_\2').
  8. downcase
  9. end
  10.  
  11. def symbolise(obj)
  12. if obj.is_a? Hash
  13. return obj.inject({}) do |memo, (k, v)|
  14. memo.tap { |m| m[snake_case(k)] = symbolise(v) }
  15. end
  16. elsif obj.is_a? Array
  17. return obj.map { |memo| symbolise(memo) }
  18. end
  19. obj
  20. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement