module Hashie::Extensions::Dash::PropertyTranslation::InstanceMethods
Public Instance Methods
[]=(property, value)
click to toggle source
Sets a value on the Dash
in a Hash-like way.
Note: Only works on pre-existing properties.
Calls superclass method
# File lib/hashie/extensions/dash/property_translation.rb, line 153 def []=(property, value) if self.class.translation_exists? property send("#{property}=", value) if self.class.transformation_exists? property super property, self.class.transformed_property(property, value) elsif self.class.properties.include?(property) super(property, value) end elsif self.class.transformation_exists? property super property, self.class.transformed_property(property, value) elsif property_exists? property super end end
initialize_attributes(attributes)
click to toggle source
Deletes any keys that have a translation
Calls superclass method
# File lib/hashie/extensions/dash/property_translation.rb, line 170 def initialize_attributes(attributes) return unless attributes attributes_copy = attributes.dup.delete_if do |k, v| if self.class.translations_hash.include?(k) self[k] = v true end end super attributes_copy end
property_exists?(property)
click to toggle source
Raises an NoMethodError if the property doesn't exist
# File lib/hashie/extensions/dash/property_translation.rb, line 182 def property_exists?(property) fail_no_property_error!(property) unless self.class.property?(property) true end
Private Instance Methods
__translations()
click to toggle source
# File lib/hashie/extensions/dash/property_translation.rb, line 189 def __translations self.class.translations_hash end