ohm 0.1.0.rc4 → 0.1.0.rc5

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.
data/test/indices_test.rb CHANGED
@@ -59,7 +59,7 @@ class IndicesTest < Test::Unit::TestCase
59
59
  end
60
60
 
61
61
  should "use a special namespace for set operations" do
62
- assert_match /^~:/, User.find(:email => "foo", :activation_code => "bar").key.to_s
62
+ assert_match(/^~:/, User.find(:email => "foo", :activation_code => "bar").key.to_s)
63
63
 
64
64
  assert Ohm.redis.keys("~:*").size > 0
65
65
  end
@@ -159,9 +159,11 @@ class IndicesTest < Test::Unit::TestCase
159
159
  @event1 = Event.create(:timeline => 1).update(:days => [1, 2])
160
160
  @event2 = Event.create(:timeline => 1).update(:days => [2, 3])
161
161
  @event3 = Event.create(:timeline => 2).update(:days => [3, 4])
162
+ @event4 = Event.create(:timeline => 2).update(:days => [1, 3])
162
163
  end
163
164
 
164
165
  should "intersect multiple sets of results" do
166
+ assert_equal [@event1], Event.find(:days => [1, 2]).all
165
167
  assert_equal [@event1], Event.find(:timeline => 1, :days => [1, 2]).all
166
168
  assert_equal [@event1], Event.find(:timeline => 1).find(:days => [1, 2]).all
167
169
  end
data/test/model_test.rb CHANGED
@@ -6,7 +6,6 @@ require "json"
6
6
 
7
7
  class Post < Ohm::Model
8
8
  attribute :body
9
- list :comments
10
9
  list :related, Post
11
10
  end
12
11
 
@@ -41,9 +40,16 @@ class Event < Ohm::Model
41
40
  end
42
41
  end
43
42
 
43
+ module SomeNamespace
44
+ class Foo < Ohm::Model
45
+ attribute :name
46
+ end
47
+ end
48
+
44
49
  class ModelTest < Test::Unit::TestCase
45
50
  setup do
46
51
  Ohm.flush
52
+ Logger.current.clear
47
53
  end
48
54
 
49
55
  context "An event initialized with a hash of attributes" do
@@ -113,7 +119,10 @@ class ModelTest < Test::Unit::TestCase
113
119
  assert_nothing_raised do
114
120
  class RedefinedModel < Ohm::Model
115
121
  attribute :name
116
- attribute :name
122
+
123
+ silence_warnings do
124
+ attribute :name
125
+ end
117
126
  end
118
127
  end
119
128
  end
@@ -122,7 +131,10 @@ class ModelTest < Test::Unit::TestCase
122
131
  assert_nothing_raised do
123
132
  class RedefinedModel < Ohm::Model
124
133
  counter :age
125
- counter :age
134
+
135
+ silence_warnings do
136
+ counter :age
137
+ end
126
138
  end
127
139
  end
128
140
  end
@@ -130,8 +142,11 @@ class ModelTest < Test::Unit::TestCase
130
142
  should "not raise if a list is redefined" do
131
143
  assert_nothing_raised do
132
144
  class RedefinedModel < Ohm::Model
133
- list :todo
134
- list :todo
145
+ list :todo, lambda { }
146
+
147
+ silence_warnings do
148
+ list :todo, lambda { }
149
+ end
135
150
  end
136
151
  end
137
152
  end
@@ -139,8 +154,11 @@ class ModelTest < Test::Unit::TestCase
139
154
  should "not raise if a set is redefined" do
140
155
  assert_nothing_raised do
141
156
  class RedefinedModel < Ohm::Model
142
- set :friends
143
- set :friends
157
+ set :friends, lambda { }
158
+
159
+ silence_warnings do
160
+ set :friends, lambda { }
161
+ end
144
162
  end
145
163
  end
146
164
  end
@@ -148,8 +166,11 @@ class ModelTest < Test::Unit::TestCase
148
166
  should "not raise if a collection is redefined" do
149
167
  assert_nothing_raised do
150
168
  class RedefinedModel < Ohm::Model
151
- list :toys
152
- set :toys
169
+ list :toys, lambda { }
170
+
171
+ silence_warnings do
172
+ set :toys, lambda { }
173
+ end
153
174
  end
154
175
  end
155
176
  end
@@ -190,7 +211,7 @@ class ModelTest < Test::Unit::TestCase
190
211
  assert_equal "albert@example.com", User[1].email
191
212
  end
192
213
 
193
- should "allow to map ids to models" do
214
+ should "allow to map key to models" do
194
215
  assert_equal [User[1]], [1].map(&User)
195
216
  end
196
217
  end
@@ -273,23 +294,23 @@ class ModelTest < Test::Unit::TestCase
273
294
  should "delete an existing model" do
274
295
  class ModelToBeDeleted < Ohm::Model
275
296
  attribute :name
276
- set :foos
277
- list :bars
297
+ set :foos, Post
298
+ list :bars, Post
278
299
  end
279
300
 
280
301
  @model = ModelToBeDeleted.create(:name => "Lorem")
281
302
 
282
- @model.foos << "foo"
283
- @model.bars << "bar"
303
+ @model.foos << Post.create
304
+ @model.bars << Post.create
284
305
 
285
306
  id = @model.id
286
307
 
287
308
  @model.delete
288
309
 
289
- assert_nil Ohm.redis.get(ModelToBeDeleted.key(id))
290
- assert_nil Ohm.redis.get(ModelToBeDeleted.key(id, :name))
291
- assert_equal Array.new, Ohm.redis.smembers(ModelToBeDeleted.key(id, :foos))
292
- assert_equal Array.new, Ohm.redis.lrange(ModelToBeDeleted.key(id, :bars), 0, -1)
310
+ assert_nil Ohm.redis.get(ModelToBeDeleted.key[id])
311
+ assert_nil Ohm.redis.get(ModelToBeDeleted.key[id][:name])
312
+ assert_equal Array.new, Ohm.redis.smembers(ModelToBeDeleted.key[id][:foos])
313
+ assert_equal Array.new, Ohm.redis.lrange(ModelToBeDeleted.key[id][:bars], 0, -1)
293
314
 
294
315
  assert ModelToBeDeleted.all.empty?
295
316
  end
@@ -373,8 +394,15 @@ class ModelTest < Test::Unit::TestCase
373
394
  should "load attributes lazily" do
374
395
  event = Event[@id]
375
396
 
376
- assert_nil event.send(:instance_variable_get, "@name")
397
+ Logger.current.clear
398
+
399
+ assert Logger.current.commands.empty?
377
400
  assert_equal "Ruby Tuesday", event.name
401
+ assert !Logger.current.commands.empty?
402
+
403
+ Logger.current.clear
404
+ assert_equal "Ruby Tuesday", event.name
405
+ assert Logger.current.commands.empty?
378
406
  end
379
407
 
380
408
  should "load attributes as a strings" do
@@ -400,14 +428,14 @@ class ModelTest < Test::Unit::TestCase
400
428
  end
401
429
  end
402
430
 
403
- should "remove an element if sent :delete" do
431
+ should "remove an element if sent delete" do
404
432
  @event.create
405
433
  @event.attendees << @person1
406
434
  @event.attendees << @person2
407
435
  @event.attendees << @person3
408
- assert_equal ["1", "2", "3"], @event.attendees.raw.sort
436
+ assert_equal ["1", "2", "3"], @event.attendees.key.sort
409
437
  @event.attendees.delete(@person2)
410
- assert_equal ["1", "3"], Event[@event.id].attendees.raw.sort
438
+ assert_equal ["1", "3"], Event[@event.id].attendees.key.sort
411
439
  end
412
440
 
413
441
  should "return true if the set includes some member" do
@@ -423,7 +451,7 @@ class ModelTest < Test::Unit::TestCase
423
451
  @event.attendees << @person1
424
452
 
425
453
  assert_equal [@person1], @event.attendees.all
426
- assert_equal @person1, @event.attendees[0]
454
+ assert_equal @person1, @event.attendees[@person1.id]
427
455
  end
428
456
 
429
457
  should "return the size of the set" do
@@ -451,7 +479,7 @@ class ModelTest < Test::Unit::TestCase
451
479
 
452
480
  @event.attendees.replace([@person2, @person3])
453
481
 
454
- assert_equal [@person2, @person3], @event.attendees.sort
482
+ assert_equal [@person2, @person3], @event.attendees.all.sort_by(&:id)
455
483
  end
456
484
 
457
485
  should "filter elements" do
@@ -473,91 +501,116 @@ class ModelTest < Test::Unit::TestCase
473
501
  end
474
502
 
475
503
  should "return an array" do
476
- assert @post.comments.all.kind_of?(Array)
504
+ assert @post.related.all.kind_of?(Array)
477
505
  end
478
506
 
479
507
  should "append elements with push" do
480
- @post.comments.push "1"
481
- @post.comments << "2"
508
+ @post.related.push Post.create
509
+ @post.related << Post.create
482
510
 
483
- assert_equal ["1", "2"], @post.comments.all
511
+ assert_equal ["2", "3"], @post.related.all.map { |model| model.id }
484
512
  end
485
513
 
486
514
  should "keep the inserting order" do
487
- @post.comments << "1"
488
- @post.comments << "2"
489
- @post.comments << "3"
490
- assert_equal ["1", "2", "3"], @post.comments.all
515
+ @post.related << Post.create
516
+ @post.related << Post.create
517
+ @post.related << Post.create
518
+ assert_equal ["2", "3", "4"], @post.related.all.map { |model| model.id }
491
519
  end
492
520
 
493
521
  should "keep the inserting order after saving" do
494
- @post.comments << "1"
495
- @post.comments << "2"
496
- @post.comments << "3"
522
+ @post.related << Post.create
523
+ @post.related << Post.create
524
+ @post.related << Post.create
497
525
  @post.save
498
- assert_equal ["1", "2", "3"], Post[@post.id].comments.all
526
+ assert_equal ["2", "3", "4"], Post[@post.id].related.map { |model| model.id }
527
+ end
528
+
529
+ should "allow slicing the list" do
530
+ post1 = Post.create
531
+ post2 = Post.create
532
+ post3 = Post.create
533
+
534
+ @post.related << post1
535
+ @post.related << post2
536
+ @post.related << post3
537
+
538
+ assert_equal post1, @post.related[0]
539
+ assert_equal post2, @post.related[1]
540
+ assert_equal post3, @post.related[-1]
541
+
542
+ assert_equal nil, @post.related[3]
543
+
544
+ assert_equal [post2, post3], @post.related[1, 2]
545
+ assert_equal [post2, post3], @post.related[1, -1]
546
+
547
+ assert_equal [], @post.related[4, 5]
548
+
549
+ assert_equal [post2, post3], @post.related[1..2]
550
+ assert_equal [post2, post3], @post.related[1..5]
551
+
552
+ assert_equal [], @post.related[4..5]
499
553
  end
500
554
 
501
555
  should "respond to each" do
502
- @post.comments << "1"
503
- @post.comments << "2"
504
- @post.comments << "3"
556
+ @post.related << Post.create
557
+ @post.related << Post.create
558
+ @post.related << Post.create
505
559
 
506
- i = 1
507
- @post.comments.each do |c|
508
- assert_equal i, c.to_i
560
+ i = 2
561
+ @post.related.each do |c|
562
+ assert_equal i, c.id.to_i
509
563
  i += 1
510
564
  end
511
565
  end
512
566
 
513
567
  should "return the size of the list" do
514
- @post.comments << "1"
515
- @post.comments << "2"
516
- @post.comments << "3"
517
- assert_equal 3, @post.comments.size
568
+ @post.related << Post.create
569
+ @post.related << Post.create
570
+ @post.related << Post.create
571
+ assert_equal 3, @post.related.size
518
572
  end
519
573
 
520
574
  should "return the last element with pop" do
521
- @post.comments << "1"
522
- @post.comments << "2"
523
- assert_equal "2", @post.comments.pop
524
- assert_equal "1", @post.comments.pop
525
- assert @post.comments.empty?
575
+ @post.related << Post.create
576
+ @post.related << Post.create
577
+ assert_equal "3", @post.related.pop.id
578
+ assert_equal "2", @post.related.pop.id
579
+ assert @post.related.empty?
526
580
  end
527
581
 
528
582
  should "return the first element with shift" do
529
- @post.comments << "1"
530
- @post.comments << "2"
531
- assert_equal "1", @post.comments.shift
532
- assert_equal "2", @post.comments.shift
533
- assert @post.comments.empty?
583
+ @post.related << Post.create
584
+ @post.related << Post.create
585
+ assert_equal "2", @post.related.shift.id
586
+ assert_equal "3", @post.related.shift.id
587
+ assert @post.related.empty?
534
588
  end
535
589
 
536
590
  should "push to the head of the list with unshift" do
537
- @post.comments.unshift "1"
538
- @post.comments.unshift "2"
539
- assert_equal "1", @post.comments.pop
540
- assert_equal "2", @post.comments.pop
541
- assert @post.comments.empty?
591
+ @post.related.unshift Post.create
592
+ @post.related.unshift Post.create
593
+ assert_equal "2", @post.related.pop.id
594
+ assert_equal "3", @post.related.pop.id
595
+ assert @post.related.empty?
542
596
  end
543
597
 
544
598
  should "empty the list" do
545
- @post.comments.unshift "1"
546
- @post.comments.clear
599
+ @post.related.unshift Post.create
600
+ @post.related.clear
547
601
 
548
- assert @post.comments.empty?
602
+ assert @post.related.empty?
549
603
  end
550
604
 
551
605
  should "replace the values in the list" do
552
- @post.comments.replace(["1", "2"])
606
+ @post.related.replace([Post.create, Post.create])
553
607
 
554
- assert_equal ["1", "2"], @post.comments
608
+ assert_equal ["2", "3"], @post.related.map { |model| model.id }
555
609
  end
556
610
 
557
611
  should "add models" do
558
612
  @post.related.add(Post.create(:body => "Hello"))
559
-
560
- assert_equal ["2"], @post.related.raw
613
+ assert_equal ["2"], @post.related.map { |model| model.id }
561
614
  end
562
615
 
563
616
  should "find elements in the list" do
@@ -573,7 +626,7 @@ class ModelTest < Test::Unit::TestCase
573
626
  @post.related.unshift(Post.create(:body => "Hello"))
574
627
  @post.related.unshift(Post.create(:body => "Goodbye"))
575
628
 
576
- assert_equal ["3", "2"], @post.related.raw
629
+ assert_equal ["3", "2"], @post.related.map { |model| model.id }
577
630
 
578
631
  assert_equal "3", @post.related.shift.id
579
632
 
@@ -614,8 +667,8 @@ class ModelTest < Test::Unit::TestCase
614
667
  setup do
615
668
  @calendar = Calendar.create
616
669
 
617
- @calendar.holidays.raw << "2009-05-25"
618
- @calendar.holidays.raw << "2009-07-09"
670
+ @calendar.holidays.key.rpush "2009-05-25"
671
+ @calendar.holidays.key.rpush "2009-07-09"
619
672
 
620
673
  @calendar.subscribers << MyActiveRecordModel.find(1)
621
674
  end
@@ -623,7 +676,7 @@ class ModelTest < Test::Unit::TestCase
623
676
  should "apply a transformation" do
624
677
  assert_equal [Date.new(2009, 5, 25), Date.new(2009, 7, 9)], @calendar.holidays.all
625
678
 
626
- assert_equal ["1"], @calendar.subscribers.raw.all
679
+ assert_equal [1], @calendar.subscribers.all.map { |model| model.id }
627
680
  assert_equal [MyActiveRecordModel.find(1)], @calendar.subscribers.all
628
681
  end
629
682
 
@@ -642,13 +695,13 @@ class ModelTest < Test::Unit::TestCase
642
695
  context "Sorting lists and sets" do
643
696
  setup do
644
697
  @post = Post.create(:body => "Lorem")
645
- @post.comments << 2
646
- @post.comments << 3
647
- @post.comments << 1
698
+ @post.related << Post.create
699
+ @post.related << Post.create
700
+ @post.related << Post.create
648
701
  end
649
702
 
650
703
  should "sort values" do
651
- assert_equal %w{1 2 3}, @post.comments.sort
704
+ assert_equal %w{2 3 4}, @post.related.sort.map { |model| model.id }
652
705
  end
653
706
  end
654
707
 
@@ -716,10 +769,10 @@ class ModelTest < Test::Unit::TestCase
716
769
 
717
770
  should "be able to decrement a counter" do
718
771
  @event.decr(:votes)
719
- assert_equal -1, @event.votes
772
+ assert_equal(-1, @event.votes)
720
773
 
721
774
  @event.decr(:votes, 2)
722
- assert_equal -3, @event.votes
775
+ assert_equal(-3, @event.votes)
723
776
  end
724
777
  end
725
778
 
@@ -752,8 +805,8 @@ class ModelTest < Test::Unit::TestCase
752
805
  class ::Bar < Ohm::Model
753
806
  attribute :name
754
807
  counter :visits
755
- set :friends
756
- list :comments
808
+ set :friends, self
809
+ list :comments, self
757
810
 
758
811
  def foo
759
812
  bar.foo
@@ -774,12 +827,12 @@ class ModelTest < Test::Unit::TestCase
774
827
  assert_equal "#<Bar:? name=nil friends=nil comments=nil visits=0>", bar.inspect
775
828
 
776
829
  bar.update(:name => "Albert")
777
- bar.friends << 1
778
- bar.friends << 2
779
- bar.comments << "A"
830
+ bar.friends << Bar.create
831
+ bar.friends << Bar.create
832
+ bar.comments << Bar.create
780
833
  bar.incr(:visits)
781
834
 
782
- assert_equal %Q{#<Bar:#{bar.id} name="Albert" friends=#<Set: ["1", "2"]> comments=#<List: ["A"]> visits=1>}, Bar[bar.id].inspect
835
+ assert_equal %Q{#<Bar:#{bar.id} name="Albert" friends=#<Set (Bar): ["3", "2"]> comments=#<List (Bar): ["4"]> visits=1>}, Bar[bar.id].inspect
783
836
  end
784
837
 
785
838
  def assert_wrapper_exception(&block)
@@ -788,7 +841,7 @@ class ModelTest < Test::Unit::TestCase
788
841
  rescue NoMethodError => exception_raised
789
842
  end
790
843
 
791
- assert_match /You tried to call SomeMissingConstant#\w+, but SomeMissingConstant is not defined on #{__FILE__}:\d+:in `bar'/, exception_raised.message
844
+ assert_match(/You tried to call SomeMissingConstant#\w+, but SomeMissingConstant is not defined on #{__FILE__}:\d+:in `bar'/, exception_raised.message)
792
845
  end
793
846
 
794
847
  should "inform about a miscatch by Wrapper when calling class methods" do
@@ -928,10 +981,7 @@ class ModelTest < Test::Unit::TestCase
928
981
  end
929
982
 
930
983
  setup do
931
- Car.connect(:port => 6379, :db => 14)
932
- end
933
-
934
- teardown do
984
+ Car.connect(:db => 15)
935
985
  Car.db.flushdb
936
986
  end
937
987
 
@@ -939,11 +989,11 @@ class ModelTest < Test::Unit::TestCase
939
989
  car = Car.create(:name => "Twingo")
940
990
  make = Make.create(:name => "Renault")
941
991
 
942
- assert_equal ["1"], Redis.new(:db => 15).smembers("Make:all")
943
- assert_equal [], Redis.new(:db => 15).smembers("Car:all")
992
+ assert_equal ["1"], Redis.connect.smembers("Make:all")
993
+ assert_equal [], Redis.connect.smembers("Car:all")
944
994
 
945
- assert_equal ["1"], Redis.new(:db => 14).smembers("Car:all")
946
- assert_equal [], Redis.new(:db => 14).smembers("Make:all")
995
+ assert_equal ["1"], Car.db.smembers("Car:all")
996
+ assert_equal [], Car.db.smembers("Make:all")
947
997
 
948
998
  assert_equal car, Car[1]
949
999
  assert_equal make, Make[1]
@@ -957,13 +1007,13 @@ class ModelTest < Test::Unit::TestCase
957
1007
  should "allow changing the database" do
958
1008
  Car.create(:name => "Twingo")
959
1009
 
960
- assert_equal ["1"], Car.all.raw
1010
+ assert_equal ["1"], Car.all.key.smembers
961
1011
 
962
- Car.connect :db => 15
963
- assert_equal [], Car.all.raw
1012
+ Car.connect
1013
+ assert_equal [], Car.all.key.smembers
964
1014
 
965
- Car.connect :db => 14
966
- assert_equal ["1"], Car.all.raw
1015
+ Car.connect :db => 15
1016
+ assert_equal ["1"], Car.all.key.smembers
967
1017
  end
968
1018
  end
969
1019
 
@@ -1081,4 +1131,14 @@ class ModelTest < Test::Unit::TestCase
1081
1131
  assert_equal 'authorized', order.state
1082
1132
  end
1083
1133
  end
1134
+
1135
+ context "namespaced models" do
1136
+ should "be persisted" do
1137
+ SomeNamespace::Foo.create(:name => "foo")
1138
+
1139
+ assert_equal "hash", Ohm.redis.type("SomeNamespace::Foo:1")
1140
+
1141
+ assert_equal "foo", SomeNamespace::Foo[1].name
1142
+ end
1143
+ end
1084
1144
  end
data/test/mutex_test.rb CHANGED
@@ -68,12 +68,12 @@ class TestMutex < Test::Unit::TestCase
68
68
 
69
69
  threads = []
70
70
 
71
- n = 10
72
- m = 9
71
+ n = 3
72
+ m = 2
73
73
 
74
- n.times do |i|
74
+ n.times do
75
75
  threads << Thread.new do
76
- m.times do |i|
76
+ m.times do
77
77
  @candidate.mutex do
78
78
  sleep 0.1
79
79
  @candidate.incr(:votes)
@@ -0,0 +1,8 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), "test_helper"))
2
+
3
+ class TestArray < Test::Unit::TestCase
4
+ test "should provide pattern matching" do
5
+ assert(Ohm::Pattern[1, Fixnum] === [1, 2])
6
+ assert(Ohm::Pattern[String, Array] === ["foo", ["bar"]])
7
+ end
8
+ end
data/test/test_helper.rb CHANGED
@@ -6,7 +6,48 @@ rescue LoadError
6
6
  end
7
7
 
8
8
  require "contest"
9
+
10
+ def silence_warnings
11
+ original_verbose, $VERBOSE = $VERBOSE, nil
12
+ yield
13
+ ensure
14
+ $VERBOSE = original_verbose
15
+ end
16
+
17
+ $VERBOSE = true
18
+
19
+ class Logger
20
+ def self.current
21
+ Thread.current[:logger] ||= new
22
+ end
23
+
24
+ def initialize
25
+ clear
26
+ end
27
+
28
+ def clear
29
+ @lines = []
30
+ end
31
+
32
+ def debug(message)
33
+ @lines << message.to_s
34
+ end
35
+
36
+ def debug?; true; end
37
+ alias info debug
38
+ alias warn debug
39
+ alias error debug
40
+
41
+ def commands
42
+ @lines.map { |line| line[/Redis >> ([A-Z].+?)$/, 1] }.compact
43
+ end
44
+ end
45
+
9
46
  require "ohm"
10
47
 
11
- Ohm.connect(:port => 6379, :db => 15, :timeout => 3)
12
- Ohm.flush
48
+ class Test::Unit::TestCase
49
+ setup do
50
+ Ohm.redis = Redis.connect(:logger => Logger.current)
51
+ Ohm.flush
52
+ end
53
+ end
@@ -24,7 +24,7 @@ class UpgradeScriptTest < Test::Unit::TestCase
24
24
  setup do
25
25
  redis.flushdb
26
26
 
27
- @users = Ohm::Key[:User]
27
+ @users = Ohm::Key.new(:User, Ohm.redis)
28
28
 
29
29
  10.times do
30
30
  @id = redis.incr(@users[:id])
metadata CHANGED
@@ -6,8 +6,8 @@ version: !ruby/object:Gem::Version
6
6
  - 0
7
7
  - 1
8
8
  - 0
9
- - rc4
10
- version: 0.1.0.rc4
9
+ - rc5
10
+ version: 0.1.0.rc5
11
11
  platform: ruby
12
12
  authors:
13
13
  - Michel Martens
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2010-07-02 00:00:00 -03:00
19
+ date: 2010-08-31 00:00:00 -03:00
20
20
  default_executable:
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency
@@ -31,8 +31,7 @@ dependencies:
31
31
  - 2
32
32
  - 0
33
33
  - 0
34
- - rc3
35
- version: 2.0.0.rc3
34
+ version: 2.0.0
36
35
  type: :runtime
37
36
  version_requirements: *id001
38
37
  - !ruby/object:Gem::Dependency
@@ -75,9 +74,9 @@ extensions: []
75
74
  extra_rdoc_files: []
76
75
 
77
76
  files:
78
- - lib/ohm/collection.rb
79
77
  - lib/ohm/compat-1.8.6.rb
80
78
  - lib/ohm/key.rb
79
+ - lib/ohm/pattern.rb
81
80
  - lib/ohm/utils/upgrade.rb
82
81
  - lib/ohm/validations.rb
83
82
  - lib/ohm/version.rb
@@ -91,9 +90,9 @@ files:
91
90
  - test/errors_test.rb
92
91
  - test/hash_key_test.rb
93
92
  - test/indices_test.rb
94
- - test/model_module_test.rb
95
93
  - test/model_test.rb
96
94
  - test/mutex_test.rb
95
+ - test/pattern_test.rb
97
96
  - test/test_helper.rb
98
97
  - test/upgrade_script_test.rb
99
98
  - test/validations_test.rb