bit_flag 0.1.1 → 0.2.0
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.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/lib/bit_flag.rb +24 -12
- data.tar.gz.sig +1 -0
- metadata +38 -6
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8ac9475d495b5fda77ca9b13630144880a120a16eb81d1361ac114cbfc8c1d46
|
4
|
+
data.tar.gz: a8c4b50388f46197b42f5b040fe69d57fe9ef71401e11d5ad2bce7224a4e239d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 10ec3c31c7c79b0abf46768fcf9bb3de5ae621472c5011d3c90e15e3cacfe636402ec01349b290559ce5982cfb29bc75987c49a0924aa6223bcd6881d0783b08
|
7
|
+
data.tar.gz: c8a64f058a9750a8b2a6eee223c4cf276a77ddd7d18b6cff955668565c28594f758b55748156e0705e8801791d5b47324bec0d52670f9c296bc8149c1000598b
|
checksums.yaml.gz.sig
ADDED
Binary file
|
data/lib/bit_flag.rb
CHANGED
@@ -1,26 +1,38 @@
|
|
1
1
|
class BitFlag
|
2
|
-
def self.
|
3
|
-
|
4
|
-
.each_with_index
|
5
|
-
.to_h { |flag, index| [flag, 1 << index] }
|
2
|
+
def self.from_array(flag_list, initial_value = 0)
|
3
|
+
BitFlag.new(make_flags(flag_list), initial_value)
|
6
4
|
end
|
7
5
|
|
8
|
-
def
|
9
|
-
|
10
|
-
|
6
|
+
def self.make_flags(flag_list)
|
7
|
+
hash =
|
8
|
+
Array(flag_list)
|
9
|
+
.each_with_index
|
10
|
+
.to_h { |flag, index| [flag, 1 << index] }
|
11
|
+
hash.default = 0
|
12
|
+
hash
|
11
13
|
end
|
12
14
|
|
13
|
-
def
|
14
|
-
@
|
15
|
+
def initialize(flag_list, initial_value = 0)
|
16
|
+
@flag_list = flag_list
|
17
|
+
@flags = 0
|
18
|
+
@flags = initial_value.is_a?(Array) ? add(initial_value) : initial_value
|
19
|
+
end
|
20
|
+
|
21
|
+
def add(flags)
|
22
|
+
@flags = Array(flags).reduce(@flags) { |acc, flag| acc | @flag_list[flag] }
|
15
23
|
end
|
16
24
|
|
17
25
|
def has?(flags)
|
18
26
|
Array(flags)
|
19
|
-
.map { |flag| @
|
27
|
+
.map { |flag| @flag_list[flag] }
|
20
28
|
.all? { |flag| (@flags | flag) == @flags }
|
21
29
|
end
|
22
30
|
|
23
|
-
def remove(
|
24
|
-
@flags = @flags & ~@
|
31
|
+
def remove(flags)
|
32
|
+
@flags = Array(flags).reduce(@flags) { |acc, flag| acc & ~@flag_list[flag] }
|
33
|
+
end
|
34
|
+
|
35
|
+
def value_of
|
36
|
+
@flags
|
25
37
|
end
|
26
38
|
end
|
data.tar.gz.sig
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
_Ȭ�//��Q6WM3�j�V�i��5&?ϰ����VO9�\Al�!$���o �
|
metadata
CHANGED
@@ -1,26 +1,58 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bit_flag
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- SavagePixie
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
|
-
cert_chain:
|
11
|
-
|
10
|
+
cert_chain:
|
11
|
+
- |
|
12
|
+
-----BEGIN CERTIFICATE-----
|
13
|
+
MIIEkjCCAvqgAwIBAgIBATANBgkqhkiG9w0BAQsFADBHMRQwEgYDVQQDDAtzYXZh
|
14
|
+
Z2VwaXhpZTEaMBgGCgmSJomT8ixkARkWCnByb3Rvbm1haWwxEzARBgoJkiaJk/Is
|
15
|
+
ZAEZFgNjb20wHhcNMjIwNjE4MDcwOTE0WhcNMjMwNjE4MDcwOTE0WjBHMRQwEgYD
|
16
|
+
VQQDDAtzYXZhZ2VwaXhpZTEaMBgGCgmSJomT8ixkARkWCnByb3Rvbm1haWwxEzAR
|
17
|
+
BgoJkiaJk/IsZAEZFgNjb20wggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIB
|
18
|
+
gQDO/A0ZiQbyS1sXv2OuKo8l1IdTnCxNlM46MBaA4tlVUjtwqLuObVSIJqRlkmd7
|
19
|
+
Yjz23rcmqMSFehTuhN7pUG6tvWx4zcLgT71kC9/dOvFg/l1kGIKxnGKx5XxjMX3K
|
20
|
+
/jPVc5XIYslAVDIjnqdkIWbVduzGIdR9gZfaijtz7vfBniQPKSb3VLoEgonWuHT0
|
21
|
+
y/oB7rh0wFhruL1l3+e2a8kGCkewueVh6bq4+vLkN1eEAmJ2HChL/ah08oG9+4Ii
|
22
|
+
QctSr2tvVu7BvpawOmMU1yPm3ST1aRWW/n5G8n9yBqffcqc78bUqTH1A12OXAYuy
|
23
|
+
GDAch/yp2KVk1vsYAMbFjO0bsFJAYFCmBMQMGF5YB7Tyk6kAFExXxAMDVTXefIYU
|
24
|
+
iPkAiD6xMTdXNbi50bRV6r+jBh5vxrGfz8yPIJslLvTyMY+25YcN7fmA98QyfRSB
|
25
|
+
Uo5Ta+NhS8/PSXSJdVbe7th2ro1eibPiX3d8Y6FsFUDAfFWjq6v3BRW4lV9Hq3q+
|
26
|
+
Cm0CAwEAAaOBiDCBhTAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQU
|
27
|
+
lH70w2iQuq20y+aJ9w4jZNYNqT4wJQYDVR0RBB4wHIEac2F2YWdlcGl4aWVAcHJv
|
28
|
+
dG9ubWFpbC5jb20wJQYDVR0SBB4wHIEac2F2YWdlcGl4aWVAcHJvdG9ubWFpbC5j
|
29
|
+
b20wDQYJKoZIhvcNAQELBQADggGBADFC5YJfygJSjUGAbbm/WD8Yk22/dAP5nVuE
|
30
|
+
8t3Tfe7djhpkx/CvnGjoSKZJHP+5fo38TXtpGaQjOKqlpRV6TI5X3+WQ7NvvCrRf
|
31
|
+
zdABsbmCc293yAF538OhUlJFDOsFzrF8E/o804GC1HffHI2RjLDfYEJV0hHldjak
|
32
|
+
+njUz9YQP8Gkrn7PHl6BN1GcKd+PdP5TygLl68dE978xtEoAzsX0gbjXyK0Q0w9W
|
33
|
+
tQqMwlBTwQ4xZix1GNWwj/+iwfzstVyqkhlLZVyxtdKSTYMlfKwicqS9MRSgsdka
|
34
|
+
nFppm/edgzsyWUsYTxp385E/UVFbUJLnwCdwCklVLVyf2LLI/SnklbHzIzM37TnL
|
35
|
+
Gmv8zvjPh2ytJfXH7SE7tdtJKnYo/R89iXu6tlSW1Ic1MSiO+klWxnNAGguslbSu
|
36
|
+
K6asxcgTV4QtFz5x34774dI4sCGYwXZrGMkq2msDZArGrtkAQcy8NfcDuXKbNZpU
|
37
|
+
sOseBccVsuNGBF697/8Vytn4yQpjzA==
|
38
|
+
-----END CERTIFICATE-----
|
39
|
+
date: 2022-06-18 00:00:00.000000000 Z
|
12
40
|
dependencies: []
|
13
|
-
description:
|
41
|
+
description: 'BitFlag provides an api to easily generate and manage bit flags.
|
42
|
+
|
43
|
+
'
|
14
44
|
email: savagepixie@protonmail.com
|
15
45
|
executables: []
|
16
46
|
extensions: []
|
17
47
|
extra_rdoc_files: []
|
18
48
|
files:
|
19
49
|
- lib/bit_flag.rb
|
20
|
-
homepage: https://
|
50
|
+
homepage: https://gitlab.com/SavagePixie/bit-flag
|
21
51
|
licenses:
|
22
52
|
- MIT
|
23
|
-
metadata:
|
53
|
+
metadata:
|
54
|
+
bug_tracker_uri: https://gitlab.com/SavagePixie/bit-flag/-/issues
|
55
|
+
source_code_uri: https://gitlab.com/SavagePixie/bit-flag
|
24
56
|
post_install_message:
|
25
57
|
rdoc_options: []
|
26
58
|
require_paths:
|
metadata.gz.sig
ADDED
Binary file
|