Class: I18n::Inflector::LazyHashEnumerator
- Inherits:
-
LazyEnumerator
- Object
- Enumerator
- LazyEnumerator
- I18n::Inflector::LazyHashEnumerator
- 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
-
#append(key, value) ⇒ I18n::Inflector::LazyHashEnumerator
Appending operator for Hash enumerators.
-
#ary_map(&block) ⇒ I18n::Inflector::LazyHashEnumerator
Hash to Array mapping enumerator.
-
#each_key ⇒ I18n::Inflector::LazyArrayEnumerator.new
Keys enumerator.
-
#each_value ⇒ I18n::Inflector::LazyArrayEnumerator.new
Values enumerator.
-
#insert(key, value) ⇒ I18n::Inflector::LazyHashEnumerator
Insertion operator for Hash enumerators.
-
#keys ⇒ Object
This method converts resulting keys to an array.
-
#map(&block) ⇒ I18n::Inflector::LazyHashEnumerator
Hash mapping enumerator.
-
#reject(&block) ⇒ I18n::Inflector::LazyHashEnumerator
Hash rejecting enumerator.
-
#select(&block) ⇒ I18n::Inflector::LazyHashEnumerator
Hash selecting enumerator.
-
#to_h ⇒ Hash
Creates a Hash kind of object by collecting all data from enumerated collection.
-
#values ⇒ Object
This method converts resulting values to an array.
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
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
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_key ⇒ I18n::Inflector::LazyArrayEnumerator.new
Keys enumerator
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_value ⇒ I18n::Inflector::LazyArrayEnumerator.new
Values enumerator
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
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 |
#keys ⇒ Object
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
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
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
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_h ⇒ Hash
Creates a Hash kind of object by collecting all data from enumerated collection.
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 |
#values ⇒ Object
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 |