flag_shih_tzu 0.3.13 → 0.3.14

Sign up to get free protection for your applications and to get access to all the features.
@@ -2,7 +2,7 @@
2
2
  unless defined?(::ActiveRecord)
3
3
  begin
4
4
  # If by some miracle it hasn't been loaded yet, try to load it.
5
- require 'active_record'
5
+ require "active_record"
6
6
  rescue LoadError
7
7
  # If it fails to load, then assume the user is try to use flag_shih_tzu with some other database adapter
8
8
  warn "FlagShihTzu probably won't work unless you have some version of Active Record loaded. Versions >= 2.3 are supported."
@@ -12,13 +12,15 @@ end
12
12
  if defined?(::ActiveRecord) && ::ActiveRecord::VERSION::MAJOR >= 3
13
13
 
14
14
  module ActiveModel
15
+ # Open ActiveModel::Validations to define some additional ones
15
16
  module Validations
16
17
 
18
+ # A simple EachValidator that will check for the presence of the flags specified
17
19
  class PresenceOfFlagsValidator < EachValidator
18
20
  def validate_each(record, attribute, value)
19
21
  value = record.send(:read_attribute_for_validation, attribute)
20
22
  check_flag(record, attribute)
21
- record.errors.add(attribute, :blank, options) if value.blank? or value == 0
23
+ record.errors.add(attribute, :blank, options) if value.blank? || value == 0
22
24
  end
23
25
 
24
26
  private
@@ -30,6 +32,7 @@ if defined?(::ActiveRecord) && ::ActiveRecord::VERSION::MAJOR >= 3
30
32
  end
31
33
  end
32
34
 
35
+ # Use these validators in your model
33
36
  module HelperMethods
34
37
  # Validates that the specified attributes are flags and are not blank.
35
38
  # Happens by default on save. Example:
@@ -1,3 +1,3 @@
1
1
  module FlagShihTzu
2
- VERSION = "0.3.13"
2
+ VERSION = "0.3.14"
3
3
  end
@@ -5,7 +5,7 @@ sqlite:
5
5
  mysql:
6
6
  adapter: mysql2
7
7
  database: flag_shih_tzu_test
8
- username:
8
+ username: foss
9
9
  encoding: utf8
10
10
  postgresql:
11
11
  adapter: postgresql
@@ -1,7 +1,7 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/test_helper.rb')
1
+ require File.expand_path(File.dirname(__FILE__) + "/test_helper.rb")
2
2
 
3
3
  class Spaceship < ActiveRecord::Base
4
- self.table_name = 'spaceships'
4
+ self.table_name = "spaceships"
5
5
  include FlagShihTzu
6
6
 
7
7
  has_flags 1 => :warpdrive,
@@ -10,73 +10,91 @@ class Spaceship < ActiveRecord::Base
10
10
  end
11
11
 
12
12
  class SpaceshipWithoutNamedScopes < ActiveRecord::Base
13
- self.table_name = 'spaceships'
13
+ self.table_name = "spaceships"
14
14
  include FlagShihTzu
15
15
 
16
- has_flags(1 => :warpdrive, :named_scopes => false)
16
+ has_flags(1 => :warpdrive,
17
+ named_scopes: false)
17
18
  end
18
19
 
19
20
  class SpaceshipWithoutNamedScopesOldStyle < ActiveRecord::Base
20
- self.table_name = 'spaceships'
21
+ self.table_name = "spaceships"
21
22
  include FlagShihTzu
22
23
 
23
- has_flags({1 => :warpdrive}, :named_scopes => false)
24
+ has_flags({ 1 => :warpdrive },
25
+ named_scopes: false)
24
26
  end
25
27
 
26
28
  class SpaceshipWithCustomFlagsColumn < ActiveRecord::Base
27
- self.table_name = 'spaceships_with_custom_flags_column'
29
+ self.table_name = "spaceships_with_custom_flags_column"
28
30
  include FlagShihTzu
29
31
 
30
- has_flags(1 => :warpdrive, 2 => :hyperspace, :column => 'bits')
32
+ has_flags(1 => :warpdrive,
33
+ 2 => :hyperspace,
34
+ column: "bits")
31
35
  end
32
36
 
33
37
  class SpaceshipWithColumnNameAsSymbol < ActiveRecord::Base
34
- self.table_name = 'spaceships_with_custom_flags_column'
38
+ self.table_name = "spaceships_with_custom_flags_column"
35
39
  include FlagShihTzu
36
40
 
37
- has_flags(1 => :warpdrive, 2 => :hyperspace, :column => :bits)
41
+ has_flags(1 => :warpdrive,
42
+ 2 => :hyperspace,
43
+ column: :bits)
38
44
  end
39
45
 
40
46
  class SpaceshipWith2CustomFlagsColumn < ActiveRecord::Base
41
- self.table_name = 'spaceships_with_2_custom_flags_column'
47
+ self.table_name = "spaceships_with_2_custom_flags_column"
42
48
  include FlagShihTzu
43
49
 
44
- has_flags({ 1 => :warpdrive, 2 => :hyperspace }, :column => 'bits')
45
- has_flags({ 1 => :jeanlucpicard, 2 => :dajanatroj }, :column => 'commanders')
50
+ has_flags(
51
+ { 1 => :warpdrive, 2 => :hyperspace },
52
+ column: "bits")
53
+ has_flags(
54
+ { 1 => :jeanlucpicard, 2 => :dajanatroj },
55
+ column: "commanders")
46
56
  end
47
57
 
48
58
  class SpaceshipWith3CustomFlagsColumn < ActiveRecord::Base
49
- self.table_name = 'spaceships_with_3_custom_flags_column'
59
+ self.table_name = "spaceships_with_3_custom_flags_column"
50
60
  include FlagShihTzu
51
61
 
52
- has_flags({ 1 => :warpdrive, 2 => :hyperspace }, :column => 'engines')
53
- has_flags({ 1 => :photon, 2 => :laser, 3 => :ion_cannon, 4 => :particle_beam }, :column => 'weapons')
54
- has_flags({ 1 => :power, 2 => :anti_ax_routine }, :column => 'hal3000')
62
+ has_flags({ 1 => :warpdrive,
63
+ 2 => :hyperspace },
64
+ column: "engines")
65
+ has_flags({ 1 => :photon,
66
+ 2 => :laser,
67
+ 3 => :ion_cannon,
68
+ 4 => :particle_beam },
69
+ column: "weapons")
70
+ has_flags({ 1 => :power,
71
+ 2 => :anti_ax_routine },
72
+ column: "hal3000")
55
73
  end
56
74
 
57
75
  class SpaceshipWithInListQueryMode < ActiveRecord::Base
58
- self.table_name = 'spaceships'
76
+ self.table_name = "spaceships"
59
77
  include FlagShihTzu
60
78
 
61
- has_flags(1 => :warpdrive, 2 => :shields, :flag_query_mode => :in_list)
79
+ has_flags(1 => :warpdrive, 2 => :shields, flag_query_mode: :in_list)
62
80
  end
63
81
 
64
82
  class SpaceshipWithBitOperatorQueryMode < ActiveRecord::Base
65
- self.table_name = 'spaceships'
83
+ self.table_name = "spaceships"
66
84
  include FlagShihTzu
67
85
 
68
- has_flags(1 => :warpdrive, 2 => :shields, :flag_query_mode => :bit_operator)
86
+ has_flags(1 => :warpdrive, 2 => :shields, flag_query_mode: :bit_operator)
69
87
  end
70
88
 
71
89
  class SpaceshipWithBangMethods < ActiveRecord::Base
72
- self.table_name = 'spaceships'
90
+ self.table_name = "spaceships"
73
91
  include FlagShihTzu
74
92
 
75
- has_flags(1 => :warpdrive, 2 => :shields, :bang_methods => true)
93
+ has_flags(1 => :warpdrive, 2 => :shields, bang_methods: true)
76
94
  end
77
95
 
78
96
  class SpaceshipWithMissingFlags < ActiveRecord::Base
79
- self.table_name = 'spaceships'
97
+ self.table_name = "spaceships"
80
98
  include FlagShihTzu
81
99
 
82
100
  has_flags 1 => :warpdrive,
@@ -88,44 +106,62 @@ end
88
106
 
89
107
  if (ActiveRecord::VERSION::MAJOR >= 3)
90
108
  class SpaceshipWithSymbolAndStringFlagColumns < ActiveRecord::Base
91
- self.table_name = 'spaceships_with_symbol_and_string_flag_columns'
109
+ self.table_name = "spaceships_with_symbol_and_string_flag_columns"
92
110
  include FlagShihTzu
93
111
 
94
- has_flags({ 1 => :warpdrive, 2 => :hyperspace }, :column => :peace, :check_for_column => true)
95
- has_flags({ 1 => :photon, 2 => :laser, 3 => :ion_cannon, 4 => :particle_beam }, :column => :love, :check_for_column => true)
96
- has_flags({ 1 => :power, 2 => :anti_ax_routine }, :column => 'happiness', :check_for_column => true)
112
+ has_flags({ 1 => :warpdrive,
113
+ 2 => :hyperspace },
114
+ column: :peace,
115
+ check_for_column: true)
116
+ has_flags({ 1 => :photon,
117
+ 2 => :laser,
118
+ 3 => :ion_cannon,
119
+ 4 => :particle_beam },
120
+ column: :love,
121
+ check_for_column: true)
122
+ has_flags({ 1 => :power,
123
+ 2 => :anti_ax_routine },
124
+ column: "happiness",
125
+ check_for_column: true)
97
126
  validates_presence_of_flags :peace, :love
98
127
  end
99
128
 
100
129
  class SpaceshipWithValidationsAndCustomFlagsColumn < ActiveRecord::Base
101
- self.table_name = 'spaceships_with_custom_flags_column'
130
+ self.table_name = "spaceships_with_custom_flags_column"
102
131
  include FlagShihTzu
103
132
 
104
- has_flags(1 => :warpdrive, 2 => :hyperspace, :column => 'bits')
133
+ has_flags(1 => :warpdrive, 2 => :hyperspace, :column => "bits")
105
134
  validates_presence_of_flags :bits
106
135
  end
107
136
 
108
137
  class SpaceshipWithValidationsAnd3CustomFlagsColumn < ActiveRecord::Base
109
- self.table_name = 'spaceships_with_3_custom_flags_column'
138
+ self.table_name = "spaceships_with_3_custom_flags_column"
110
139
  include FlagShihTzu
111
140
 
112
- has_flags({ 1 => :warpdrive, 2 => :hyperspace }, :column => 'engines')
113
- has_flags({ 1 => :photon, 2 => :laser, 3 => :ion_cannon, 4 => :particle_beam }, :column => 'weapons')
114
- has_flags({ 1 => :power, 2 => :anti_ax_routine }, :column => 'hal3000')
141
+ has_flags(
142
+ { 1 => :warpdrive, 2 => :hyperspace },
143
+ column: "engines")
144
+ has_flags(
145
+ { 1 => :photon, 2 => :laser, 3 => :ion_cannon, 4 => :particle_beam },
146
+ column: "weapons")
147
+ has_flags(
148
+ { 1 => :power, 2 => :anti_ax_routine },
149
+ column: "hal3000")
115
150
 
116
151
  validates_presence_of_flags :engines, :weapons
117
152
  end
118
153
 
119
154
  class SpaceshipWithValidationsOnNonFlagsColumn < ActiveRecord::Base
120
- self.table_name = 'spaceships_with_custom_flags_column'
155
+ self.table_name = "spaceships_with_custom_flags_column"
121
156
  include FlagShihTzu
122
157
 
123
- has_flags(1 => :warpdrive, 2 => :hyperspace, :column => 'bits')
158
+ has_flags(1 => :warpdrive, 2 => :hyperspace, column: "bits")
124
159
  validates_presence_of_flags :id
125
160
  end
126
161
  end
127
162
 
128
- # table planets is missing intentionally to see if flagshihtzu handles missing tables gracefully
163
+ # table planets is missing intentionally to see if
164
+ # flag_shih_tzu handles missing tables gracefully
129
165
  class Planet < ActiveRecord::Base
130
166
  end
131
167
 
@@ -139,13 +175,13 @@ class FlagShihTzuClassMethodsTest < Test::Unit::TestCase
139
175
  assert_raises ArgumentError do
140
176
  eval(<<-EOF
141
177
  class SpaceshipWithInvalidFlagKey < ActiveRecord::Base
142
- self.table_name = 'spaceships'
178
+ self.table_name = "spaceships"
143
179
  include FlagShihTzu
144
180
 
145
181
  has_flags({ -1 => :error })
146
182
  end
147
- EOF
148
- )
183
+ EOF
184
+ )
149
185
  end
150
186
  end
151
187
 
@@ -153,14 +189,14 @@ class FlagShihTzuClassMethodsTest < Test::Unit::TestCase
153
189
  assert_raises ArgumentError do
154
190
  eval(<<-EOF
155
191
  class SpaceshipWithAlreadyUsedFlag < ActiveRecord::Base
156
- self.table_name = 'spaceships_with_2_custom_flags_column'
192
+ self.table_name = "spaceships_with_2_custom_flags_column"
157
193
  include FlagShihTzu
158
194
 
159
- has_flags({ 1 => :jeanluckpicard }, :column => 'bits')
160
- has_flags({ 1 => :jeanluckpicard }, :column => 'commanders')
195
+ has_flags({ 1 => :jeanluckpicard }, column: "bits")
196
+ has_flags({ 1 => :jeanluckpicard }, column: "commanders")
161
197
  end
162
- EOF
163
- )
198
+ EOF
199
+ )
164
200
  end
165
201
  end
166
202
 
@@ -168,15 +204,15 @@ class FlagShihTzuClassMethodsTest < Test::Unit::TestCase
168
204
  assert_raises ArgumentError do
169
205
  eval(<<-EOF
170
206
  class SpaceshipWithAlreadyUsedMethod < ActiveRecord::Base
171
- self.table_name = 'spaceships_with_2_custom_flags_column'
207
+ self.table_name = "spaceships_with_2_custom_flags_column"
172
208
  include FlagShihTzu
173
209
 
174
210
  def jeanluckpicard; end
175
211
 
176
- has_flags({ 1 => :jeanluckpicard }, :column => 'bits')
212
+ has_flags({ 1 => :jeanluckpicard }, column: "bits")
177
213
  end
178
- EOF
179
- )
214
+ EOF
215
+ )
180
216
  end
181
217
  end
182
218
 
@@ -184,14 +220,22 @@ class FlagShihTzuClassMethodsTest < Test::Unit::TestCase
184
220
  assert_raises FlagShihTzu::DuplicateFlagColumnException do
185
221
  eval(<<-EOF
186
222
  class SpaceshipWithAlreadyUsedMethodByFlagshitzuStrict < ActiveRecord::Base
187
- self.table_name = 'spaceships_with_2_custom_flags_column'
223
+ self.table_name = "spaceships_with_2_custom_flags_column"
188
224
  include FlagShihTzu
189
225
 
190
- has_flags({ 1 => :jeanluckpicard }, :column => 'bits', :strict => true)
191
- has_flags({ 1 => :jeanluckpicard }, :column => 'bits', :strict => true)
192
- end
193
- EOF
226
+ has_flags(
227
+ { 1 => :jeanluckpicard },
228
+ column: "bits",
229
+ strict: true
194
230
  )
231
+ has_flags(
232
+ { 1 => :jeanluckpicard },
233
+ column: "bits",
234
+ strict: true
235
+ )
236
+ end
237
+ EOF
238
+ )
195
239
  end
196
240
  end
197
241
 
@@ -199,14 +243,14 @@ class FlagShihTzuClassMethodsTest < Test::Unit::TestCase
199
243
  assert_nothing_raised ArgumentError do
200
244
  eval(<<-EOF
201
245
  class SpaceshipWithAlreadyUsedMethodByFlagshitzu < ActiveRecord::Base
202
- self.table_name = 'spaceships_with_2_custom_flags_column'
246
+ self.table_name = "spaceships_with_2_custom_flags_column"
203
247
  include FlagShihTzu
204
248
 
205
- has_flags({ 1 => :jeanluckpicard }, :column => 'bits')
206
- has_flags({ 1 => :jeanluckpicard }, :column => 'bits')
249
+ has_flags({ 1 => :jeanluckpicard }, column: "bits")
250
+ has_flags({ 1 => :jeanluckpicard }, column: "bits")
207
251
  end
208
- EOF
209
- )
252
+ EOF
253
+ )
210
254
  end
211
255
  end
212
256
 
@@ -214,92 +258,138 @@ class FlagShihTzuClassMethodsTest < Test::Unit::TestCase
214
258
  assert_raises ArgumentError do
215
259
  eval(<<-EOF
216
260
  class SpaceshipWithInvalidFlagName < ActiveRecord::Base
217
- self.table_name = 'spaceships'
261
+ self.table_name = "spaceships"
218
262
  include FlagShihTzu
219
263
 
220
- has_flags({ 1 => 'error' })
264
+ has_flags({ 1 => "error" })
221
265
  end
222
- EOF
223
- )
266
+ EOF
267
+ )
224
268
  end
225
269
  end
226
270
 
227
271
  def test_should_define_a_sql_condition_method_for_flag_enabled
228
- assert_equal "(spaceships.flags in (1,3,5,7))", Spaceship.warpdrive_condition
229
- assert_equal "(spaceships.flags in (2,3,6,7))", Spaceship.shields_condition
230
- assert_equal "(spaceships.flags in (4,5,6,7))", Spaceship.electrolytes_condition
272
+ assert_equal "(spaceships.flags in (1,3,5,7))",
273
+ Spaceship.warpdrive_condition
274
+ assert_equal "(spaceships.flags in (2,3,6,7))",
275
+ Spaceship.shields_condition
276
+ assert_equal "(spaceships.flags in (4,5,6,7))",
277
+ Spaceship.electrolytes_condition
231
278
  end
232
279
 
233
280
  def test_should_define_a_sql_condition_method_for_flag_enabled_with_missing_flags
234
- assert_equal "(spaceships.flags in (1,3,5,7))", SpaceshipWithMissingFlags.warpdrive_condition
235
- assert_equal "(spaceships.flags in (4,5,6,7))", SpaceshipWithMissingFlags.electrolytes_condition
281
+ assert_equal "(spaceships.flags in (1,3,5,7))",
282
+ SpaceshipWithMissingFlags.warpdrive_condition
283
+ assert_equal "(spaceships.flags in (4,5,6,7))",
284
+ SpaceshipWithMissingFlags.electrolytes_condition
236
285
  end
237
286
 
238
287
  def test_should_accept_a_table_alias_option_for_sql_condition_method
239
- assert_equal "(old_spaceships.flags in (1,3,5,7))", Spaceship.warpdrive_condition(:table_alias => 'old_spaceships')
288
+ assert_equal "(old_spaceships.flags in (1,3,5,7))",
289
+ Spaceship.warpdrive_condition(table_alias: "old_spaceships")
240
290
  end
241
291
 
242
292
  def test_should_define_a_sql_condition_method_for_flag_enabled_with_2_colmns
243
- assert_equal "(spaceships_with_2_custom_flags_column.bits in (1,3))", SpaceshipWith2CustomFlagsColumn.warpdrive_condition
244
- assert_equal "(spaceships_with_2_custom_flags_column.bits in (2,3))", SpaceshipWith2CustomFlagsColumn.hyperspace_condition
245
- assert_equal "(spaceships_with_2_custom_flags_column.commanders in (1,3))", SpaceshipWith2CustomFlagsColumn.jeanlucpicard_condition
246
- assert_equal "(spaceships_with_2_custom_flags_column.commanders in (2,3))", SpaceshipWith2CustomFlagsColumn.dajanatroj_condition
293
+ assert_equal "(spaceships_with_2_custom_flags_column.bits in (1,3))",
294
+ SpaceshipWith2CustomFlagsColumn.warpdrive_condition
295
+ assert_equal "(spaceships_with_2_custom_flags_column.bits in (2,3))",
296
+ SpaceshipWith2CustomFlagsColumn.hyperspace_condition
297
+ assert_equal "(spaceships_with_2_custom_flags_column.commanders in (1,3))",
298
+ SpaceshipWith2CustomFlagsColumn.jeanlucpicard_condition
299
+ assert_equal "(spaceships_with_2_custom_flags_column.commanders in (2,3))",
300
+ SpaceshipWith2CustomFlagsColumn.dajanatroj_condition
247
301
  end
248
302
 
249
303
  def test_should_define_a_sql_condition_method_for_flag_not_enabled
250
- assert_equal "(spaceships.flags not in (1,3,5,7))", Spaceship.not_warpdrive_condition
251
- assert_equal "(spaceships.flags not in (2,3,6,7))", Spaceship.not_shields_condition
252
- assert_equal "(spaceships.flags not in (4,5,6,7))", Spaceship.not_electrolytes_condition
304
+ assert_equal "(spaceships.flags not in (1,3,5,7))",
305
+ Spaceship.not_warpdrive_condition
306
+ assert_equal "(spaceships.flags not in (2,3,6,7))",
307
+ Spaceship.not_shields_condition
308
+ assert_equal "(spaceships.flags not in (4,5,6,7))",
309
+ Spaceship.not_electrolytes_condition
253
310
  end
254
311
 
255
312
  def test_should_define_a_sql_condition_method_for_flag_not_enabled_with_missing_flags
256
- assert_equal "(spaceships.flags not in (1,3,5,7))", SpaceshipWithMissingFlags.not_warpdrive_condition
257
- assert_equal "(spaceships.flags not in (4,5,6,7))", SpaceshipWithMissingFlags.not_electrolytes_condition
313
+ assert_equal "(spaceships.flags not in (1,3,5,7))",
314
+ SpaceshipWithMissingFlags.not_warpdrive_condition
315
+ assert_equal "(spaceships.flags not in (4,5,6,7))",
316
+ SpaceshipWithMissingFlags.not_electrolytes_condition
258
317
  end
259
318
 
260
319
  def test_sql_condition_for_flag_with_custom_table_name_and_default_query_mode
261
- assert_equal "(custom_spaceships.flags in (1,3,5,7))", Spaceship.send(:sql_condition_for_flag, :warpdrive, 'flags', true, 'custom_spaceships')
320
+ assert_equal "(custom_spaceships.flags in (1,3,5,7))",
321
+ Spaceship.send(:sql_condition_for_flag,
322
+ :warpdrive,
323
+ "flags",
324
+ true,
325
+ "custom_spaceships")
262
326
  end
263
327
  def test_sql_condition_for_flag_with_in_list_query_mode
264
- assert_equal "(spaceships.flags in (1,3))", SpaceshipWithInListQueryMode.send(:sql_condition_for_flag, :warpdrive, 'flags', true, 'spaceships')
328
+ assert_equal "(spaceships.flags in (1,3))",
329
+ SpaceshipWithInListQueryMode.send(:sql_condition_for_flag,
330
+ :warpdrive,
331
+ "flags",
332
+ true,
333
+ "spaceships")
265
334
  end
266
335
  def test_sql_condition_for_flag_with_bit_operator_query_mode
267
- assert_equal "(spaceships.flags & 1 = 1)", SpaceshipWithBitOperatorQueryMode.send(:sql_condition_for_flag, :warpdrive, 'flags', true, 'spaceships')
336
+ assert_equal "(spaceships.flags & 1 = 1)",
337
+ SpaceshipWithBitOperatorQueryMode.send(:sql_condition_for_flag,
338
+ :warpdrive,
339
+ "flags",
340
+ true,
341
+ "spaceships")
268
342
  end
269
343
  def test_sql_in_for_flag
270
- assert_equal [1,3,5,7], Spaceship.send(:sql_in_for_flag, :warpdrive, 'flags')
344
+ assert_equal [1, 3, 5, 7],
345
+ Spaceship.send(:sql_in_for_flag, :warpdrive, "flags")
271
346
  end
272
347
  def test_sql_set_for_flag
273
- assert_equal "flags = flags | 1", Spaceship.send(:sql_set_for_flag, :warpdrive, 'flags')
348
+ assert_equal "flags = flags | 1",
349
+ Spaceship.send(:sql_set_for_flag, :warpdrive, "flags")
274
350
  end
275
351
 
276
352
  def test_should_define_a_sql_condition_method_for_flag_enabled_with_2_colmns_not_enabled
277
- assert_equal "(spaceships_with_2_custom_flags_column.bits not in (1,3))", SpaceshipWith2CustomFlagsColumn.not_warpdrive_condition
278
- assert_equal "(spaceships_with_2_custom_flags_column.bits not in (2,3))", SpaceshipWith2CustomFlagsColumn.not_hyperspace_condition
279
- assert_equal "(spaceships_with_2_custom_flags_column.commanders not in (1,3))", SpaceshipWith2CustomFlagsColumn.not_jeanlucpicard_condition
280
- assert_equal "(spaceships_with_2_custom_flags_column.commanders not in (2,3))", SpaceshipWith2CustomFlagsColumn.not_dajanatroj_condition
353
+ assert_equal "(spaceships_with_2_custom_flags_column.bits not in (1,3))",
354
+ SpaceshipWith2CustomFlagsColumn.not_warpdrive_condition
355
+ assert_equal "(spaceships_with_2_custom_flags_column.bits not in (2,3))",
356
+ SpaceshipWith2CustomFlagsColumn.not_hyperspace_condition
357
+ assert_equal "(spaceships_with_2_custom_flags_column.commanders not in (1,3))",
358
+ SpaceshipWith2CustomFlagsColumn.not_jeanlucpicard_condition
359
+ assert_equal "(spaceships_with_2_custom_flags_column.commanders not in (2,3))",
360
+ SpaceshipWith2CustomFlagsColumn.not_dajanatroj_condition
281
361
  end
282
362
 
283
363
  def test_should_define_a_sql_condition_method_for_flag_enabled_using_bit_operators
284
- assert_equal "(spaceships.flags & 1 = 1)", SpaceshipWithBitOperatorQueryMode.warpdrive_condition
285
- assert_equal "(spaceships.flags & 2 = 2)", SpaceshipWithBitOperatorQueryMode.shields_condition
364
+ assert_equal "(spaceships.flags & 1 = 1)",
365
+ SpaceshipWithBitOperatorQueryMode.warpdrive_condition
366
+ assert_equal "(spaceships.flags & 2 = 2)",
367
+ SpaceshipWithBitOperatorQueryMode.shields_condition
286
368
  end
287
369
 
288
370
  def test_should_define_a_sql_condition_method_for_flag_not_enabled_using_bit_operators
289
- assert_equal "(spaceships.flags & 1 = 0)", SpaceshipWithBitOperatorQueryMode.not_warpdrive_condition
290
- assert_equal "(spaceships.flags & 2 = 0)", SpaceshipWithBitOperatorQueryMode.not_shields_condition
371
+ assert_equal "(spaceships.flags & 1 = 0)",
372
+ SpaceshipWithBitOperatorQueryMode.not_warpdrive_condition
373
+ assert_equal "(spaceships.flags & 2 = 0)",
374
+ SpaceshipWithBitOperatorQueryMode.not_shields_condition
291
375
  end
292
376
 
293
377
  def test_should_define_a_named_scope_for_flag_enabled
294
- assert_where_value "(spaceships.flags in (1,3,5,7))", Spaceship.warpdrive
295
- assert_where_value "(spaceships.flags in (2,3,6,7))", Spaceship.shields
296
- assert_where_value "(spaceships.flags in (4,5,6,7))", Spaceship.electrolytes
378
+ assert_where_value "(spaceships.flags in (1,3,5,7))",
379
+ Spaceship.warpdrive
380
+ assert_where_value "(spaceships.flags in (2,3,6,7))",
381
+ Spaceship.shields
382
+ assert_where_value "(spaceships.flags in (4,5,6,7))",
383
+ Spaceship.electrolytes
297
384
  end
298
385
 
299
386
  def test_should_define_a_named_scope_for_flag_not_enabled
300
- assert_where_value "(spaceships.flags not in (1,3,5,7))", Spaceship.not_warpdrive
301
- assert_where_value "(spaceships.flags not in (2,3,6,7))", Spaceship.not_shields
302
- assert_where_value "(spaceships.flags not in (4,5,6,7))", Spaceship.not_electrolytes
387
+ assert_where_value "(spaceships.flags not in (1,3,5,7))",
388
+ Spaceship.not_warpdrive
389
+ assert_where_value "(spaceships.flags not in (2,3,6,7))",
390
+ Spaceship.not_shields
391
+ assert_where_value "(spaceships.flags not in (4,5,6,7))",
392
+ Spaceship.not_electrolytes
303
393
  end
304
394
 
305
395
  def test_should_define_a_dynamic_column_value_helpers_for_flags
@@ -308,27 +398,39 @@ class FlagShihTzuClassMethodsTest < Test::Unit::TestCase
308
398
  end
309
399
 
310
400
  def test_should_define_a_named_scope_for_flag_enabled_with_2_columns
311
- assert_where_value "(spaceships_with_2_custom_flags_column.bits in (1,3))", SpaceshipWith2CustomFlagsColumn.warpdrive
312
- assert_where_value "(spaceships_with_2_custom_flags_column.bits in (2,3))", SpaceshipWith2CustomFlagsColumn.hyperspace
313
- assert_where_value "(spaceships_with_2_custom_flags_column.commanders in (1,3))", SpaceshipWith2CustomFlagsColumn.jeanlucpicard
314
- assert_where_value "(spaceships_with_2_custom_flags_column.commanders in (2,3))", SpaceshipWith2CustomFlagsColumn.dajanatroj
401
+ assert_where_value "(spaceships_with_2_custom_flags_column.bits in (1,3))",
402
+ SpaceshipWith2CustomFlagsColumn.warpdrive
403
+ assert_where_value "(spaceships_with_2_custom_flags_column.bits in (2,3))",
404
+ SpaceshipWith2CustomFlagsColumn.hyperspace
405
+ assert_where_value "(spaceships_with_2_custom_flags_column.commanders in (1,3))",
406
+ SpaceshipWith2CustomFlagsColumn.jeanlucpicard
407
+ assert_where_value "(spaceships_with_2_custom_flags_column.commanders in (2,3))",
408
+ SpaceshipWith2CustomFlagsColumn.dajanatroj
315
409
  end
316
410
 
317
411
  def test_should_define_a_named_scope_for_flag_not_enabled_with_2_columns
318
- assert_where_value "(spaceships_with_2_custom_flags_column.bits not in (1,3))", SpaceshipWith2CustomFlagsColumn.not_warpdrive
319
- assert_where_value "(spaceships_with_2_custom_flags_column.bits not in (2,3))", SpaceshipWith2CustomFlagsColumn.not_hyperspace
320
- assert_where_value "(spaceships_with_2_custom_flags_column.commanders not in (1,3))", SpaceshipWith2CustomFlagsColumn.not_jeanlucpicard
321
- assert_where_value "(spaceships_with_2_custom_flags_column.commanders not in (2,3))", SpaceshipWith2CustomFlagsColumn.not_dajanatroj
412
+ assert_where_value "(spaceships_with_2_custom_flags_column.bits not in (1,3))",
413
+ SpaceshipWith2CustomFlagsColumn.not_warpdrive
414
+ assert_where_value "(spaceships_with_2_custom_flags_column.bits not in (2,3))",
415
+ SpaceshipWith2CustomFlagsColumn.not_hyperspace
416
+ assert_where_value "(spaceships_with_2_custom_flags_column.commanders not in (1,3))",
417
+ SpaceshipWith2CustomFlagsColumn.not_jeanlucpicard
418
+ assert_where_value "(spaceships_with_2_custom_flags_column.commanders not in (2,3))",
419
+ SpaceshipWith2CustomFlagsColumn.not_dajanatroj
322
420
  end
323
421
 
324
422
  def test_should_define_a_named_scope_for_flag_enabled_using_bit_operators
325
- assert_where_value "(spaceships.flags & 1 = 1)", SpaceshipWithBitOperatorQueryMode.warpdrive
326
- assert_where_value "(spaceships.flags & 2 = 2)", SpaceshipWithBitOperatorQueryMode.shields
423
+ assert_where_value "(spaceships.flags & 1 = 1)",
424
+ SpaceshipWithBitOperatorQueryMode.warpdrive
425
+ assert_where_value "(spaceships.flags & 2 = 2)",
426
+ SpaceshipWithBitOperatorQueryMode.shields
327
427
  end
328
428
 
329
429
  def test_should_define_a_named_scope_for_flag_not_enabled_using_bit_operators
330
- assert_where_value "(spaceships.flags & 1 = 0)", SpaceshipWithBitOperatorQueryMode.not_warpdrive
331
- assert_where_value "(spaceships.flags & 2 = 0)", SpaceshipWithBitOperatorQueryMode.not_shields
430
+ assert_where_value "(spaceships.flags & 1 = 0)",
431
+ SpaceshipWithBitOperatorQueryMode.not_warpdrive
432
+ assert_where_value "(spaceships.flags & 2 = 0)",
433
+ SpaceshipWithBitOperatorQueryMode.not_shields
332
434
  end
333
435
 
334
436
  def test_should_work_with_raw_sql
@@ -342,10 +444,14 @@ class FlagShihTzuClassMethodsTest < Test::Unit::TestCase
342
444
  assert_equal true, spaceship.electrolytes
343
445
 
344
446
  if (ActiveRecord::VERSION::MAJOR <= 3)
345
- Spaceship.update_all Spaceship.set_flag_sql(:warpdrive, true),
346
- ["id=?", spaceship.id]
447
+ Spaceship.update_all(
448
+ Spaceship.set_flag_sql(:warpdrive, true),
449
+ ["id=?", spaceship.id]
450
+ )
347
451
  else
348
- Spaceship.where("id=?", spaceship.id).update_all Spaceship.set_flag_sql(:warpdrive, true)
452
+ Spaceship.where("id=?", spaceship.id).update_all(
453
+ Spaceship.set_flag_sql(:warpdrive, true)
454
+ )
349
455
  end
350
456
 
351
457
  spaceship.reload
@@ -365,10 +471,14 @@ class FlagShihTzuClassMethodsTest < Test::Unit::TestCase
365
471
  assert_equal true, spaceship.electrolytes
366
472
 
367
473
  if (ActiveRecord::VERSION::MAJOR <= 3)
368
- Spaceship.update_all Spaceship.set_flag_sql(:shields, false),
369
- ["id=?", spaceship.id]
474
+ Spaceship.update_all(
475
+ Spaceship.set_flag_sql(:shields, false),
476
+ ["id=?", spaceship.id]
477
+ )
370
478
  else
371
- Spaceship.where("id=?", spaceship.id).update_all Spaceship.set_flag_sql(:shields, false)
479
+ Spaceship.where("id=?", spaceship.id).update_all(
480
+ Spaceship.set_flag_sql(:shields, false)
481
+ )
372
482
  end
373
483
 
374
484
  spaceship.reload
@@ -401,9 +511,19 @@ class FlagShihTzuClassMethodsTest < Test::Unit::TestCase
401
511
  end
402
512
 
403
513
  def test_should_return_the_correct_condition_with_chained_flags
404
- assert_equal "(spaceships.flags in (3,7))", Spaceship.chained_flags_condition("flags", :warpdrive, :shields)
405
- assert_equal "(spaceships.flags in (7))", Spaceship.chained_flags_condition("flags", :warpdrive, :shields, :electrolytes)
406
- assert_equal "(spaceships.flags in (2,6))", Spaceship.chained_flags_condition("flags", :not_warpdrive, :shields)
514
+ assert_equal "(spaceships.flags in (3,7))",
515
+ Spaceship.chained_flags_condition("flags",
516
+ :warpdrive,
517
+ :shields)
518
+ assert_equal "(spaceships.flags in (7))",
519
+ Spaceship.chained_flags_condition("flags",
520
+ :warpdrive,
521
+ :shields,
522
+ :electrolytes)
523
+ assert_equal "(spaceships.flags in (2,6))",
524
+ Spaceship.chained_flags_condition("flags",
525
+ :not_warpdrive,
526
+ :shields)
407
527
  end
408
528
 
409
529
  def test_should_return_the_correct_number_of_items_with_chained_flags_with
@@ -423,12 +543,26 @@ class FlagShihTzuClassMethodsTest < Test::Unit::TestCase
423
543
  spaceship_4 = Spaceship.new
424
544
  spaceship_4.save!
425
545
  spaceship_4.reload
426
- assert_equal 2, Spaceship.chained_flags_with("flags", :warpdrive).count
427
- assert_equal 1, Spaceship.chained_flags_with("flags", :warpdrive, :shields).count
428
- assert_equal 1, Spaceship.chained_flags_with("flags", :warpdrive, :not_shields).count
429
- assert_equal 0, Spaceship.chained_flags_with("flags", :not_warpdrive, :shields, :electrolytes).count
430
- assert_equal 1, Spaceship.chained_flags_with("flags", :not_warpdrive, :shields, :not_electrolytes).count
431
- assert_equal 1, Spaceship.chained_flags_with("flags", :not_warpdrive, :not_shields, :not_electrolytes).count
546
+ assert_equal 2, Spaceship.chained_flags_with("flags",
547
+ :warpdrive).count
548
+ assert_equal 1, Spaceship.chained_flags_with("flags",
549
+ :warpdrive,
550
+ :shields).count
551
+ assert_equal 1, Spaceship.chained_flags_with("flags",
552
+ :warpdrive,
553
+ :not_shields).count
554
+ assert_equal 0, Spaceship.chained_flags_with("flags",
555
+ :not_warpdrive,
556
+ :shields,
557
+ :electrolytes).count
558
+ assert_equal 1, Spaceship.chained_flags_with("flags",
559
+ :not_warpdrive,
560
+ :shields,
561
+ :not_electrolytes).count
562
+ assert_equal 1, Spaceship.chained_flags_with("flags",
563
+ :not_warpdrive,
564
+ :not_shields,
565
+ :not_electrolytes).count
432
566
  end
433
567
 
434
568
  def test_should_not_define_named_scopes_if_not_wanted
@@ -442,15 +576,23 @@ class FlagShihTzuClassMethodsTest < Test::Unit::TestCase
442
576
  spaceship.enable_flag(:hyperspace)
443
577
  spaceship.save!
444
578
  spaceship.reload
445
- assert_equal 3, spaceship.flags('bits')
446
- assert_equal "(spaceships_with_custom_flags_column.bits in (1,3))", SpaceshipWithCustomFlagsColumn.warpdrive_condition
447
- assert_equal "(spaceships_with_custom_flags_column.bits not in (1,3))", SpaceshipWithCustomFlagsColumn.not_warpdrive_condition
448
- assert_equal "(spaceships_with_custom_flags_column.bits in (2,3))", SpaceshipWithCustomFlagsColumn.hyperspace_condition
449
- assert_equal "(spaceships_with_custom_flags_column.bits not in (2,3))", SpaceshipWithCustomFlagsColumn.not_hyperspace_condition
450
- assert_where_value "(spaceships_with_custom_flags_column.bits in (1,3))", SpaceshipWithCustomFlagsColumn.warpdrive
451
- assert_where_value "(spaceships_with_custom_flags_column.bits not in (1,3))", SpaceshipWithCustomFlagsColumn.not_warpdrive
452
- assert_where_value "(spaceships_with_custom_flags_column.bits in (2,3))", SpaceshipWithCustomFlagsColumn.hyperspace
453
- assert_where_value "(spaceships_with_custom_flags_column.bits not in (2,3))", SpaceshipWithCustomFlagsColumn.not_hyperspace
579
+ assert_equal 3, spaceship.flags("bits")
580
+ assert_equal "(spaceships_with_custom_flags_column.bits in (1,3))",
581
+ SpaceshipWithCustomFlagsColumn.warpdrive_condition
582
+ assert_equal "(spaceships_with_custom_flags_column.bits not in (1,3))",
583
+ SpaceshipWithCustomFlagsColumn.not_warpdrive_condition
584
+ assert_equal "(spaceships_with_custom_flags_column.bits in (2,3))",
585
+ SpaceshipWithCustomFlagsColumn.hyperspace_condition
586
+ assert_equal "(spaceships_with_custom_flags_column.bits not in (2,3))",
587
+ SpaceshipWithCustomFlagsColumn.not_hyperspace_condition
588
+ assert_where_value %[(spaceships_with_custom_flags_column.bits in (1,3))],
589
+ SpaceshipWithCustomFlagsColumn.warpdrive
590
+ assert_where_value %[(spaceships_with_custom_flags_column.bits not in (1,3))],
591
+ SpaceshipWithCustomFlagsColumn.not_warpdrive
592
+ assert_where_value %[(spaceships_with_custom_flags_column.bits in (2,3))],
593
+ SpaceshipWithCustomFlagsColumn.hyperspace
594
+ assert_where_value %[(spaceships_with_custom_flags_column.bits not in (2,3))],
595
+ SpaceshipWithCustomFlagsColumn.not_hyperspace
454
596
  end
455
597
 
456
598
  def test_should_work_with_a_custom_flags_column_name_as_symbol
@@ -458,7 +600,7 @@ class FlagShihTzuClassMethodsTest < Test::Unit::TestCase
458
600
  spaceship.enable_flag(:warpdrive)
459
601
  spaceship.save!
460
602
  spaceship.reload
461
- assert_equal 1, spaceship.flags('bits')
603
+ assert_equal 1, spaceship.flags("bits")
462
604
  end
463
605
 
464
606
  def test_should_not_error_out_when_table_is_not_present
@@ -474,10 +616,12 @@ class FlagShihTzuClassMethodsTest < Test::Unit::TestCase
474
616
  assert_nothing_raised(ActiveRecord::StatementInvalid) do
475
617
  Planet.class_eval do
476
618
  # Now it has a table that exists, but the column does not.
477
- self.table_name = 'spaceships'
619
+ self.table_name = "spaceships"
478
620
  include FlagShihTzu
479
621
 
480
- has_flags({ 1 => :warpdrive, 2 => :hyperspace }, :column => :i_do_not_exist, :check_for_column => true)
622
+ has_flags({ 1 => :warpdrive, 2 => :hyperspace },
623
+ column: :i_do_not_exist,
624
+ check_for_column: true)
481
625
  end
482
626
  end
483
627
  end
@@ -485,8 +629,12 @@ class FlagShihTzuClassMethodsTest < Test::Unit::TestCase
485
629
  private
486
630
 
487
631
  def assert_where_value(expected, scope)
488
- assert_equal expected,
489
- ActiveRecord::VERSION::MAJOR == 2 ? scope.proxy_options[:conditions] : scope.where_values.first
632
+ actual = if ActiveRecord::VERSION::MAJOR == 2
633
+ scope.proxy_options[:conditions]
634
+ else
635
+ scope.where_values.first
636
+ end
637
+ assert_equal expected, actual
490
638
  end
491
639
 
492
640
  end
@@ -553,8 +701,8 @@ class FlagShihTzuInstanceMethodsTest < Test::Unit::TestCase
553
701
  @big_spaceship.save!
554
702
  @big_spaceship.reload
555
703
 
556
- assert_equal 1, @big_spaceship.flags('bits')
557
- assert_equal 2, @big_spaceship.flags('commanders')
704
+ assert_equal 1, @big_spaceship.flags("bits")
705
+ assert_equal 2, @big_spaceship.flags("commanders")
558
706
 
559
707
  assert @big_spaceship.flag_enabled?(:warpdrive)
560
708
  assert !@big_spaceship.flag_enabled?(:hyperspace)
@@ -586,25 +734,29 @@ class FlagShihTzuInstanceMethodsTest < Test::Unit::TestCase
586
734
  # --------------------------------------------------
587
735
 
588
736
  def test_should_define_an_all_flags_reader_method_with_arity_1
589
- assert_array_similarity [:electrolytes, :warpdrive, :shields], @spaceship.all_flags('flags')
737
+ assert_array_similarity [:electrolytes, :warpdrive, :shields],
738
+ @spaceship.all_flags("flags")
590
739
  end
591
740
 
592
741
  def test_should_define_an_all_flags_reader_method_with_arity_0
593
- assert_array_similarity [:electrolytes, :warpdrive, :shields], @spaceship.all_flags
742
+ assert_array_similarity [:electrolytes, :warpdrive, :shields],
743
+ @spaceship.all_flags
594
744
  end
595
745
 
596
746
  def test_should_define_a_selected_flags_reader_method_with_arity_1
597
- assert_array_similarity [], @spaceship.selected_flags('flags')
747
+ assert_array_similarity [], @spaceship.selected_flags("flags")
598
748
 
599
749
  @spaceship.warpdrive = true
600
- assert_array_similarity [:warpdrive], @spaceship.selected_flags('flags')
750
+ assert_array_similarity [:warpdrive],
751
+ @spaceship.selected_flags("flags")
601
752
 
602
753
  @spaceship.electrolytes = true
603
- assert_array_similarity [:electrolytes, :warpdrive], @spaceship.selected_flags('flags')
754
+ assert_array_similarity [:electrolytes, :warpdrive],
755
+ @spaceship.selected_flags("flags")
604
756
 
605
757
  @spaceship.warpdrive = false
606
758
  @spaceship.electrolytes = false
607
- assert_array_similarity [], @spaceship.selected_flags('flags')
759
+ assert_array_similarity [], @spaceship.selected_flags("flags")
608
760
  end
609
761
 
610
762
  def test_should_define_a_selected_flags_reader_method_with_arity_0
@@ -614,7 +766,8 @@ class FlagShihTzuInstanceMethodsTest < Test::Unit::TestCase
614
766
  assert_array_similarity [:warpdrive], @spaceship.selected_flags
615
767
 
616
768
  @spaceship.electrolytes = true
617
- assert_array_similarity [:electrolytes, :warpdrive], @spaceship.selected_flags
769
+ assert_array_similarity [:electrolytes, :warpdrive],
770
+ @spaceship.selected_flags
618
771
 
619
772
  @spaceship.warpdrive = false
620
773
  @spaceship.electrolytes = false
@@ -622,7 +775,7 @@ class FlagShihTzuInstanceMethodsTest < Test::Unit::TestCase
622
775
  end
623
776
 
624
777
  def test_should_define_a_select_all_flags_method_with_arity_1
625
- @spaceship.select_all_flags('flags')
778
+ @spaceship.select_all_flags("flags")
626
779
  assert @spaceship.warpdrive
627
780
  assert @spaceship.shields
628
781
  assert @spaceship.electrolytes
@@ -640,7 +793,7 @@ class FlagShihTzuInstanceMethodsTest < Test::Unit::TestCase
640
793
  @spaceship.shields = true
641
794
  @spaceship.electrolytes = true
642
795
 
643
- @spaceship.unselect_all_flags('flags')
796
+ @spaceship.unselect_all_flags("flags")
644
797
 
645
798
  assert !@spaceship.warpdrive
646
799
  assert !@spaceship.shields
@@ -660,19 +813,19 @@ class FlagShihTzuInstanceMethodsTest < Test::Unit::TestCase
660
813
  end
661
814
 
662
815
  def test_should_define_an_has_flag_method_with_arity_1
663
- assert !@spaceship.has_flag?('flags')
816
+ assert !@spaceship.has_flag?("flags")
664
817
 
665
818
  @spaceship.warpdrive = true
666
- assert @spaceship.has_flag?('flags')
819
+ assert @spaceship.has_flag?("flags")
667
820
 
668
821
  @spaceship.shields = true
669
- assert @spaceship.has_flag?('flags')
822
+ assert @spaceship.has_flag?("flags")
670
823
 
671
824
  @spaceship.electrolytes = true
672
- assert @spaceship.has_flag?('flags')
825
+ assert @spaceship.has_flag?("flags")
673
826
 
674
- @spaceship.unselect_all_flags('flags')
675
- assert !@spaceship.has_flag?('flags')
827
+ @spaceship.unselect_all_flags("flags")
828
+ assert !@spaceship.has_flag?("flags")
676
829
  end
677
830
 
678
831
  def test_should_define_an_has_flag_method_with_arity_0
@@ -694,17 +847,20 @@ class FlagShihTzuInstanceMethodsTest < Test::Unit::TestCase
694
847
  # --------------------------------------------------
695
848
 
696
849
  def test_should_define_a_customized_all_flags_reader_method
697
- assert_array_similarity [:hyperspace, :warpdrive], @small_spaceship.all_bits
850
+ assert_array_similarity [:hyperspace, :warpdrive],
851
+ @small_spaceship.all_bits
698
852
  end
699
853
 
700
854
  def test_should_define_a_customized_selected_flags_reader_method
701
855
  assert_array_similarity [], @small_spaceship.selected_bits
702
856
 
703
857
  @small_spaceship.warpdrive = true
704
- assert_array_similarity [:warpdrive], @small_spaceship.selected_bits
858
+ assert_array_similarity [:warpdrive],
859
+ @small_spaceship.selected_bits
705
860
 
706
861
  @small_spaceship.hyperspace = true
707
- assert_array_similarity [:hyperspace, :warpdrive], @small_spaceship.selected_bits
862
+ assert_array_similarity [:hyperspace, :warpdrive],
863
+ @small_spaceship.selected_bits
708
864
 
709
865
  @small_spaceship.warpdrive = false
710
866
  @small_spaceship.hyperspace = false
@@ -761,25 +917,33 @@ class FlagShihTzuInstanceMethodsTest < Test::Unit::TestCase
761
917
  # --------------------------------------------------
762
918
 
763
919
  def test_should_define_a_customized_all_flags_reader_method_with_2_columns
764
- assert_array_similarity [:hyperspace, :warpdrive], @big_spaceship.all_bits
765
- assert_array_similarity [:dajanatroj, :jeanlucpicard], @big_spaceship.all_commanders
920
+ assert_array_similarity [:hyperspace, :warpdrive],
921
+ @big_spaceship.all_bits
922
+ assert_array_similarity [:dajanatroj, :jeanlucpicard],
923
+ @big_spaceship.all_commanders
766
924
  end
767
925
 
768
926
  def test_should_define_a_customized_selected_flags_reader_method_with_2_columns
769
- assert_array_similarity [], @big_spaceship.selected_bits
770
- assert_array_similarity [], @big_spaceship.selected_commanders
927
+ assert_array_similarity [],
928
+ @big_spaceship.selected_bits
929
+ assert_array_similarity [],
930
+ @big_spaceship.selected_commanders
771
931
 
772
932
  @big_spaceship.warpdrive = true
773
933
  @big_spaceship.jeanlucpicard = true
774
- assert_array_similarity [:warpdrive], @big_spaceship.selected_bits
775
- assert_array_similarity [:jeanlucpicard], @big_spaceship.selected_commanders
934
+ assert_array_similarity [:warpdrive],
935
+ @big_spaceship.selected_bits
936
+ assert_array_similarity [:jeanlucpicard],
937
+ @big_spaceship.selected_commanders
776
938
 
777
939
  @big_spaceship.hyperspace = true
778
940
  @big_spaceship.hyperspace = true
779
941
  @big_spaceship.jeanlucpicard = true
780
942
  @big_spaceship.dajanatroj = true
781
- assert_array_similarity [:hyperspace, :warpdrive], @big_spaceship.selected_bits
782
- assert_array_similarity [:dajanatroj, :jeanlucpicard], @big_spaceship.selected_commanders
943
+ assert_array_similarity [:hyperspace, :warpdrive],
944
+ @big_spaceship.selected_bits
945
+ assert_array_similarity [:dajanatroj, :jeanlucpicard],
946
+ @big_spaceship.selected_commanders
783
947
 
784
948
  @big_spaceship.warpdrive = false
785
949
  @big_spaceship.hyperspace = false
@@ -903,12 +1067,12 @@ class FlagShihTzuInstanceMethodsTest < Test::Unit::TestCase
903
1067
  end
904
1068
 
905
1069
  def test_should_respect_true_values_like_active_record
906
- [true, 1, '1', 't', 'T', 'true', 'TRUE'].each do |true_value|
1070
+ [true, 1, "1", "t", "T", "true", "TRUE"].each do |true_value|
907
1071
  @spaceship.warpdrive = true_value
908
1072
  assert @spaceship.warpdrive
909
1073
  end
910
1074
 
911
- [false, 0, '0', 'f', 'F', 'false', 'FALSE'].each do |false_value|
1075
+ [false, 0, "0", "f", "F", "false", "FALSE"].each do |false_value|
912
1076
  @spaceship.warpdrive = false_value
913
1077
  assert !@spaceship.warpdrive
914
1078
  end
@@ -918,7 +1082,7 @@ class FlagShihTzuInstanceMethodsTest < Test::Unit::TestCase
918
1082
  assert_nothing_raised do
919
1083
  eval(<<-EOF
920
1084
  class SpaceshipWithoutFlagsColumn1 < ActiveRecord::Base
921
- self.table_name = 'spaceships_without_flags_column'
1085
+ self.table_name = "spaceships_without_flags_column"
922
1086
  include FlagShihTzu
923
1087
 
924
1088
  has_flags 1 => :warpdrive,
@@ -936,7 +1100,7 @@ class FlagShihTzuInstanceMethodsTest < Test::Unit::TestCase
936
1100
  assert_raises FlagShihTzu::IncorrectFlagColumnException do
937
1101
  eval(<<-EOF
938
1102
  class SpaceshipWithNonIntegerColumn1 < ActiveRecord::Base
939
- self.table_name ='spaceships_with_non_integer_column'
1103
+ self.table_name ="spaceships_with_non_integer_column"
940
1104
  include FlagShihTzu
941
1105
 
942
1106
  has_flags 1 => :warpdrive,
@@ -954,18 +1118,18 @@ class FlagShihTzuInstanceMethodsTest < Test::Unit::TestCase
954
1118
  assert_nothing_raised do
955
1119
  eval(<<-EOF
956
1120
  class SpaceshipWithoutFlagsColumn2 < ActiveRecord::Base
957
- self.table_name = 'spaceships_without_flags_column'
1121
+ self.table_name = "spaceships_without_flags_column"
958
1122
  include FlagShihTzu
959
1123
 
960
1124
  has_flags 1 => :warpdrive,
961
1125
  2 => :shields,
962
1126
  3 => :electrolytes,
963
- :check_for_column => true
1127
+ check_for_column: true
964
1128
  end
965
1129
  EOF
966
1130
  )
967
1131
  end
968
- assert !SpaceshipWithoutFlagsColumn2.send(:check_flag_column, 'flags')
1132
+ assert !SpaceshipWithoutFlagsColumn2.send(:check_flag_column, "flags")
969
1133
  assert !SpaceshipWithoutFlagsColumn2.method_defined?(:warpdrive)
970
1134
  end
971
1135
 
@@ -973,13 +1137,13 @@ class FlagShihTzuInstanceMethodsTest < Test::Unit::TestCase
973
1137
  assert_raises FlagShihTzu::IncorrectFlagColumnException do
974
1138
  eval(<<-EOF
975
1139
  class SpaceshipWithNonIntegerColumn2 < ActiveRecord::Base
976
- self.table_name ='spaceships_with_non_integer_column'
1140
+ self.table_name ="spaceships_with_non_integer_column"
977
1141
  include FlagShihTzu
978
1142
 
979
1143
  has_flags 1 => :warpdrive,
980
1144
  2 => :shields,
981
1145
  3 => :electrolytes,
982
- :check_for_column => true
1146
+ check_for_column: true
983
1147
  end
984
1148
  EOF
985
1149
  )
@@ -992,13 +1156,13 @@ class FlagShihTzuInstanceMethodsTest < Test::Unit::TestCase
992
1156
  assert_nothing_raised do
993
1157
  eval(<<-EOF
994
1158
  class SpaceshipWithoutFlagsColumn3 < ActiveRecord::Base
995
- self.table_name = 'spaceships_without_flags_column'
1159
+ self.table_name = "spaceships_without_flags_column"
996
1160
  include FlagShihTzu
997
1161
 
998
1162
  has_flags 1 => :warpdrive,
999
1163
  2 => :shields,
1000
1164
  3 => :electrolytes,
1001
- :check_for_column => false
1165
+ check_for_column: false
1002
1166
  end
1003
1167
  EOF
1004
1168
  )
@@ -1011,13 +1175,13 @@ class FlagShihTzuInstanceMethodsTest < Test::Unit::TestCase
1011
1175
  assert_nothing_raised do
1012
1176
  eval(<<-EOF
1013
1177
  class SpaceshipWithNonIntegerColumn3 < ActiveRecord::Base
1014
- self.table_name ='spaceships_with_non_integer_column'
1178
+ self.table_name ="spaceships_with_non_integer_column"
1015
1179
  include FlagShihTzu
1016
1180
 
1017
1181
  has_flags 1 => :warpdrive,
1018
1182
  2 => :shields,
1019
1183
  3 => :electrolytes,
1020
- :check_for_column => false
1184
+ check_for_column: false
1021
1185
  end
1022
1186
  EOF
1023
1187
  )
@@ -1027,7 +1191,8 @@ class FlagShihTzuInstanceMethodsTest < Test::Unit::TestCase
1027
1191
  end
1028
1192
 
1029
1193
  def test_column_guessing_for_default_column_2
1030
- assert_equal 'flags', @spaceship.class.determine_flag_colmn_for(:warpdrive)
1194
+ assert_equal "flags",
1195
+ @spaceship.class.determine_flag_colmn_for(:warpdrive)
1031
1196
  end
1032
1197
 
1033
1198
  def test_column_guessing_for_default_column_1
@@ -1037,8 +1202,10 @@ class FlagShihTzuInstanceMethodsTest < Test::Unit::TestCase
1037
1202
  end
1038
1203
 
1039
1204
  def test_column_guessing_for_2_columns
1040
- assert_equal 'commanders', @big_spaceship.class.determine_flag_colmn_for(:jeanlucpicard)
1041
- assert_equal 'bits', @big_spaceship.class.determine_flag_colmn_for(:warpdrive)
1205
+ assert_equal "commanders",
1206
+ @big_spaceship.class.determine_flag_colmn_for(:jeanlucpicard)
1207
+ assert_equal "bits",
1208
+ @big_spaceship.class.determine_flag_colmn_for(:warpdrive)
1042
1209
  end
1043
1210
 
1044
1211
  def test_update_flag_without_updating_instance!
@@ -1053,7 +1220,8 @@ class FlagShihTzuInstanceMethodsTest < Test::Unit::TestCase
1053
1220
  assert_equal true, my_spaceship.update_flag!(:jeanlucpicard, false)
1054
1221
  assert_equal true, my_spaceship.update_flag!(:warpdrive, true)
1055
1222
 
1056
- # Not updating the instance here, so it won't reflect the result of the SQL update until after reloaded
1223
+ # Not updating the instance here,
1224
+ # so it won't reflect the result of the SQL update until after reloaded
1057
1225
  assert_equal true, my_spaceship.jeanlucpicard
1058
1226
  assert_equal false, my_spaceship.warpdrive
1059
1227
 
@@ -1075,7 +1243,8 @@ class FlagShihTzuInstanceMethodsTest < Test::Unit::TestCase
1075
1243
  assert_equal true, my_spaceship.update_flag!(:jeanlucpicard, false, true)
1076
1244
  assert_equal true, my_spaceship.update_flag!(:warpdrive, true, true)
1077
1245
 
1078
- # Updating the instance here, so it will reflect the result of the SQL update before and after reload
1246
+ # Updating the instance here,
1247
+ # so it will reflect the result of the SQL update before and after reload
1079
1248
  assert_equal false, my_spaceship.jeanlucpicard
1080
1249
  assert_equal true, my_spaceship.warpdrive
1081
1250
 
@@ -1230,12 +1399,12 @@ class FlagShihTzuDerivedClassTest < Test::Unit::TestCase
1230
1399
  end
1231
1400
 
1232
1401
  def test_should_respect_true_values_like_active_record
1233
- [true, 1, '1', 't', 'T', 'true', 'TRUE'].each do |true_value|
1402
+ [true, 1, "1", "t", "T", "true", "TRUE"].each do |true_value|
1234
1403
  @spaceship.warpdrive = true_value
1235
1404
  assert @spaceship.warpdrive
1236
1405
  end
1237
1406
 
1238
- [false, 0, '0', 'f', 'F', 'false', 'FALSE'].each do |false_value|
1407
+ [false, 0, "0", "f", "F", "false", "FALSE"].each do |false_value|
1239
1408
  @spaceship.warpdrive = false_value
1240
1409
  assert !@spaceship.warpdrive
1241
1410
  end
@@ -1250,8 +1419,10 @@ class FlagShihTzuDerivedClassTest < Test::Unit::TestCase
1250
1419
  end
1251
1420
 
1252
1421
  def test_should_return_a_sql_set_method_for_flag
1253
- assert_equal "flags = flags | 1", Spaceship.send( :sql_set_for_flag, :warpdrive, 'flags', true)
1254
- assert_equal "flags = flags & ~1", Spaceship.send( :sql_set_for_flag, :warpdrive, 'flags', false)
1422
+ assert_equal "flags = flags | 1",
1423
+ Spaceship.send(:sql_set_for_flag, :warpdrive, "flags", true)
1424
+ assert_equal "flags = flags & ~1",
1425
+ Spaceship.send(:sql_set_for_flag, :warpdrive, "flags", false)
1255
1426
  end
1256
1427
 
1257
1428
  end
@@ -1259,12 +1430,16 @@ end
1259
1430
  class FlagShihTzuClassMethodsTest < Test::Unit::TestCase
1260
1431
 
1261
1432
  def test_should_track_columns_used_by_FlagShihTzu
1262
- assert_equal Spaceship.flag_columns, ['flags']
1263
- assert_equal SpaceshipWith2CustomFlagsColumn.flag_columns, ['bits', 'commanders']
1264
- assert_equal SpaceshipWith3CustomFlagsColumn.flag_columns, ['engines', 'weapons', 'hal3000']
1433
+ assert_equal Spaceship.flag_columns, ["flags"]
1434
+ assert_equal SpaceshipWith2CustomFlagsColumn.flag_columns,
1435
+ ["bits", "commanders"]
1436
+ assert_equal SpaceshipWith3CustomFlagsColumn.flag_columns,
1437
+ ["engines", "weapons", "hal3000"]
1265
1438
  if (ActiveRecord::VERSION::MAJOR >= 3)
1266
- assert_equal SpaceshipWithValidationsAnd3CustomFlagsColumn.flag_columns, ["engines", "weapons", "hal3000"]
1267
- assert_equal SpaceshipWithSymbolAndStringFlagColumns.flag_columns, ['peace', 'love', 'happiness']
1439
+ assert_equal SpaceshipWithValidationsAnd3CustomFlagsColumn.flag_columns,
1440
+ ["engines", "weapons", "hal3000"]
1441
+ assert_equal SpaceshipWithSymbolAndStringFlagColumns.flag_columns,
1442
+ ["peace", "love", "happiness"]
1268
1443
  end
1269
1444
  end
1270
1445