Method: CssCompare::CSS::Engine#deep_copy

Defined in:
lib/css_compare/css/engine.rb

#deep_copyEngine

Creates a deep copy of this object.

Returns:



190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
# File 'lib/css_compare/css/engine.rb', line 190

def deep_copy
  copy = dup
  copy.selectors = @selectors.inject({}) do |result, (k, v)|
    result.update(k => v.deep_copy)
  end
  copy.keyframes = @keyframes.inject({}) do |result, (k, v)|
    result.update(k => v.deep_copy)
  end
  copy.pages = @supports.inject({}) do |result, (k, v)|
    result.update(k => v.deep_copy)
  end
  copy.supports = @supports.inject({}) do |result, (k, v)|
    result.update(k => v.deep_copy)
  end
  copy.engine = {
    :selectors => copy.selectors,
    :keyframes => copy.keyframes,
    :namespaces => copy.namespaces,
    :pages => copy.pages,
    :supports => copy.supports
  }
  copy
end