Sha256: e5d1303308bd6dfdae5e3073df86ac498e72ecec4931ea1db7d1e2b18252457b

Contents?: true

Size: 1.14 KB

Versions: 1

Compression:

Stored size: 1.14 KB

Contents

[![Gem Version](https://badge.fury.io/rb/with_last.svg)](https://badge.fury.io/rb/with_last)
![Ruby](https://github.com/oieioi/with_last.rb/workflows/Ruby/badge.svg)

# with_last.rb

- Add `with_last` method to `Enumerator` class.
- Add `last?` method to `Enumerator` class.
- Add `each_with_last` to `Enumerable` module.

## Installation

```ruby
gem 'with_last'
```

And then execute:

    $ bundle install

## Usage

### `Enumerable#each_with_last`

```ruby
[1,2,3].each_with_last { |item, last|
  print "#{item}#{last ? '!' : ' => '}"
}
```

it prints `1 => 2 => 3!`

### `Enumerator#with_last`

```ruby

[1,2,3]
  .map
  .with_last { |item, last| "#{item * item}#{last ? '.' : ''}" }
  .join(',')
```

it returns `"1,4,9."`

### `Enumerator#last?`

```ruby
e = [1,2].to_enum
e.last? # => false
e.next  # => 1
e.last? # => false
e.next  # => 2
e.last? # => true
```

### in ERB

```erb
<% %w[hoge fuga piyo].each_with_last do |item, is_last| %>
  <%= item %><%= is_last ? '.' : ', ' %>
<% end %>
```

it renders;

```html
hoge, fuga, piyo.
```

## License

The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
with_last-0.3.0 README.md