โ ~ pry
[1] pry(main)> require 'sawyer'
=> true
[2] pry(main)> agent = Sawyer::Agent.new('http://eval.so/api')
=> <Sawyer::Agent http://eval.so/api>
[3] pry(main)> agent.call :get, 'languages'
=> #<Sawyer::Response: 200 @rels={} @data=#<Sawyer::Resource:0x007ffa460e6148 @_agent=<Sawyer::Agent http://eval.so/api>, @_rels=#<Sawyer::Relation::Map: []>, @_fields=#<Set: {:csharp, :rust, :clojure, :python2, :idris, :chickenscheme, :jruby18, :haskell, :perl, :smalltalk, :python3, :java, :factor, :"c++", :go, :jruby19, :php, :lua, :scala, :fsharp, :io, :c, :lolcode, :"sml-mlton", :perl6, :ruby, :elixir, :vbnet, :bash}>, @_metaclass=#<Class:#<Sawyer::Resource:0x007ffa460e6148>>, @attrs={:csharp=>#<Sawyer::Resource:0x007ffa460e5f90 @_agent=<Sawyer::Agent http://eval.so/api>, @_rels=#<Sawyer::Relation::Map: []>, @_fields=#<Set: {:display_name}>, @_metaclass=#<Class:#<Sawyer::Resource:0x007ffa460e5f90>>, @attrs={:display_name=>"C#"}>, :rust=>#<Sawyer::Resource:0x007ffa460e59a0 @_agent=<Sawyer::Agent http://eval.so/api>, @_rels=#<Sawyer::Relation::Map: []>, @_fields=#<Set: {:display_name}>, @_metaclass=#<Class:#<Sawyer::Resource:0x007ffa460e59a0>>, @attrs={:display_name=>"Rust 0.7"}>, :clojure=>#<Sawyer::Resource:0x007ffa460e5568 @_agent=<Sawyer::Agent http://eval.so/api>, @_rels=#<Sawyer::Relation::Map: []>, @_fields=#<Set: {:display_name}>, @_metaclass=#<Class:#<Sawyer::Resource:0x007ffa460e5568>>, @attrs={:display_name=>"Clojure"}>, :python2=>#<Sawyer::Resource:0x007ffa460e5130 @_agent=<Sawyer::Agent http://eval.so/api>, @_rels=#<Sawyer::Relation::Map: []>, @_fields=#<Set: {:display_name}>, @_metaclass=#<Class:#<Sawyer::Resource:0x007ffa460e5130>>, @attrs={:display_name=>"Python 2"}>, :idris=>#<Sawyer::Resource:0x007ffa460e4cf8 @_agent=<Sawyer::Agent http://eval.so/api>, @_rels=#<Sawyer::Relation::Map: []>, @_fields=#<Set: {:display_name}>, @_metaclass=#<Class:#<Sawyer::Resource:0x007ffa460e4cf8>>, @attrs={:display_name=>"Idris"}>, :chickenscheme=>#<Sawyer::Resource:0x007ffa460e48c0 @_agent=<Sawyer::Agent http://eval.so/api>, @_rels=#<Sawyer::Relation::Map: []>, @_fields=#<Set: {:display_name}>, @_metaclass=#<Class:#<Sawyer::Resource:0x007ffa460e48c0>>, @attrs={:display_name=>"Chicken Scheme"}>, :jruby18=>#<Sawyer::Resource:0x007ffa460e4370 @_agent=<Sawyer::Agent http://eval.so/api>, @_rels=#<Sawyer::Relation::Map: []>, @_fields=#<Set: {:display_name}>, @_metaclass=#<Class:#<Sawyer::Resource:0x007ffa460e4370>>, @attrs={:display_name=>"JRuby (1.8 mode)"}>, :haskell=>#<Sawyer::Resource:0x007ffa460d7f08 @_agent=<Sawyer::Agent http://eval.so/api>, @_rels=#<Sawyer::Relation::Map: []>, @_fields=#<Set: {:display_name}>, @_metaclass=#<Class:#<Sawyer::Resource:0x007ffa460d7f08>>, @attrs={:display_name=>"Haskell"}>, :perl=>#<Sawyer::Resource:0x007ffa460d79e0 @_agent=<Sawyer::Agent http://eval.so/api>, @_rels=#<Sawyer::Relation::Map: []>, @_fields=#<Set: {:display_name}>, @_metaclass=#<Class:#<Sawyer::Resource:0x007ffa460d79e0>>, @attrs={:display_name=>"Perl"}>, :smalltalk=>#<Sawyer::Resource:0x007ffa460d7490 @_agent=<Sawyer::Agent http://eval.so/api>, @_rels=#<Sawyer::Relation::Map: []>, @_fields=#<Set: {:display_name}>, @_metaclass=#<Class:#<Sawyer::Resource:0x007ffa460d7490>>, @attrs={:display_name=>"Smalltalk"}>, :python3=>#<Sawyer::Resource:0x007ffa460d6ef0 @_agent=<Sawyer::Agent http://eval.so/api>, @_rels=#<Sawyer::Relation::Map: []>, @_fields=#<Set: {:display_name}>, @_metaclass=#<Class:#<Sawyer::Resource:0x007ffa460d6ef0>>, @attrs={:display_name=>"Python 3"}>, :java=>#<Sawyer::Resource:0x007ffa460d69a0 @_agent=<Sawyer::Agent http://eval.so/api>, @_rels=#<Sawyer::Relation::Map: []>, @_fields=#<Set: {:display_name}>, @_metaclass=#<Class:#<Sawyer::Resource:0x007ffa460d69a0>>, @attrs={:display_name=>"Java"}>, :factor=>#<Sawyer::Resource:0x007ffa460d6478 @_agent=<Sawyer::Agent http://eval.so/api>, @_rels=#<Sawyer::Relation::Map: []>, @_fields=#<Set: {:display_name}>, @_metaclass=#<Class:#<Sawyer::Resource:0x007ffa460d6478>>, @attrs={:display_name=>"Factor"}>, :"c++"=>#<Sawyer::Resource:0x007ffa460d5fa0 @_agent=<Sawyer::Agent http://eval.so/api>, @_rels=#<Sawyer::Relation::Map: []>, @_fields=#<Set: {:display_name}>, @_metaclass=#<Class:#<Sawyer::Resource:0x007ffa460d5fa0>>, @attrs={:display_name=>"C++"}>, :go=>#<Sawyer::Resource:0x007ffa460d5a00 @_agent=<Sawyer::Agent http://eval.so/api>, @_rels=#<Sawyer::Relation::Map: []>, @_fields=#<Set: {:display_name}>, @_metaclass=#<Class:#<Sawyer::Resource:0x007ffa460d5a00>>, @attrs={:display_name=>"Go"}>, :jruby19=>#<Sawyer::Resource:0x007ffa460d55a0 @_agent=<Sawyer::Agent http://eval.so/api>, @_rels=#<Sawyer::Relation::Map: []>, @_fields=#<Set: {:display_name}>, @_metaclass=#<Class:#<Sawyer::Resource:0x007ffa460d55a0>>, @attrs={:display_name=>"JRuby (1.9 mode)"}>, :php=>#<Sawyer::Resource:0x007ffa460d5140 @_agent=<Sawyer::Agent http://eval.so/api>, @_rels=#<Sawyer::Relation::Map: []>, @_fields=#<Set: {:display_name}>, @_metaclass=#<Class:#<Sawyer::Resource:0x007ffa460d5140>>, @attrs={:display_name=>"PHP"}>, :lua=>#<Sawyer::Resource:0x007ffa460d4d08 @_agent=<Sawyer::Agent http://eval.so/api>, @_rels=#<Sawyer::Relation::Map: []>, @_fields=#<Set: {:display_name}>, @_metaclass=#<Class:#<Sawyer::Resource:0x007ffa460d4d08>>, @attrs={:display_name=>"Lua"}>, :scala=>#<Sawyer::Resource:0x007ffa460d48d0 @_agent=<Sawyer::Agent http://eval.so/api>, @_rels=#<Sawyer::Relation::Map: []>, @_fields=#<Set: {:display_name}>, @_metaclass=#<Class:#<Sawyer::Resource:0x007ffa460d48d0>>, @attrs={:display_name=>"Scala"}>, :fsharp=>#<Sawyer::Resource:0x007ffa460d44e8 @_agent=<Sawyer::Agent http://eval.so/api>, @_rels=#<Sawyer::Relation::Map: []>, @_fields=#<Set: {:display_name}>, @_metaclass=#<Class:#<Sawyer::Resource:0x007ffa460d44e8>>, @attrs={:display_name=>"F#"}>, :io=>#<Sawyer::Resource:0x007ffa460d40b0 @_agent=<Sawyer::Agent http://eval.so/api>, @_rels=#<Sawyer::Relation::Map: []>, @_fields=#<Set: {:display_name}>, @_metaclass=#<Class:#<Sawyer::Resource:0x007ffa460d40b0>>, @attrs={:display_name=>"Io"}>, :c=>#<Sawyer::Resource:0x007ffa4609fbd0 @_agent=<Sawyer::Agent http://eval.so/api>, @_rels=#<Sawyer::Relation::Map: []>, @_fields=#<Set: {:display_name}>, @_metaclass=#<Class:#<Sawyer::Resource:0x007ffa4609fbd0>>, @attrs={:display_name=>"C"}>, :lolcode=>#<Sawyer::Resource:0x007ffa4609f748 @_agent=<Sawyer::Agent http://eval.so/api>, @_rels=#<Sawyer::Relation::Map: []>, @_fields=#<Set: {:display_name}>, @_metaclass=#<Class:#<Sawyer::Resource:0x007ffa4609f748>>, @attrs={:display_name=>"LOLCODE (via lci)"}>, :"sml-mlton"=>#<Sawyer::Resource:0x007ffa4609f310 @_agent=<Sawyer::Agent http://eval.so/api>, @_rels=#<Sawyer::Relation::Map: []>, @_fields=#<Set: {:display_name}>, @_metaclass=#<Class:#<Sawyer::Resource:0x007ffa4609f310>>, @attrs={:display_name=>"SML (MLton)"}>, :perl6=>#<Sawyer::Resource:0x007ffa4609eed8 @_agent=<Sawyer::Agent http://eval.so/api>, @_rels=#<Sawyer::Relation::Map: []>, @_fields=#<Set: {:display_name}>, @_metaclass=#<Class:#<Sawyer::Resource:0x007ffa4609eed8>>, @attrs={:display_name=>"Perl 6 (Rakudo Star)"}>, :ruby=>#<Sawyer::Resource:0x007ffa4609eaa0 @_agent=<Sawyer::Agent http://eval.so/api>, @_rels=#<Sawyer::Relation::Map: []>, @_fields=#<Set: {:display_name}>, @_metaclass=#<Class:#<Sawyer::Resource:0x007ffa4609eaa0>>, @attrs={:display_name=>"Ruby"}>, :elixir=>#<Sawyer::Resource:0x007ffa4609e618 @_agent=<Sawyer::Agent http://eval.so/api>, @_rels=#<Sawyer::Relation::Map: []>, @_fields=#<Set: {:display_name}>, @_metaclass=#<Class:#<Sawyer::Resource:0x007ffa4609e618>>, @attrs={:display_name=>"Elixir"}>, :vbnet=>#<Sawyer::Resource:0x007ffa4609e1e0 @_agent=<Sawyer::Agent http://eval.so/api>, @_rels=#<Sawyer::Relation::Map: []>, @_fields=#<Set: {:display_name}>, @_metaclass=#<Class:#<Sawyer::Resource:0x007ffa4609e1e0>>, @attrs={:display_name=>"VB.NET"}>, :bash=>#<Sawyer::Resource:0x007ffa4609dd58 @_agent=<Sawyer::Agent http://eval.so/api>, @_rels=#<Sawyer::Relation::Map: []>, @_fields=#<Set: {:display_name}>, @_metaclass=#<Class:#<Sawyer::Resource:0x007ffa4609dd58>>, @attrs={:display_name=>"Bash"}>}>>
[4] pry(main)> agent.call :get, '/languages'
=> #<Sawyer::Response: 404 @rels={} @data="\n\n<!DOCTYPE html>\n<html>\n\t<head>\n\t\t<title>Action not found</title>\n\t\t<link rel=\"shortcut icon\" href=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAlFJREFUeNqUU8tOFEEUPVVdNV3dPe8xYRBnjGhmBgKjKzCIiQvBoIaNbly5Z+PSv3Aj7DSiP2B0rwkLGVdGgxITSCRIJGSMEQWZR3eVt5sEFBgTb/dN1yvnnHtPNTPG4PqdHgCMXnPRSZrpSuH8vUJu4DE4rYHDGAZDX62BZttHqTiIayM3gGiXQsgYLEvATaqxU+dy1U13YXapXptpNHY8iwn8KyIAzm1KBdtRZWErpI5lEWTXp5Z/vHpZ3/wyKKwYGGOdAYwR0EZwoezTYApBEIObyELl/aE1/83cp40Pt5mxqCKrE4Ck+mVWKKcI5tA8BLEhRBKJLjez6a7MLq7XZtp+yyOawwCBtkiBVZDKzRk4NN7NQBMYPHiZDFhXY+p9ff7F961vVcnl4R5I2ykJ5XFN7Ab7Gc61VoipNBKF+PDyztu5lfrSLT/wIwCxq0CAGtXHZTzqR2jtwQiXONma6hHpj9sLT7YaPxfTXuZdBGA02Wi7FS48YiTfj+i2NhqtdhP5RC8mh2/Op7y0v6eAcWVLFT8D7kWX5S9mepp+C450MV6aWL1cGnvkxbwHtLW2B9AOkLeUd9KEDuh9fl/7CEj7YH5g+3r/lWfF9In7tPz6T4IIwBJOr1SJyIGQMZQbsh5P9uBq5VJtqHh2mo49pdw5WFoEwKWqWHacaWOjQXWGcifKo6vj5RGS6zykI587XeUIQDqJSmAp+lE4qt19W5P9o8+Lma5DcjsC8JiT607lMVkdqQ0Vyh3lHhmh52tfNy78ajXv0rgYzv8nfwswANuk+7sD/Q0aAAAAAElFTkSuQmCC\">\n\t <style>\n\t\t html, body, pre {\n\t\t margin: 0;\n\t\t padding: 0;\n\t\t font-family: Monaco, 'Lucida Console', monospace;\n\t\t background: #ECECEC;\n\t\t }\n\t\t h1 {\n\t\t margin: 0;\n\t\t background: #AD632A;\n\t\t padding: 20px 45px;\n\t\t color: #fff;\n\t\t text-shadow: 1px 1px 1px rgba(0,0,0,.3);\n\t\t border-bottom: 1px solid #9F5805;\n\t\t font-size: 28px;\n\t\t }\n\t\t p#detail {\n\t\t margin: 0;\n\t\t padding: 15px 45px;\n\t\t background: #F6A960;\n\t\t border-top: 4px solid #D29052;\n\t\t color: #733512;\n\t\t text-shadow: 1px 1px 1px rgba(255,255,255,.3);\n\t\t font-size: 14px;\n\t\t border-bottom: 1px solid #BA7F5B;\n\t\t }\n\t\t</style>\n\t</head>\n\t<body>\n\t\t<h1>Action not found</h1>\n\n\t\t<p id=\"detail\">\n\t\t\tFor request 'GET /languages'\n\t\t</p>\n\n\t</body>\n</html>\n\n\n\n\n\n\n\n">