enummer 1.0.2 → 1.0.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4b16d1285b14678fff04f2b81f93fd3e161092c85a4895a115e718a8ebd18532
4
- data.tar.gz: a0ee6f85e5b967d04035a77a4cde6ab6f253fd929043764926114d809179abf4
3
+ metadata.gz: da7e1c544817a7e7b874a4ca20372880f20d7cafe6cc5bb663e2224cd99d7ff2
4
+ data.tar.gz: 3d18b5a7b106387dc8e76631f0b84204a7d11520f5dbb36b70bd8aa403b9569c
5
5
  SHA512:
6
- metadata.gz: b06d115443d1c965eabc9c0627583f98e4f0c9641b595851c3a9574f3e15a6afbe444eb93c1548a1e319250dc3a30a7902fc309c7ae7bdc836608d3baea9abf6
7
- data.tar.gz: 1284a66c8d5e60cc20207ff9b441612be3eaefa635d724e25878adfca3f2bacf11e362909dea2dbc48533455fb137ab78d22bbab1e9bd41bf77a050fa7366a05
6
+ metadata.gz: d16b48b263ca8ecf943e301993283ce356e3cf12961bd66839ce5a2400a3069197beeb4c75d24b2f7565a7c31fb1fe741e3a8c9a65f72d2b3d08549bf5ee3966
7
+ data.tar.gz: 2b4d0c8c13b4133299c16e29034233c98fd1446c477f48bdc1acc6fc62db687da4ed8df47db6354475fab593043bf9e8ce0f11ca9bbc4e41796d62d678d69ab4
data/README.md CHANGED
@@ -46,6 +46,21 @@ User.execute
46
46
  User.not_execute
47
47
  ```
48
48
 
49
+ Additionally, a `with_<name>` scope will be generated which returns all records that match all given options. E.g.:
50
+
51
+ ```ruby
52
+ user1 = User.create!(permissions: %i[read write execute])
53
+ user2 = User.create!(permissions: %i[read write])
54
+ user3 = User.create!(permissions: %i[read])
55
+
56
+ # .where(permissions: ...) will generate an `IN` query, returning all records that have *any*
57
+ # of those permissions.
58
+ User.where(permissions: %i[read write]) # => [user1, user2, user3]
59
+
60
+ # .with_permissions will return only users that have at least all of the given set of permissions
61
+ User.with_permissions(%i[read write]) # => [user1, user2]
62
+ ```
63
+
49
64
  ### Getter methods
50
65
 
51
66
  Simply calling the instance method for the column will return an array of options. Question mark methods are also provided.
@@ -87,6 +102,17 @@ lol stop
87
102
  ## Contributing
88
103
  Make an issue / PR and we'll see.
89
104
 
105
+ ### Development
106
+
107
+ ```bash
108
+ $ cd enummer
109
+ $ bundle install
110
+ $ cd test/dummy
111
+ $ RAILS_ENV=test DATABASE_URL=sqlite3:dummy_test rails db:setup
112
+ $ cd ../..
113
+ $ RAILS_ENV=test DATABASE_URL=sqlite3:dummy_test bin/test
114
+ ```
115
+
90
116
  ## Alternatives
91
117
  - [flag_shih_tzu](https://github.com/pboling/flag_shih_tzu)
92
118
  - Lots of booleans
@@ -22,7 +22,7 @@ module Enummer
22
22
  def serialize(value)
23
23
  return unless value
24
24
 
25
- Array.wrap(value).sum { |value_name| @bit_pairs.fetch(value_name, 0) }
25
+ Array.wrap(value).sum { |value_name| @bit_pairs.fetch(value_name.to_sym, 0) }
26
26
  end
27
27
 
28
28
  # @param [Numeric] value Numeric representation of values
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Enummer
4
- VERSION = "1.0.2"
4
+ VERSION = "1.0.3"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: enummer
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jamie Schembri
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-02-07 00:00:00.000000000 Z
11
+ date: 2022-03-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails