mongoid-state_bits 0.2.3 → 0.3.0

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
  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