class SimpleFeed::Providers::Proxy
Attributes
provider[RW]
Public Class Methods
from(definition)
click to toggle source
# File lib/simplefeed/providers/proxy.rb, line 10 def self.from(definition) if definition.is_a?(::Hash) ::SimpleFeed.symbolize!(definition) new(definition[:klass], *definition[:args], **definition[:opts]) else new(definition) end end
new(provider_or_klass, *args, **options)
click to toggle source
# File lib/simplefeed/providers/proxy.rb, line 19 def initialize(provider_or_klass, *args, **options) self.provider = if provider_or_klass.is_a?(::String) || provider_or_klass.is_a?(::Symbol) ::Object.const_get(provider_or_klass).new(*args, **options) else provider_or_klass end SimpleFeed::Providers::REQUIRED_METHODS.each do |m| raise ArgumentError, "Invalid provider #{provider.class}\nMethod '#{m}' is required." unless provider.respond_to?(m) end end
Public Instance Methods
method_missing(name, *args, **opts, &block)
click to toggle source
Forward all other method calls to Provider
Calls superclass method
# File lib/simplefeed/providers/proxy.rb, line 33 def method_missing(name, *args, **opts, &block) if provider&.respond_to?(name) provider.send(name, *args, **opts, &block) else super(name, *args, **opts, &block) end end