Sha256: af0ff899a863c64d0aaa70192c9149eb9b25da90b2fc6dd3e649811ec168820d

Contents?: true

Size: 1.53 KB

Versions: 1

Compression:

Stored size: 1.53 KB

Contents

# Addy

Allows pretty summations. Instead of writing:

    (1..5).inject(0) do |memo, num|
      memo + (num**num)
    end

You write:

    sum(1..5) do |num|
      num**num
    end
    
Personally, I would rather write the latter.

## Usage

Install the gem:

    gem install addy

Then use it!

    require 'addy'

    class MyClass
      #include it in a class or in Object to get it everywhere
      include Addy
      
      def my_awesome_adder(range)
        sum(range)
      end
    end

### Calling It
You can call either sum or summation. They're aliases for the same thing.

When you pass a block to sum it will execute the block on the current number before adding it to the sum.

    sum(1..5) {|num| num + 1} #=> 20

You don't have to pass a block though!

    #this
    sum(1..5)             #=> 15
    
    #is equivalent to
    sum(1..5) {|num| num} #=> 15
### Input
Ranges and numeric arrays both work well.

    sum(1..5)         #=> 15
    sum([1,2,3,4,5])  #=> 15



## Note on Patches/Pull Requests
 
* Fork the project.
* Make your feature addition or bug fix.
* Add tests for it. This is important so I don't break it in a
  future version unintentionally.
* Commit, do not mess with rakefile, version, or history.
  (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
* Send me a pull request. Bonus points for topic branches.

## Copyright

Copyright (c) 2010 Allen Madsen. See LICENSE for details.

## PS: Isn't it ridiculous how much documentation I wrote for one function?

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
addy-1.0.0 README.md