Module: SlashedHash

Defined in:
lib/quickbooks/structure.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.prepare_for_overwrites!(hsh) ⇒ Object



305
306
307
308
309
310
311
# File 'lib/quickbooks/structure.rb', line 305

def self.prepare_for_overwrites!(hsh)
  class << hsh
    # alias :append_value_unslashed :<<
    alias :set_value_unslashed :[]=
    alias :get_value_unslashed :[]
  end
end

Instance Method Details

#<<(v) ⇒ Object



316
317
318
# File 'lib/quickbooks/structure.rb', line 316

def <<(v)
  v.expand_slashes(self)
end

#[](k) ⇒ Object



319
320
321
322
323
324
325
326
327
328
329
330
# File 'lib/quickbooks/structure.rb', line 319

def [](k)
  if k.slashed?
    leaf = self
    k.split('/').each do |s|
      leaf = leaf[s]
      break unless leaf.is_a?(Hash)
    end
    leaf
  else
    get_value_unslashed(k)
  end
end

#[]=(k, v) ⇒ Object



331
332
333
334
335
336
337
# File 'lib/quickbooks/structure.rb', line 331

def []=(k,v)
  if k.slashed?
    (k+'/'+v).expand_slashes(self,true)
  else
    set_value_unslashed(k,v)
  end
end

#flattenedObject



313
314
315
# File 'lib/quickbooks/structure.rb', line 313

def flattened
  flatten_slashes
end