Sha256: bcd014c281e7560afec75ced4aa7eb275793e89aa5eabee846b57376186d48bb

Contents?: true

Size: 1.16 KB

Versions: 2

Compression:

Stored size: 1.16 KB

Contents

# Rpromise

## Installation

Add this line to your application's Gemfile:

    gem 'rpromise'

And then execute:

    $ bundle

Or install it yourself as:

    $ gem install rpromise

## Usage

```ruby

class Task

  def async
    return ::Rpromise::Promise.new do |resolve, reject|
      Thread.new do
        sleep(1)
        value = Random.rand * 10

        if value > 5
          resolve.call(value)
        else
          reject.call('Oh boy, what have you done')
        end
      end
    end
  end

end

on_resolve = lambda do |value|

  puts value

  return ::Rpromise::Promise.new do |resolve, reject|
    Thread.new do
      sleep(1)
      # Do an async task
      resolve.call(value + 10)
    end
  end
end

on_reject = lambda do |error|
  puts error
end

Task.new.async
  .then(on_resolve, on_reject)
  .then(Proc.new do |value_plus_10|
    puts value_plus_10 # Returned value from the previous ``then`` promise resolved value
  end)

```

## Contributing

1. Fork it
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create new Pull Request

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rpromise-0.0.4 README.md
rpromise-0.0.2 README.md