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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 25d35297aade3c523abd3f86b419ab9df1672bbd
4
- data.tar.gz: f6e81ee7deec95230e61c96847772ce172206dab
3
+ metadata.gz: 6613dbf58626f9623cc318f43184c0f8de3d157c
4
+ data.tar.gz: e2c8d720122e91934b064ac557f8144d9f6db178
5
5
  SHA512:
6
- metadata.gz: c07b5353d2082f40e7edd77d2c90d630d7488a90a55fa1a6e74dc6a0af1c3b42096e9aca208b16aa0a55a30ed5ca0a8df89e6bac42311a6924fa9523d70985e7
7
- data.tar.gz: 88903664035b4b563d8575cde5082a13465522579d85d56b6c9e7372e2bc6efdcd4596a0fa70b7f606a940b1e9657c6869c6c70bae6a3142410976b203048d1f
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.1.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.0.3
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.