Class: Meteor::Core::Util::OrderHash

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeOrderHash

Returns a new instance of OrderHash.



2986
2987
2988
2989
# File 'lib/meteor.rb', line 2986

def initialize
  @keys = Array.new
  @values = Array.new
end

Instance Attribute Details

#keysObject

Returns the value of attribute keys.



2991
2992
2993
# File 'lib/meteor.rb', line 2991

def keys
  @keys
end

#valuesObject

Returns the value of attribute values.



2992
2993
2994
# File 'lib/meteor.rb', line 2992

def values
  @values
end

Instance Method Details

#[]=(key, value) ⇒ Object

superとして、Hash#[]=を呼び出す



3019
3020
3021
# File 'lib/meteor.rb', line 3019

def []=(key, value)
  store(key, value)
end

#clearObject



3002
3003
3004
3005
3006
# File 'lib/meteor.rb', line 3002

def clear
  @keys.clear
  @values.clear
  super
end

#delete(key) ⇒ Object



3008
3009
3010
3011
3012
3013
3014
3015
# File 'lib/meteor.rb', line 3008

def delete(key)
  if @keys.include?(key)
    @keys.delete(key)
    @values.delete(fetch(key))
    super(key)
  elsif yield(key)
  end
end

#eachObject



3023
3024
3025
3026
3027
3028
3029
3030
3031
# File 'lib/meteor.rb', line 3023

def each
  @keys.each do |k|
    arr_tmp = Array.new
    arr_tmp << k
    arr_tmp << self[k]
    yield(arr_tmp)
  end
  return self
end

#each_pairObject



3033
3034
3035
3036
3037
3038
# File 'lib/meteor.rb', line 3033

def each_pair
  @keys.each do |k|
    yield(k, self[k])
  end
  return self
end

#mapObject



3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
# File 'lib/meteor.rb', line 3040

def map
  arr_tmp = Array.new
  @keys.each do |k|
    arg_arr = Array.new
    arg_arr << k
    arg_arr << self[k]
    arr_tmp << yield(arg_arr)
  end
  return arr_tmp
end

#sort_hash(&block) ⇒ Object



3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
# File 'lib/meteor.rb', line 3051

def sort_hash(&block)
  if block_given?
    arr_tmp = self.sort(&block)
  elsif arr_tmp = self.sort
  end
  hash_tmp = OrderHash.new
  arr_tmp.each do |item|
    hash_tmp[item[0]] = item[1]
  end
  return hash_tmp
end

#store(key, value) ⇒ Object



2994
2995
2996
2997
2998
2999
3000
# File 'lib/meteor.rb', line 2994

def store(key, value)
  unless @keys.include?(key)
    @keys << key
    @values << value
  end
  super(key, value)
end