class Faraday::Options
Subclasses Struct with some special helpers for converting from a Hash to a Struct.
Public Class Methods
attribute_options()
click to toggle source
Internal
# File lib/faraday/options.rb, line 161 def self.attribute_options @attribute_options ||= {} end
fetch_error_class()
click to toggle source
# File lib/faraday/options.rb, line 195 def self.fetch_error_class @fetch_error_class ||= if Object.const_defined?(:KeyError) ::KeyError else ::IndexError end end
from(value)
click to toggle source
Public
# File lib/faraday/options.rb, line 6 def self.from(value) value ? new.update(value) : new end
inherited(subclass)
click to toggle source
Calls superclass method
# File lib/faraday/options.rb, line 189 def self.inherited(subclass) super subclass.attribute_options.update(attribute_options) subclass.memoized_attributes.update(memoized_attributes) end
memoized(key, &block)
click to toggle source
# File lib/faraday/options.rb, line 165 def self.memoized(key, &block) memoized_attributes[key.to_sym] = block class_eval <<-RUBY, __FILE__, __LINE__ + 1 def #{key}() self[:#{key}]; end RUBY end
memoized_attributes()
click to toggle source
# File lib/faraday/options.rb, line 172 def self.memoized_attributes @memoized_attributes ||= {} end
options(mapping)
click to toggle source
Internal
# File lib/faraday/options.rb, line 151 def self.options(mapping) attribute_options.update(mapping) end
options_for(key)
click to toggle source
Internal
# File lib/faraday/options.rb, line 156 def self.options_for(key) attribute_options[key] end
Public Instance Methods
[](key)
click to toggle source
Calls superclass method
# File lib/faraday/options.rb, line 176 def [](key) key = key.to_sym if method = self.class.memoized_attributes[key] super(key) || (self[key] = instance_eval(&method)) else super end end
clear()
click to toggle source
Public
# File lib/faraday/options.rb, line 43 def clear members.each { |member| delete(member) } end
deep_dup()
click to toggle source
Public
# File lib/faraday/options.rb, line 64 def deep_dup self.class.from(self) end
delete(key)
click to toggle source
Public
# File lib/faraday/options.rb, line 36 def delete(key) value = send(key) send("#{key}=", nil) value end
each() { |to_sym, send(key)| ... }
click to toggle source
Public
# File lib/faraday/options.rb, line 11 def each return to_enum(:each) unless block_given? members.each do |key| yield(key.to_sym, send(key)) end end
each_key() { |key| ... }
click to toggle source
Public
# File lib/faraday/options.rb, line 99 def each_key return to_enum(:each_key) unless block_given? keys.each do |key| yield(key) end end
each_value() { |value| ... }
click to toggle source
Public
# File lib/faraday/options.rb, line 114 def each_value return to_enum(:each_value) unless block_given? values.each do |value| yield(value) end end
empty?()
click to toggle source
Public
# File lib/faraday/options.rb, line 94 def empty? keys.empty? end
fetch(key, *args) { |key| ... }
click to toggle source
Public
# File lib/faraday/options.rb, line 69 def fetch(key, *args) unless symbolized_key_set.include?(key.to_sym) key_setter = "#{key}=" if args.size > 0 send(key_setter, args.first) elsif block_given? send(key_setter, yield(key)) else raise self.class.fetch_error_class, "key not found: #{key.inspect}" end end send(key) end
inspect()
click to toggle source
Internal
# File lib/faraday/options.rb, line 139 def inspect values = [] members.each do |member| value = send(member) values << "#{member}=#{value.inspect}" if value end values = values.empty? ? ' (empty)' : (' ' << values.join(", ")) %(#<#{self.class}#{values}>) end
key?(key)
click to toggle source
Public
# File lib/faraday/options.rb, line 107 def key?(key) keys.include?(key) end
Also aliased as: has_key?
keys()
click to toggle source
Public
# File lib/faraday/options.rb, line 89 def keys members.reject { |member| send(member).nil? } end
merge(other)
click to toggle source
Public
# File lib/faraday/options.rb, line 59 def merge(other) dup.merge!(other) end
merge!(other)
click to toggle source
Public
# File lib/faraday/options.rb, line 48 def merge!(other) other.each do |key, other_value| self_value = self.send(key) sub_options = self.class.options_for(key) new_value = (self_value && sub_options && other_value) ? self_value.merge(other_value) : other_value self.send("#{key}=", new_value) unless new_value.nil? end self end
symbolized_key_set()
click to toggle source
# File lib/faraday/options.rb, line 185 def symbolized_key_set @symbolized_key_set ||= Set.new(keys.map { |k| k.to_sym }) end
to_hash()
click to toggle source
Public
# File lib/faraday/options.rb, line 129 def to_hash hash = {} members.each do |key| value = send(key) hash[key.to_sym] = value unless value.nil? end hash end
update(obj)
click to toggle source
Public
# File lib/faraday/options.rb, line 19 def update(obj) obj.each do |key, value| sub_options = self.class.options_for(key) if sub_options new_value = sub_options.from(value) if value elsif value.is_a?(Hash) new_value = value.dup else new_value = value end self.send("#{key}=", new_value) unless new_value.nil? end self end
value?(value)
click to toggle source
Public
# File lib/faraday/options.rb, line 122 def value?(value) values.include?(value) end
Also aliased as: has_value?
values_at(*keys)
click to toggle source
Public
# File lib/faraday/options.rb, line 84 def values_at(*keys) keys.map { |key| send(key) } end