Method: RibitData::RibitData#update

Defined in:
lib/ribit/ribitdata.rb

#update(obj, namesOfChangedProperties, id = nil) ⇒ Object



536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
# File 'lib/ribit/ribitdata.rb', line 536

def update( obj, namesOfChangedProperties, id=nil )
  if ( obj.kind_of?( Page ) )
    # what have changed, for pages we are interested: name
    
    if ( namesOfChangedProperties.include?( 'name' ) )
      refresh_maps_by_name
    end
  
  elsif ( obj.kind_of?( Category ) )
    
    if ( namesOfChangedProperties.include?( 'name' ) )
      refresh_maps_by_name
    
    elsif ( namesOfChangedProperties.include?( 'parentCategory' ) )
      refresh_maps_by_name
      
    elsif ( namesOfChangedProperties.include?( 'newPage' ) )
      
      obj.get_pages.each do |page|
        if ( get_page_by_id( page.full_id ) == nil )
          # this page has not been recorded before => record it
          add_page( page )
        end
      end
    elsif ( namesOfChangedProperties.include?( 'deletePage' ) )
      assert_not_nil( id )
      page = @pages[id]
      @pagesByName.delete( page.full_name )
      @pages.delete( page.full_id )
    end
  end

end