enummer 1.0.2 → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
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