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(&block) ⇒ I18n::Inflector::LazyArrayEnumerator.new
Keys enumerator.
-
#each_value(&block) ⇒ 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
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
165 166 167 168 169 170 171 172 |
# File 'lib/i18n-inflector/lazy_enum.rb', line 165 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
186 187 188 189 190 191 192 |
# File 'lib/i18n-inflector/lazy_enum.rb', line 186 def ary_map(&block) LazyHashEnumerator.new do |yielder| each do |value| yielder << block[value] end end end |
#each_key(&block) ⇒ I18n::Inflector::LazyArrayEnumerator.new
Keys enumerator
212 213 214 215 216 217 218 |
# File 'lib/i18n-inflector/lazy_enum.rb', line 212 def each_key(&block) LazyArrayEnumerator.new do |yielder| each do |k,v| yielder << k end end end |
#each_value(&block) ⇒ I18n::Inflector::LazyArrayEnumerator.new
Values enumerator
222 223 224 225 226 227 228 |
# File 'lib/i18n-inflector/lazy_enum.rb', line 222 def each_value(&block) LazyArrayEnumerator.new do |yielder| each do |k,v| yielder << v end end end |
#insert(key, value) ⇒ I18n::Inflector::LazyHashEnumerator
Insertion operator for Hash enumerators
154 155 156 157 158 159 160 161 |
# File 'lib/i18n-inflector/lazy_enum.rb', line 154 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.
196 197 198 199 200 |
# File 'lib/i18n-inflector/lazy_enum.rb', line 196 def keys ary = [] each{ |k,v| ary << k } return ary end |
#map(&block) ⇒ I18n::Inflector::LazyHashEnumerator
Hash mapping enumerator
176 177 178 179 180 181 182 |
# File 'lib/i18n-inflector/lazy_enum.rb', line 176 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
242 243 244 245 246 247 248 |
# File 'lib/i18n-inflector/lazy_enum.rb', line 242 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
232 233 234 235 236 237 238 |
# File 'lib/i18n-inflector/lazy_enum.rb', line 232 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.
146 147 148 149 150 |
# File 'lib/i18n-inflector/lazy_enum.rb', line 146 def to_h h = Hash.new each{|k,v| h[k]=v } h end |
#values ⇒ Object
This method converts resulting values to an array.
204 205 206 207 208 |
# File 'lib/i18n-inflector/lazy_enum.rb', line 204 def values ary = [] each{ |k,v| ary << v } return ary end |