mongoid-state_bits 0.2.3 → 0.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8f663b1d207eaf1776e1bf070b6fe2c341130765
4
- data.tar.gz: cf5763e5e8f7e7659c45bbcb6725c21452baa544
3
+ metadata.gz: c9c8c0251915e5fd33266fda41b684088891f42e
4
+ data.tar.gz: a43c13a209e1f802ecabfcc794d9c4998a8bb0fa
5
5
  SHA512:
6
- metadata.gz: a7ccb614becb163df66afdc19a804aa513979a0bfb8b2fde1205c816d73de34079b25e22409fbdbbc5991bb99af4d28e414c94bf0557c95560277b379ea76f53
7
- data.tar.gz: 495030688da91754f187e049a37cf415c2d2ab4608b5848b8e9d8ffe689ad2bce431bd87a554f61ba5b6cf23825aebd0f7da5dce8a18c61ea8e70a09f934ac6b
6
+ metadata.gz: cf65dea9dc8da39d234287f4c2dbfbda0c32640693e9d513a12bea4832b3aeffadcf06f200a5d6d876fe9ce9c43e41bf8028f8871e35a566cdd6fec55cab49f7
7
+ data.tar.gz: 602b2c2459c01f800f83a4311cf9e5ee53a6c21ef33f087d5764680e3d9fc80a4e2eb516178919bd493666dae48b2b7074af0912e3f9bd3520553f776b447ae8
data/README.md CHANGED
@@ -41,6 +41,10 @@ Now(v0.2.0) it supports default values:
41
41
  state_bits deleted:false, commentable: true, original: true
42
42
  end
43
43
 
44
+ v0.3.0 supports multiple selector:
45
+
46
+ Post.state(deleted: true, original: false)
47
+
44
48
  ## Contributing
45
49
 
46
50
  1. Fork it ( http://github.com/Slacken/mongoid-state_bits/fork )
@@ -29,11 +29,18 @@ module Mongoid
29
29
  end
30
30
  # declare the field
31
31
  field :state_bits, type: Integer, default: default
32
- scope :state_bits, ->(map) do
32
+
33
+ scope :state, ->(map) do
33
34
  keys = bits.map{|k| k.to_sym}
34
- value = map.inject(0){|sum, v| sum += (v[1] ? 2**keys.index(v[0]): 0)}
35
- where("this.state_bits & #{value} == #{value}")
35
+ select, filter = 0, 0
36
+ map.each_pair do |key, value|
37
+ v = 2**keys.index(key)
38
+ select += v
39
+ filter += value ? v : 0
40
+ end
41
+ where("this.state_bits & #{select} == #{filter}")
36
42
  end
43
+
37
44
  # define methods
38
45
  bits.each_with_index do |bit, index|
39
46
  define_method "#{bit}=" do |bool|
@@ -1,5 +1,5 @@
1
1
  module Mongoid
2
2
  module StateBits
3
- VERSION = "0.2.3"
3
+ VERSION = "0.3.0"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongoid-state_bits
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Binz