Sha256: a95d3275a4d82847bd67da04638abd31220a9d8d8065e41df9b366f9f8087e8f

Contents?: true

Size: 774 Bytes

Versions: 37

Compression:

Stored size: 774 Bytes

Contents

class Array
  def sum
    self.inject {|r, i| r + i }
  end

  def avg
    self.sum / self.length
  end

  def group_by(name, &block)
    item_h = {}

    self.each do |item|
      key = item[name.to_s]
      item_h[key] ||= []
      item_h[key] << item
    end

    return item_h unless block

    new_item_h = {}

    item_h.each do |key, item_list|
      if block.arity == 2
        new_item_h[key] = block.call(item_listm key)
      else
        new_item_h[key] = block.call(item_list)
      end
    end

    return new_item_h
  end

  def method_missing(method_name, *args, &block)
    case method_name.to_s
    when /=\Z/
      self.each {|i| i[method_name.to_s.sub(/=\Z/, '')] = *args }
      self
    else
      self.map {|i| i[method_name.to_s] }
    end
  end
end

Version data entries

37 entries across 37 versions & 1 rubygems

Version Path
ddbcli-0.5.4 lib/ddbcli/ddb-rubyext.rb
ddbcli-0.5.3 lib/ddbcli/ddb-rubyext.rb
ddbcli-0.5.2 lib/ddbcli/ddb-rubyext.rb
ddbcli-0.5.1 lib/ddbcli/ddb-rubyext.rb
ddbcli-0.5.0 lib/ddbcli/ddb-rubyext.rb
ddbcli-0.5.0.beta lib/ddbcli/ddb-rubyext.rb
ddbcli-0.4.2.beta2 lib/ddbcli/ddb-rubyext.rb
ddbcli-0.4.2.beta lib/ddbcli/ddb-rubyext.rb
ddbcli-0.4.1 lib/ddbcli/ddb-rubyext.rb
ddbcli-0.4.0 lib/ddbcli/ddb-rubyext.rb
ddbcli-0.3.8 lib/ddbcli/ddb-rubyext.rb
ddbcli-0.3.7 lib/ddbcli/ddb-rubyext.rb
ddbcli-0.3.6 lib/ddbcli/ddb-rubyext.rb
ddbcli-0.3.5 lib/ddbcli/ddb-rubyext.rb
ddbcli-0.3.4 lib/ddbcli/ddb-rubyext.rb
ddbcli-0.3.3 lib/ddbcli/ddb-rubyext.rb
ddbcli-0.3.2 lib/ddbcli/ddb-rubyext.rb
ddbcli-0.3.1 lib/ddbcli/ddb-rubyext.rb
ddbcli-0.3.0 lib/ddbcli/ddb-rubyext.rb
ddbcli-0.2.7 lib/ddbcli/ddb-rubyext.rb