Class: Valkyrie::Resource::DeprecatedHashWrite

Inherits:
Hash
  • Object
show all
Defined in:
lib/valkyrie/resource.rb

Instance Method Summary collapse

Instance Method Details

#[]=(_k, _v) ⇒ Object



101
102
103
104
105
106
107
108
109
# File 'lib/valkyrie/resource.rb', line 101

def []=(_k, _v)
  if @soft_frozen
    warn "[DEPRECATION] Writing directly to attributes has been deprecated." \
      " Please use #set_value(k, v) instead or #dup first." \
      " In the next major version, this hash will be frozen. \n" \
      "Called from #{Gem.location_of_caller.join(':')}"
  end
  super
end

#delete(*_args) ⇒ Object



111
112
113
114
115
116
117
118
119
# File 'lib/valkyrie/resource.rb', line 111

def delete(*_args)
  if @soft_frozen
    warn "[DEPRECATION] Writing directly to attributes has been deprecated." \
      " Please use #set_value(k, v) instead or #dup first." \
      " In the next major version, this hash will be frozen. \n" \
      "Called from #{Gem.location_of_caller.join(':')}"
  end
  super
end

#delete_if(*_args) ⇒ Object



121
122
123
124
125
126
127
128
129
# File 'lib/valkyrie/resource.rb', line 121

def delete_if(*_args)
  if @soft_frozen
    warn "[DEPRECATION] Writing directly to attributes has been deprecated." \
      " Please use #set_value(k, v) instead or #dup first." \
      " In the next major version, this hash will be frozen. \n" \
      "Called from #{Gem.location_of_caller.join(':')}"
  end
  super
end

#dupObject



141
142
143
# File 'lib/valkyrie/resource.rb', line 141

def dup
  super.soft_thaw!
end

#soft_freeze!Object



131
132
133
134
# File 'lib/valkyrie/resource.rb', line 131

def soft_freeze!
  @soft_frozen = true
  self
end

#soft_thaw!Object



136
137
138
139
# File 'lib/valkyrie/resource.rb', line 136

def soft_thaw!
  @soft_frozen = false
  self
end