Sha256: 3766f6d92093818035eac9831de7e1c0d63eb6c493732d096f701745667f6471

Contents?: true

Size: 1.76 KB

Versions: 1

Compression:

Stored size: 1.76 KB

Contents

# BanditMask

BanditMask provides a generic wrapper for working with bitmasks.

## Installation

Add this line to your application's Gemfile:

```ruby
gem 'banditmask'
```

And then execute:

    $ bundle

Or install it yourself as:

    $ gem install banditmask

## Usage

Create a class which inherits from BanditMask and declare the available bit
names and their corresponding values.

```ruby
class ChmodMask < BanditMask
  bit :read,    0b001
  bit :write,   0b010
  bit :execute, 0b100
end

ChmodMask.bits # => { :read => 1, :write => 2, :execute => 4 }
```

To instantiate a new mask class:

```ruby
mask = ChmodMask.new
# or
current_bitmask = 0b001 | 0b010
mask = ChmodMask.new current_bitmask
```

Enable bits by name.

```ruby
mask << :read << :write
```

Ask whether specific bits are enabled.

```ruby
mask.include? :read    # => true
mask.include? :write   # => true
mask.include? :execute # => false
```

Retrieve a list of all currently enabled bits.

```ruby
mask.names # => [:read, :write]
```

## Development

After checking out the repo, run `bin/setup` to install dependencies. Then, run `bin/console` for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release` to create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).

## Contributing

1. Fork it ( https://github.com/[my-github-username]/banditmask/fork )
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 a new Pull Request

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
banditmask-0.1.0 README.md