Class: BiolaWebServices::Service
- Inherits:
-
Object
- Object
- BiolaWebServices::Service
- Defined in:
- lib/biola_web_services/service.rb
Instance Method Summary collapse
-
#initialize(service_name) ⇒ Service
constructor
A new instance of Service.
- #method_missing(m, *args) ⇒ Object
- #send_request(method_name, args) ⇒ Object
Constructor Details
#initialize(service_name) ⇒ Service
Returns a new instance of Service.
7 8 9 |
# File 'lib/biola_web_services/service.rb', line 7 def initialize(service_name) @service_name = service_name end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(m, *args) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/biola_web_services/service.rb', line 24 def method_missing(m, *args) method_name = ruby_to_ws_method_name(m) modifier = m.to_s[-1, 1] args = args[0] if args.length == 1 case modifier when '?' # return true or false response = send_request(method_name, args) %w(true t yes y 1).include?(response.to_s.downcase.strip) when '!' # raise errors send_request(method_name, args) else # return nil on error begin send_request(method_name, args) rescue nil end end end |
Instance Method Details
#send_request(method_name, args) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/biola_web_services/service.rb', line 11 def send_request(method_name, args) request = Net::HTTP::Post.new request_path(method_name) request.set_form_data args conn = BiolaWebServices.connection response = conn.start { |conn| conn.request(request) } begin JSON.parse response.body rescue JSON::ParserError response.body # not all responses are JSON end end |