sequel-bit_fields 1.1.1 → 1.2.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 +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.
|