class Postwill::Client
Constants
- PROVIDERS
Public Class Methods
new(data)
click to toggle source
# File lib/postwill/client.rb, line 5 def initialize(data) instance_providers(data) end
Public Instance Methods
to(providers, options = {})
click to toggle source
# File lib/postwill/client.rb, line 9 def to(providers, options = {}) availables_providers(providers).each_with_object({}) do |provider, result| provider_service = instance_variable_get("@#{provider}") result[provider] = response(provider_service.call(options)) end end
Private Instance Methods
availables_providers(*providers)
click to toggle source
# File lib/postwill/client.rb, line 18 def availables_providers(*providers) providers.flatten.map { |provider| PROVIDERS.include?(provider) ? provider : nil }.compact end
instance_providers(data)
click to toggle source
# File lib/postwill/client.rb, line 27 def instance_providers(data) PROVIDERS.each do |provider| next unless data[provider] instance_variable_set("@#{provider}", Object.const_get(['Postwill::Providers::', provider.to_s.capitalize].join) .new(data[provider])) end end
response(result)
click to toggle source
# File lib/postwill/client.rb, line 22 def response(result) return Response.call(:ok, result.value) if result.success? Response.call(:error, result.value.message) end