module VoiceRSS
description: Unofficial gem using Ruby code copied from voicerss.org
see http://www.voicerss.org/sdk/ruby.aspx
Public Class Methods
speech(settings)
click to toggle source
# File lib/voicerss2017.rb, line 14 def self.speech(settings) _validate(settings) return _request(settings) end
Private Class Methods
_buildRequest(settings)
click to toggle source
# File lib/voicerss2017.rb, line 57 def self._buildRequest(settings) return { 'key' => settings['key'], 'src' => settings['src'], 'hl' => settings['hl'], 'r' => settings['r'], 'c' => settings['c'], 'f' => settings['f'], 'ssml' => settings['ssml'], 'b64' => settings['b64'] } end
_request(settings)
click to toggle source
# File lib/voicerss2017.rb, line 28 def self._request(settings) response = { 'error' => nil, 'response' => nil } uri = URI((settings['ssl'] ? 'https' : 'http') + '://api.voicerss.org/') req = Net::HTTP::Post.new(uri) req.set_form_data(_buildRequest(settings)) res = Net::HTTP.start(uri.hostname, uri.port, :use_ssl => uri.scheme == 'https') do |http| http.request(req) end case res when Net::HTTPSuccess if res.body.index('ERROR') == 0 response['error'] = res.body else response['response'] = res.body end else response['error'] = res.message end response end
_validate(settings)
click to toggle source
# File lib/voicerss2017.rb, line 21 def self._validate(settings) raise 'The settings are undefined' if settings.nil? || settings.empty? raise 'The API key is undefined' if settings['key'].nil? || settings['key'].empty? raise 'The text is undefined' if settings['src'].nil? || settings['src'].empty? raise 'The language is undefined' if settings['hl'].nil? || settings['hl'].empty? end