class BingSearch::Model
Public Class Methods
new(attrs = {})
click to toggle source
@param [Hash] attrs
# File lib/bing-search/models.rb, line 5 def initialize(attrs = {}) attrs.each do |k, v| public_send "#{k}=", v end end
Private Class Methods
attr_methods()
click to toggle source
# File lib/bing-search/models.rb, line 30 def self.attr_methods @attr_methods ||= model_ancestors.reduce([]) do |memo, class_| memo + class_.public_instance_methods(false) end end
model_ancestors()
click to toggle source
# File lib/bing-search/models.rb, line 36 def self.model_ancestors ancestors.select { |ancestor| ancestor < Model } end
Public Instance Methods
set(attr, value)
click to toggle source
Sets an attribute via a public instance method on the receiver or its ancestors up to but not including Object @param [Symbol] attr @param value @return [self] @raise [ArgumentError]
No public setter for +attr+ on the receiver or its ancestors up to Object
# File lib/bing-search/models.rb, line 20 def set(attr, value) setter = "#{attr}=".to_sym self.class.attr_methods.include?(setter) ? public_send(setter, value) : raise(ArgumentError, "Can't set attr #{attr} of #{self}") end