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