sequel-bit_fields 1.1.1 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/sequel/plugins/bit_fields.rb +25 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6613dbf58626f9623cc318f43184c0f8de3d157c
|
4
|
+
data.tar.gz: e2c8d720122e91934b064ac557f8144d9f6db178
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7de534d3b664d99396479a5f56ecf82098a8c543791f0bf6c444e2c3d4aea042c630ea746abb27a862b11f5b831dbb2a8119b6c35619406150a56af143296e84
|
7
|
+
data.tar.gz: fd2487143a2c6a4beef8b7e730343d39c852ac3b16ce69480bcee8d6b615a0b8292d2976732c9c29fdb923dc2f72cb0de2ed3224b694786c2b84b23eedccc7e4
|
@@ -64,8 +64,32 @@ module Sequel::Plugins
|
|
64
64
|
end
|
65
65
|
end
|
66
66
|
end
|
67
|
-
|
67
|
+
|
68
68
|
model.instance_eval do
|
69
|
+
# inject convenience method for multiple flag or bit_field assignment
|
70
|
+
# overrides default assignment behavior for column_name=
|
71
|
+
# example:
|
72
|
+
# model.roles = [:author, :contributor, :reader]
|
73
|
+
# model.roles = 6 # [:contributor, :reader]
|
74
|
+
flag_assign = bit_field_column.to_s + '='
|
75
|
+
unless respond_to?(flag_assign)
|
76
|
+
define_method(flag_assign) do |args|
|
77
|
+
args = [*args]
|
78
|
+
|
79
|
+
if args.empty?
|
80
|
+
self[bit_field_column] = 0
|
81
|
+
#argument is an integer
|
82
|
+
elsif args.first.is_a?(Fixnum)
|
83
|
+
self[bit_field_column] = args.first
|
84
|
+
else
|
85
|
+
#set each bit_field presented in args to true, others to false
|
86
|
+
bit_fields.each do |bit_field|
|
87
|
+
self.send("#{bit_field[:name]}=", args.include?(bit_field[:name]))
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
69
93
|
unless respond_to?(:bit_field_values_for)
|
70
94
|
# inject the method bit_field_values_for which
|
71
95
|
# returns a hash with all the values of the bit_fields
|
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.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sascha Depold
|
@@ -51,7 +51,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
51
51
|
version: '0'
|
52
52
|
requirements: []
|
53
53
|
rubyforge_project:
|
54
|
-
rubygems_version: 2.
|
54
|
+
rubygems_version: 2.2.2
|
55
55
|
signing_key:
|
56
56
|
specification_version: 4
|
57
57
|
summary: A Sequel compatible version of common bit field technique.
|