Sha256: 0525c88d4235506970614fd550cf18e8d4eefb662a9ca4bc699ee2b5febc78cc
Contents?: true
Size: 777 Bytes
Versions: 16
Compression:
Stored size: 777 Bytes
Contents
# frozen_string_literal: true require 'ruby2_keywords' module Faraday # DependencyLoader helps Faraday adapters and middleware load dependencies. module DependencyLoader attr_reader :load_error # Executes a block which should try to require and reference dependent # libraries def dependency(lib = nil) lib ? require(lib) : yield rescue LoadError, NameError => e self.load_error = e end ruby2_keywords def new(*) unless loaded? raise "missing dependency for #{self}: #{load_error.message}" end super end def loaded? load_error.nil? end def inherited(subclass) super subclass.send(:load_error=, load_error) end private attr_writer :load_error end end
Version data entries
16 entries across 14 versions & 5 rubygems