Module: Fairy::Inject::Interface
- Defined in:
- lib/fairy/client/inject.rb
Instance Method Summary collapse
-
#inject(block_source, opts = nil) ⇒ Object
filter.inject(%…, :init_value = val).
- #max(block_source = nil, opts = nil) ⇒ Object
- #max_by(block_source, opts = nil) ⇒ Object
- #min(block_source = nil, opts = nil) ⇒ Object
- #min_by(block_source, opts = nil) ⇒ Object
Instance Method Details
#inject(block_source, opts = nil) ⇒ Object
filter.inject(%…, :init_value = val)
13 14 15 16 17 18 19 |
# File 'lib/fairy/client/inject.rb', line 13 def inject(block_source, opts = nil) block_source = BlockSource.new(block_source) inject = Inject.new(@fairy, opts, block_source) inject.input = self #DeepConnect::future{inject.value} inject end |
#max(block_source = nil, opts = nil) ⇒ Object
38 39 40 41 42 43 44 |
# File 'lib/fairy/client/inject.rb', line 38 def max(block_source=nil, opts = nil) unless block_source block_source = %{|e1, e2| e1 <=> e2} end inject(%{|r, v| (proc{#{block_source}}.call(r, v) < 0) ? v : r}) end |
#max_by(block_source, opts = nil) ⇒ Object
46 47 48 49 50 51 52 53 |
# File 'lib/fairy/client/inject.rb', line 46 def max_by(block_source, opts = nil) pair = map(%{|v| [proc{#{block_source}}.call(v), v]}) max_by = pair.inject(%{|r, v| ((r[0] <=> v[0]) < 0) ? v : r}) def max_by.value super[1] end max_by end |
#min(block_source = nil, opts = nil) ⇒ Object
21 22 23 24 25 26 27 |
# File 'lib/fairy/client/inject.rb', line 21 def min(block_source=nil, opts = nil) unless block_source block_source = %{|e1, e2| e1 <=> e2} end inject(%{|r, v| (proc{#{block_source}}.call(r, v) < 0) ? r : v}) end |
#min_by(block_source, opts = nil) ⇒ Object
29 30 31 32 33 34 35 36 |
# File 'lib/fairy/client/inject.rb', line 29 def min_by(block_source, opts = nil) pair = map(%{|v| [proc{#{block_source}}.call(v), v]}) min_by = pair.inject(%{|r, v| ((r[0] <=> v[0]) < 0) ? r : v}) def min_by.value super[1] end min_by end |