Sha256: f49acf546054a1b791a2b05cc6d6dab1e270e204832c794be2dd7d9e4783c94b
Contents?: true
Size: 1.28 KB
Versions: 3
Compression:
Stored size: 1.28 KB
Contents
module Hashie module Extensions # IgnoreUndeclared is a simple mixin that silently ignores # undeclared properties on initialization instead of # raising an error. This is useful when using a Trash to # capture a subset of a larger hash. # # Note that attempting to retrieve an undeclared property # will still raise a NoMethodError, even if a value for # that property was provided at initialization. # # @example # class Person < Trash # include Hashie::Extensions::IgnoreUndeclared # # property :first_name # property :last_name # end # # user_data = { # :first_name => 'Freddy', # :last_name => 'Nostrils', # :email => 'freddy@example.com' # } # # p = Person.new(user_data) # 'email' is silently ignored # # p.first_name # => 'Freddy' # p.last_name # => 'Nostrils' # p.email # => NoMethodError module IgnoreUndeclared def initialize_attributes(attributes) attributes.each_pair do |att, value| if self.class.property?(att) || (self.class.respond_to?(:translations) && self.class.translations.include?(att.to_sym)) self[att] = value end end if attributes end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
hashie-2.1.2 | lib/hashie/extensions/ignore_undeclared.rb |
hashie-2.1.1 | lib/hashie/extensions/ignore_undeclared.rb |
hashie-2.1.0 | lib/hashie/extensions/ignore_undeclared.rb |