Class: I18n::Inflector::LazyHashEnumerator

Inherits:
LazyEnumerator
  • Object
show all
Defined in:
lib/i18n-inflector/lazy_enum.rb

Overview

This class implements simple enumerators for hashes that allow to do lazy operations on them.

Instance Method Summary collapse

Methods inherited from LazyEnumerator

#+, #empty?, for, #initialize

Constructor Details

This class inherits a constructor from I18n::Inflector::LazyEnumerator

Instance Method Details

#append(key, value) ⇒ I18n::Inflector::LazyHashEnumerator

Appending operator for Hash enumerators

Returns:



181
182
183
184
185
186
187
188
# File 'lib/i18n-inflector/lazy_enum.rb', line 181

def append(key, value)
  self.class.new do |yielder|
    each do |k, v|
      yielder.yield(k, v)
    end
    yielder.yield(key, value)
  end
end

#ary_map(&block) ⇒ I18n::Inflector::LazyHashEnumerator

Hash to Array mapping enumerator

Returns:



202
203
204
205
206
207
208
# File 'lib/i18n-inflector/lazy_enum.rb', line 202

def ary_map(&block)
  LazyHashEnumerator.new do |yielder|
    each do |value|
      yielder << block[value]
    end
  end
end

#each_keyI18n::Inflector::LazyArrayEnumerator.new

Keys enumerator

Returns:



228
229
230
231
232
233
234
# File 'lib/i18n-inflector/lazy_enum.rb', line 228

def each_key
  LazyArrayEnumerator.new do |yielder|
    each do |k, _v|
      yielder << k
    end
  end
end

#each_valueI18n::Inflector::LazyArrayEnumerator.new

Values enumerator

Returns:



238
239
240
241
242
243
244
# File 'lib/i18n-inflector/lazy_enum.rb', line 238

def each_value
  LazyArrayEnumerator.new do |yielder|
    each do |_k, v|
      yielder << v
    end
  end
end

#insert(key, value) ⇒ I18n::Inflector::LazyHashEnumerator

Insertion operator for Hash enumerators

Returns:



170
171
172
173
174
175
176
177
# File 'lib/i18n-inflector/lazy_enum.rb', line 170

def insert(key, value)
  self.class.new do |yielder|
    yielder.yield(key, value)
    each do |k, v|
      yielder.yield(k, v)
    end
  end
end

#keysObject

This method converts resulting keys to an array.



212
213
214
215
216
# File 'lib/i18n-inflector/lazy_enum.rb', line 212

def keys
  ary = []
  each { |k, _v| ary << k }
  ary
end

#map(&block) ⇒ I18n::Inflector::LazyHashEnumerator

Hash mapping enumerator

Returns:



192
193
194
195
196
197
198
# File 'lib/i18n-inflector/lazy_enum.rb', line 192

def map(&block)
  LazyHashEnumerator.new do |yielder|
    each do |k, v|
      yielder.yield(k, block[k, v])
    end
  end
end

#reject(&block) ⇒ I18n::Inflector::LazyHashEnumerator

Hash rejecting enumerator

Returns:



258
259
260
261
262
263
264
# File 'lib/i18n-inflector/lazy_enum.rb', line 258

def reject(&block)
  self.class.new do |yielder|
    each do |k, v|
      yielder.yield(k, v) unless block[k, v]
    end
  end
end

#select(&block) ⇒ I18n::Inflector::LazyHashEnumerator

Hash selecting enumerator

Returns:



248
249
250
251
252
253
254
# File 'lib/i18n-inflector/lazy_enum.rb', line 248

def select(&block)
  self.class.new do |yielder|
    each do |k, v|
      yielder.yield(k, v) if block[k, v]
    end
  end
end

#to_hHash

Creates a Hash kind of object by collecting all data from enumerated collection.

Returns:

  • (Hash)

    the resulting hash



162
163
164
165
166
# File 'lib/i18n-inflector/lazy_enum.rb', line 162

def to_h
  h = {}
  each { |k, v| h[k] = v }
  h
end

#valuesObject

This method converts resulting values to an array.



220
221
222
223
224
# File 'lib/i18n-inflector/lazy_enum.rb', line 220

def values
  ary = []
  each { |_k, v| ary << v }
  ary
end