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

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

Overview

if RUBY_VERSION < RUBY_VERSION_1_9_0 then

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeOrderHash

Returns a new instance of OrderHash.



2889
2890
2891
2892
# File 'lib/meteor.rb', line 2889

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

Instance Attribute Details

#keysObject

Returns the value of attribute keys.



2894
2895
2896
# File 'lib/meteor.rb', line 2894

def keys
  @keys
end

#valuesObject

Returns the value of attribute values.



2895
2896
2897
# File 'lib/meteor.rb', line 2895

def values
  @values
end

Instance Method Details

#[]=(key, value) ⇒ Object

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



2922
2923
2924
# File 'lib/meteor.rb', line 2922

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

#clearObject



2905
2906
2907
2908
2909
# File 'lib/meteor.rb', line 2905

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

#delete(key) ⇒ Object



2911
2912
2913
2914
2915
2916
2917
2918
# File 'lib/meteor.rb', line 2911

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

#eachObject



2926
2927
2928
2929
2930
2931
2932
2933
2934
# File 'lib/meteor.rb', line 2926

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



2936
2937
2938
2939
2940
2941
# File 'lib/meteor.rb', line 2936

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

#mapObject



2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
# File 'lib/meteor.rb', line 2943

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



2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
# File 'lib/meteor.rb', line 2954

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



2897
2898
2899
2900
2901
2902
2903
# File 'lib/meteor.rb', line 2897

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