@@ -27,34 +27,34 @@ Generally speaking, you should model your interface around representations. Each
2727require ' async/rest'
2828
2929module DNS
30- class Query < Async ::REST ::Representation [Async ::REST ::Wrapper ::JSON ]
31- def question
32- value[:Question ]
33- end
34-
35- def answer
36- value[:Answer ]
37- end
38- end
39-
40- class Client < Async ::REST ::Resource
41- # This is the default endpoint to use unless otherwise specified:
42- ENDPOINT = Async ::HTTP ::Endpoint .parse(' https://dns.google/resolve' )
43-
44- # Resolve a DNS query.
45- def resolve (name , type )
46- self .call( Query , name: name, type: type)
47- end
48- end
30+ class Query < Async ::REST ::Representation [Async ::REST ::Wrapper ::JSON ]
31+ def question
32+ value[:Question ]
33+ end
34+
35+ def answer
36+ value[:Answer ]
37+ end
38+ end
39+
40+ class Client < Async ::REST ::Resource
41+ # This is the default endpoint to use unless otherwise specified:
42+ ENDPOINT = Async ::HTTP ::Endpoint .parse(' https://dns.google/resolve' )
43+
44+ # Resolve a DNS query.
45+ def resolve (name , type )
46+ Query .get( self .with( parameters: { name: name, type: type }) )
47+ end
48+ end
4949end
5050
5151DNS ::Client .open do |client |
52- query = client.resolve(' example.com' , ' AAAA' )
53-
54- puts query.question
55- # {:name=>"example.com.", :type=>28}
56- puts query.answer
57- # {:name=>"example.com.", :type=>28, :TTL=>13108, :data=>"2606:2800:220:1:248:1893:25c8:1946"}
52+ query = client.resolve(' example.com' , ' AAAA' )
53+
54+ puts query.question
55+ # {:name=>"example.com.", :type=>28}
56+ puts query.answer
57+ # {:name=>"example.com.", :type=>28, :TTL=>13108, :data=>"2606:2800:220:1:248:1893:25c8:1946"}
5858end
5959```
6060
0 commit comments