has_many_booleans 0.9.1 → 0.9.3

Sign up to get free protection for your applications and to get access to all the features.
Binary file
@@ -107,6 +107,10 @@ class HasManyBooleansTest < ActiveSupport::TestCase
107
107
  has_many_booleans :name, :password, :admin, :false_values => ["super", 'toll', 3]
108
108
  end
109
109
 
110
+ class UnknownValue < ActiveRecord::Base
111
+ has_many_booleans :name, :password, :admin, :unkown_value => false
112
+ end
113
+
110
114
  class Scope < ActiveRecord::Base
111
115
  has_many_booleans :name, :password, :admin, :self => true
112
116
  end
@@ -133,8 +137,8 @@ class HasManyBooleansTest < ActiveSupport::TestCase
133
137
  :ar_callback => ArCallback.new,
134
138
  :lazy_false => LazyFalse.new,
135
139
  :false_value => FalseValue.new,
140
+ :unknown_value => UnknownValue.new,
136
141
  }
137
- @booleans_options = Hash[ @instances.map{|k,v| [k, v.class.booleans_options]} ]
138
142
  end
139
143
 
140
144
  def create_instance(which, *params)
@@ -143,12 +147,9 @@ class HasManyBooleansTest < ActiveSupport::TestCase
143
147
  end
144
148
 
145
149
  def loop_instances(with_assign = false)
146
- cur_actions = @instances.each
147
- cur_booleans_options = @booleans_options.each
148
-
149
- loop{
150
- @n, @a = cur_actions.next # name, instances
151
- @o = cur_booleans_options.next[1] # booleans_options
150
+ @instances.each{ |name, instance|
151
+ @n, @a = name, instance
152
+ @o = @a.class.booleans_options
152
153
  next if with_assign &&( !@o[:suffixes].include?('=') || !@o[:append] || @o[:append].empty?) # or name does not work (existing method overwrite protection)
153
154
  yield
154
155
  }
@@ -214,7 +215,7 @@ class HasManyBooleansTest < ActiveSupport::TestCase
214
215
  test 'set and unset (with =)' do
215
216
  create_instances and loop_instances(true) do
216
217
  ( snd :name, '=', false )#, "#{@a.class},#{p :O;snd :name, '=', false}"
217
- assert_not snd :name
218
+ assert_not (snd :name), "#{@a}, #{snd :name}"
218
219
  snd :name, '=', true
219
220
  assert snd :name
220
221
 
@@ -232,14 +233,14 @@ class HasManyBooleansTest < ActiveSupport::TestCase
232
233
  assert @a.save
233
234
  tmp = @a.class
234
235
 
235
- assert_instance_of @a = @a.class.last, tmp
236
+ assert_instance_of tmp, (@a = @a.class.last)
236
237
  assert_not snd what
237
238
 
238
239
  snd what, '=', true
239
240
  assert @a.save
240
241
  tmp = @a.class
241
242
 
242
- assert_instance_of @a = @a.class.last, tmp
243
+ assert_instance_of tmp, (@a = @a.class.last)
243
244
  assert snd what
244
245
  }
245
246
  end
@@ -268,6 +269,14 @@ class HasManyBooleansTest < ActiveSupport::TestCase
268
269
  assert_equal @a.name, 'matz'
269
270
  end
270
271
 
272
+ test 'Model.new works' do
273
+ @a = ArCallback.new :name_activated => true, :name => 'Hildegard', :password => '123'
274
+
275
+ assert @a.name_activated
276
+ assert_equal @a.name, 'Yukihiro'
277
+ assert_equal @a.password, '123'
278
+ end
279
+
271
280
  # # #
272
281
  # booleans_options
273
282
  #
@@ -345,6 +354,16 @@ class HasManyBooleansTest < ActiveSupport::TestCase
345
354
  assert snd :name
346
355
  end
347
356
 
357
+ # test "unknown value" do
358
+ # create_instance UnknownValue
359
+
360
+ # snd :name, '=', true
361
+ # snd :name, '=', 'not in true values'
362
+ # assert_not snd :name
363
+ # snd :name, '=', 'true'
364
+ # assert snd :name
365
+ # end
366
+
348
367
  # scopes
349
368
  test 'scopes' do
350
369
  # create dummy data
data/test/schema.rb CHANGED
@@ -13,12 +13,12 @@ ActiveRecord::Schema.define(:version => 0) do
13
13
  selves
14
14
  self_append_nils
15
15
  self_names
16
- ar_callbacks
17
16
  lazy_falses
18
17
  booleans_as_hashes
19
18
  single_hashes
20
19
  validate_tests
21
20
  false_values
21
+ unknown_values
22
22
  scopes
23
23
  |.each do |table_name|
24
24
  create_table table_name, :force => true do |t|
@@ -32,5 +32,12 @@ ActiveRecord::Schema.define(:version => 0) do
32
32
  t.integer :bools
33
33
  end
34
34
 
35
+ create_table 'ar_callbacks', :force => true do |t|
36
+ t.string :name
37
+ t.string :password
38
+ t.integer :booleans
39
+ end
40
+
41
+
35
42
  end
36
43
 
metadata CHANGED
@@ -1,12 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: has_many_booleans
3
3
  version: !ruby/object:Gem::Version
4
+ hash: 61
4
5
  prerelease: false
5
6
  segments:
6
7
  - 0
7
8
  - 9
8
- - 1
9
- version: 0.9.1
9
+ - 3
10
+ version: 0.9.3
10
11
  platform: ruby
11
12
  authors:
12
13
  - Jan Lelis
@@ -14,7 +15,7 @@ autorequire:
14
15
  bindir: bin
15
16
  cert_chain: []
16
17
 
17
- date: 2010-07-08 00:00:00 +02:00
18
+ date: 2010-07-23 00:00:00 +02:00
18
19
  default_executable:
19
20
  dependencies: []
20
21
 
@@ -52,23 +53,27 @@ rdoc_options: []
52
53
  require_paths:
53
54
  - lib
54
55
  required_ruby_version: !ruby/object:Gem::Requirement
56
+ none: false
55
57
  requirements:
56
58
  - - ">="
57
59
  - !ruby/object:Gem::Version
60
+ hash: 3
58
61
  segments:
59
62
  - 0
60
63
  version: "0"
61
64
  required_rubygems_version: !ruby/object:Gem::Requirement
65
+ none: false
62
66
  requirements:
63
67
  - - ">="
64
68
  - !ruby/object:Gem::Version
69
+ hash: 3
65
70
  segments:
66
71
  - 0
67
72
  version: "0"
68
73
  requirements: []
69
74
 
70
75
  rubyforge_project:
71
- rubygems_version: 1.3.6
76
+ rubygems_version: 1.3.7
72
77
  signing_key:
73
78
  specification_version: 3
74
79
  summary: This Rails plugin/gem allows you to generate virtual boolean attributes, which get saved in the database as a single bitset integer