module MDQuery::Util

Public Instance Methods

assign_attributes(obj, attrs, permitted_keys = nil) click to toggle source

assigns instance variable attributes to an object

  • obj - the instance

  • attrs - a map of {attr_name=>attr_value}

# File lib/mdquery/util.rb, line 11
def assign_attributes(obj, attrs, permitted_keys = nil)
  unknown_keys = attrs.keys.map(&:to_s).to_set - permitted_keys.map(&:to_s).to_set if permitted_keys
  raise "unknown keys: #{unknown_keys.to_a.inspect}. permitted keys are: #{permitted_keys.inspect}" if unknown_keys && !unknown_keys.empty?

  attrs.each do |attr,val|
    obj.instance_variable_set("@#{attr}", val)
  end
end