sequel-bit_fields 1.0.0 → 1.1.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.
Files changed (2) hide show
  1. data/lib/sequel/plugins/bit_fields.rb +20 -0
  2. metadata +4 -4
@@ -148,6 +148,26 @@ module Sequel::Plugins
148
148
  define_method("#{bit_field_name}?") do
149
149
  (self[bit_field_column] || 0) & index == index
150
150
  end
151
+
152
+ # inject the dataset methods
153
+ # example:
154
+ # MyModel.finished(true)
155
+ # MyModel.where(:foo => "bar").finished
156
+ # and would return a dataset with
157
+ # "status_bits & 1 = 1"
158
+ #
159
+ dataset_module do
160
+ define_method("#{bit_field_name}") do |*args|
161
+ value = [*args].first
162
+ value = true if value.nil?
163
+
164
+ if value
165
+ filter({(bit_field_column.to_sym.sql_number & index) => index})
166
+ else
167
+ exclude({(bit_field_column.to_sym.sql_number & index) => index})
168
+ end
169
+ end
170
+ end
151
171
  end
152
172
  end
153
173
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sequel-bit_fields
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-03-25 00:00:00.000000000 Z
12
+ date: 2013-06-07 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: sequel
@@ -49,7 +49,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
49
49
  version: '0'
50
50
  segments:
51
51
  - 0
52
- hash: 2545510621308517292
52
+ hash: 803470709023682891
53
53
  required_rubygems_version: !ruby/object:Gem::Requirement
54
54
  none: false
55
55
  requirements:
@@ -58,7 +58,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
58
58
  version: '0'
59
59
  segments:
60
60
  - 0
61
- hash: 2545510621308517292
61
+ hash: 803470709023682891
62
62
  requirements: []
63
63
  rubyforge_project:
64
64
  rubygems_version: 1.8.23