bit_flag 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/bit_flag.rb +26 -0
  3. metadata +43 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 6eb5ee39e26f9bff07ae24dec21e758853cb3e8b9e55b65252847d871ca080f9
4
+ data.tar.gz: 23796624b75b4742e8ed1d1a69fcca42327abd663895785d6f0b317119d0a730
5
+ SHA512:
6
+ metadata.gz: 2eafc7d1dc90a85417765be4fdd76a0b34f46e07d2b3c6500630c329902e174681090849ed064bada39cdf5273e62c34172ffca46ea9f25c26820c8e06ba5740
7
+ data.tar.gz: 9527808cabc3c536d2ea0778cd1d621554bfbe19b0983954931818cd442615a3d856773aae3f36eb5ef738956da45cfda09464a57d2e961311de0088c02ca87c
data/lib/bit_flag.rb ADDED
@@ -0,0 +1,26 @@
1
+ class BitFlag
2
+ def self.make_flags(flags_list)
3
+ Array(flags_list)
4
+ .each_with_index
5
+ .to_h { |flag, index| [flag, 1 << index] }
6
+ end
7
+
8
+ def initialize(flags, flags_list)
9
+ @flags_list = flags_list
10
+ @flags = flags
11
+ end
12
+
13
+ def add(flag)
14
+ @flags = @flags | @flags_list[flag]
15
+ end
16
+
17
+ def has?(flags)
18
+ Array(flags)
19
+ .map { |flag| @flags_list[flag] }
20
+ .all? { |flag| (@flags | flag) == @flags }
21
+ end
22
+
23
+ def remove(flag)
24
+ @flags = @flags & ~@flags_list[flag]
25
+ end
26
+ end
metadata ADDED
@@ -0,0 +1,43 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: bit_flag
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1
5
+ platform: ruby
6
+ authors:
7
+ - SavagePixie
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2022-06-17 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: Gem to create and manage bit flags.
14
+ email: savagepixie@protonmail.com
15
+ executables: []
16
+ extensions: []
17
+ extra_rdoc_files: []
18
+ files:
19
+ - lib/bit_flag.rb
20
+ homepage: https://rubygems.org/gems/bit_flag
21
+ licenses:
22
+ - MIT
23
+ metadata: {}
24
+ post_install_message:
25
+ rdoc_options: []
26
+ require_paths:
27
+ - lib
28
+ required_ruby_version: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ required_rubygems_version: !ruby/object:Gem::Requirement
34
+ requirements:
35
+ - - ">="
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ requirements: []
39
+ rubygems_version: 3.3.7
40
+ signing_key:
41
+ specification_version: 4
42
+ summary: Gem to create and manage bit flags.
43
+ test_files: []