class EaseEngine::Data::Hary
Public Class Methods
new()
click to toggle source
# File lib/ease_engine/data.rb, line 14 def initialize @ary = [] @indexes = {} end
Public Instance Methods
add( id, data )
click to toggle source
# File lib/ease_engine/data.rb, line 19 def add( id, data ) if ! @indexes.key?( id ) info = Info.new( id, @ary.size, data ) @ary.push info @indexes[ id ] = info.index else info = @ary[ @indexes[ id ] ] info.id = id info.data = data end sort! id end
each() { |id, index, data| ... }
click to toggle source
# File lib/ease_engine/data.rb, line 64 def each @ary.each{|info| yield info.id, info.index, info.data } end
get( id )
click to toggle source
# File lib/ease_engine/data.rb, line 48 def get( id ) @indexes[ id ] end
get_at( index )
click to toggle source
# File lib/ease_engine/data.rb, line 52 def get_at( index ) ( @ary.size <= index ) ? nil : @ary[ index ] end
key?( id )
click to toggle source
# File lib/ease_engine/data.rb, line 56 def key?( id ) @indexes.key?( id ) end
remove( id )
click to toggle source
# File lib/ease_engine/data.rb, line 34 def remove( id ) remove_at( @indexes[ id ] ) if @indexes.key?( id ) end
remove_at( index )
click to toggle source
# File lib/ease_engine/data.rb, line 38 def remove_at( index ) return nil if @ary.size <= index info = @ary[ index ] @ary.delete_at( index ) @indexes.delete( info.id ) update if index != @ary.size # 末尾データの削除なら、更新しない info.data end
size()
click to toggle source
# File lib/ease_engine/data.rb, line 60 def size @ary.size end
sort!()
click to toggle source
# File lib/ease_engine/data.rb, line 77 def sort! update end
update()
click to toggle source
# File lib/ease_engine/data.rb, line 70 def update @ary.each_with_index{|info, index| info.index = index @indexes[ info.id ] = index } end