persistence 0.0.2 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (47) hide show
  1. data/lib/persistence.rb +0 -1
  2. data/lib/persistence/adapter/abstract.rb +1 -1
  3. data/lib/persistence/adapter/abstract/enable_disable.rb +1 -1
  4. data/lib/persistence/adapter/abstract/primary_key/id_property_string.rb +1 -1
  5. data/lib/persistence/adapter/abstract/primary_key/simple.rb +1 -1
  6. data/lib/persistence/adapter/mock/bucket/index/index_interface.rb +1 -1
  7. data/lib/persistence/cursor/atomic.rb +2 -2
  8. data/lib/persistence/object.rb +1 -1
  9. data/lib/persistence/object/autodetermine.rb +5 -4
  10. data/lib/persistence/object/class_instance.rb +12 -8
  11. data/lib/persistence/object/complex.rb +4 -4
  12. data/lib/persistence/object/complex/array.rb +6 -4
  13. data/lib/persistence/object/complex/array/class_instance.rb +1 -1
  14. data/lib/persistence/object/complex/array/object_instance.rb +1 -1
  15. data/lib/persistence/object/complex/attributes/attributes_array.rb +1 -1
  16. data/lib/persistence/object/complex/hash.rb +6 -4
  17. data/lib/persistence/object/complex/hash/class_instance.rb +1 -1
  18. data/lib/persistence/object/complex/hash/object_instance.rb +1 -1
  19. data/lib/persistence/object/complex/object_instance.rb +3 -3
  20. data/lib/persistence/object/flat.rb +6 -5
  21. data/lib/persistence/object/flat/class_instance.rb +2 -2
  22. data/lib/persistence/object/flat/file.rb +4 -3
  23. data/lib/persistence/object/flat/file/class_instance.rb +23 -30
  24. data/lib/persistence/object/flat/file/file_persistence.rb +4 -53
  25. data/lib/persistence/object/flat/file/object_instance.rb +21 -42
  26. data/lib/persistence/object/index.rb +0 -1
  27. data/lib/persistence/object/index_hash.rb +1 -1
  28. data/lib/persistence/object/object_instance.rb +11 -11
  29. data/lib/persistence/object/parse_persistence_args.rb +2 -108
  30. data/lib/persistence/object/parse_persistence_args/class_instance.rb +124 -0
  31. data/lib/persistence/object/parse_persistence_args/object_instance.rb +124 -0
  32. data/lib/persistence/port/bucket/bucket_interface.rb +0 -18
  33. data/lib/persistence/port/port_interface.rb +1 -19
  34. data/lib/requires.rb +10 -9
  35. data/spec/persistence/object/complex/attributes_spec.rb +1 -140
  36. data/spec/persistence/object/flat/bignum_spec.rb +12 -4
  37. data/spec/persistence/object/flat/class_spec.rb +9 -4
  38. data/spec/persistence/object/flat/file/class_instance_spec.rb +0 -1
  39. data/spec/persistence/object/flat/file_spec.rb +6 -9
  40. data/spec/persistence/object/indexes/block_index_spec.rb +1 -1
  41. data/spec/persistence/object/parse_persistence_args/class_instance_spec.rb +61 -0
  42. data/spec/persistence/object/parse_persistence_args/object_instance_spec.rb +63 -0
  43. data/spec/persistence/object_spec.rb +48 -82
  44. data/spec/persistence/port/bucket/index/bucket_index_spec.rb +1 -0
  45. data/spec/{Persistence_spec.rb → persistence_spec.rb} +0 -0
  46. metadata +8 -5
  47. data/spec/persistence/object/parse_persistence_args_spec.rb +0 -65
@@ -4,7 +4,14 @@ require_relative '../../../../lib/persistence.rb'
4
4
  describe Bignum do
5
5
 
6
6
  before :all do
7
+
7
8
  ::Persistence.enable_port( :mock, ::Persistence::Adapter::Mock.new )
9
+
10
+ class Bignum
11
+ include ::Persistence::Object::Flat
12
+ explicit_index :explicit_index
13
+ end
14
+
8
15
  end
9
16
 
10
17
  after :all do
@@ -12,16 +19,17 @@ describe Bignum do
12
19
  end
13
20
 
14
21
  it "can put a bignum number object to a persistence port and get it back" do
15
- class Bignum
16
- include ::Persistence::Object::Flat
17
- explicit_index :explicit_index
18
- end
22
+
19
23
  bignum_object = 10**20
20
24
  bignum_object.persist!
21
25
  Bignum.persist( bignum_object.persistence_id ).should == bignum_object
22
26
  bignum_object.cease!
23
27
  Bignum.persist( bignum_object.persistence_id ).should == nil
24
28
 
29
+ end
30
+
31
+ it "can put a bignum number object to a persistence port and get it back via an indexed value" do
32
+ bignum_object = 10**20
25
33
  storage_key = 10**40
26
34
  bignum_object.persist!( :explicit_index => storage_key )
27
35
  Bignum.persist( :explicit_index => storage_key ).should == bignum_object
@@ -5,6 +5,10 @@ describe Class do
5
5
 
6
6
  before :all do
7
7
  ::Persistence.enable_port( :mock, ::Persistence::Adapter::Mock.new )
8
+ class Class
9
+ include ::Persistence::Object::Flat
10
+ explicit_index :explicit_index
11
+ end
8
12
  end
9
13
 
10
14
  after :all do
@@ -12,10 +16,6 @@ describe Class do
12
16
  end
13
17
 
14
18
  it "can put a class object to a persistence port and get it back" do
15
- class Class
16
- include ::Persistence::Object::Flat
17
- explicit_index :explicit_index
18
- end
19
19
 
20
20
  class_object = Object
21
21
  class_object.persist!
@@ -25,6 +25,11 @@ describe Class do
25
25
  ::CascadingConfiguration::Core::Encapsulation.encapsulation( :default ).remove_configuration( Class, :instance_persistence_port )
26
26
  ::CascadingConfiguration::Core::Encapsulation.encapsulation( :default ).remove_configuration( Class, :instance_persistence_bucket )
27
27
 
28
+ end
29
+
30
+ it "can put a class object to a persistence port and get it back by indexed key" do
31
+
32
+ class_object = Object
28
33
  storage_key = String
29
34
  class_object.persist!( :explicit_index, storage_key )
30
35
  Class.persist( :explicit_index, storage_key ).should == class_object
@@ -45,7 +45,6 @@ describe ::Persistence::Object::Flat::File::ClassInstance do
45
45
  instance_to_persist_two.persistence_port.put_object!( instance_to_persist_two )
46
46
  instance_to_persist_two.persistence_id.should_not == nil
47
47
 
48
- ::Persistence::Object::Flat::File::ClassInstance::FileMock.instance_persistence_port.persist_file_paths_as_objects!
49
48
  persisted_file_two = ::Persistence::Object::Flat::File::ClassInstance::FileMock.persist( instance_to_persist_two.persistence_id )
50
49
  persisted_file_two.is_a?( File ).should == true
51
50
  persisted_file_two.path.should == instance_to_persist_two
@@ -17,21 +17,17 @@ describe ::Persistence::Object::Flat::File do
17
17
  explicit_index :explicit_index
18
18
  end
19
19
  class ::Persistence::Object::Flat::File::Contents
20
- include ::Persistence::Object::Flat
21
- explicit_index :explicit_index
22
20
  end
23
21
  class ::Persistence::Object::Flat::File::Path
24
- include ::Persistence::Object::Flat
25
- explicit_index :explicit_index
26
22
  end
27
23
  file_object = ::Persistence::Object::Flat::File::FileMock.open( __FILE__, 'r' )
28
24
  file_object.persistence_port.persist_files_by_path!
29
- file_object.persistence_port.persist_file_paths_as_strings!
25
+ file_object.persistence_port.persist_file_paths_as_strings = true
30
26
  file_object.persist!
31
27
 
32
28
  persisted_file = ::Persistence::Object::Flat::File::FileMock.persist( file_object.persistence_id )
33
29
  persisted_file.should == file_object.path
34
- file_object.persistence_port.persist_file_paths_as_objects!
30
+ file_object.persistence_port.persist_file_paths_as_strings = false
35
31
  persisted_file = ::Persistence::Object::Flat::File::FileMock.persist( file_object.persistence_id )
36
32
  persisted_file.path.should == file_object.path
37
33
 
@@ -41,14 +37,15 @@ describe ::Persistence::Object::Flat::File do
41
37
  persisted_file.should == file_object.readlines.join
42
38
  file_object.cease!
43
39
  ::Persistence::Object::Flat::File::FileMock.persist( file_object.persistence_id ).should == nil
44
-
40
+
45
41
  file_object.persistence_port.persist_files_by_path!
46
- file_object.persistence_port.persist_file_paths_as_strings!
42
+ file_object.persistence_port.persist_file_paths_as_strings = true
47
43
  file_object.persist!( :explicit_index => __FILE__ )
48
44
 
45
+ file_object.persistence_port.persist_file_paths_as_strings = true
49
46
  persisted_file = ::Persistence::Object::Flat::File::FileMock.persist( :explicit_index => __FILE__ )
50
47
  persisted_file.should == file_object.path
51
- file_object.persistence_port.persist_file_paths_as_objects!
48
+ file_object.persistence_port.persist_file_paths_as_strings = false
52
49
  persisted_file = ::Persistence::Object::Flat::File::FileMock.persist( :explicit_index => __FILE__ )
53
50
  persisted_file.path.should == file_object.path
54
51
 
@@ -14,7 +14,7 @@ describe ::Persistence::Object::Index::BlockIndex do
14
14
  class ::Persistence::Object::Index::BlockIndex::Mock
15
15
 
16
16
  include ::Persistence::Object::Complex
17
-
17
+
18
18
  block_index :block_index do |key, value|
19
19
  return value
20
20
  end
@@ -0,0 +1,61 @@
1
+
2
+ require_relative '../../../../lib/persistence.rb'
3
+
4
+ describe ::Persistence::Object::ParsePersistenceArgs::ClassInstance do
5
+
6
+ before :all do
7
+ ::Persistence.enable_port( :mock, ::Persistence::Adapter::Mock.new )
8
+ class ::Persistence::Object::ParsePersistenceArgs::ClassInstance::Mock
9
+ include ::Persistence::Object::Flat::File
10
+ explicit_index :index
11
+ end
12
+ class SubFile < File
13
+ include ::Persistence::Object::Flat::File
14
+ end
15
+ end
16
+
17
+ after :all do
18
+ ::Persistence.disable_port( :mock )
19
+ end
20
+
21
+ ######################
22
+ # process_file_key #
23
+ ######################
24
+
25
+ it 'can process a file key for flat persistence' do
26
+ file_instance = ::SubFile.open( __FILE__ )
27
+ ::Persistence::Object::ParsePersistenceArgs::ClassInstance::Mock.instance_persistence_port.persist_files_by_path!
28
+ ::Persistence::Object::ParsePersistenceArgs::ClassInstance::Mock.process_file_key( file_instance ).should == file_instance.path
29
+ ::Persistence::Object::ParsePersistenceArgs::ClassInstance::Mock.instance_persistence_port.persists_files_by_content!
30
+ ::Persistence::Object::ParsePersistenceArgs::ClassInstance::Mock.process_file_key( file_instance ).should == file_instance.readlines.join
31
+ end
32
+
33
+ ###############################################
34
+ # parse_class_args_for_index_value_no_value #
35
+ ###############################################
36
+
37
+ it 'can parse args for indexed or non-indexed processing' do
38
+ lambda { ::Persistence::Object::ParsePersistenceArgs::ClassInstance::Mock.parse_class_args_for_index_value_no_value( [], true ) }.should raise_error( ::Persistence::Exception::KeyValueRequired )
39
+ # 0 args
40
+ args = []
41
+ ::Persistence::Object::ParsePersistenceArgs::ClassInstance::Mock.parse_class_args_for_index_value_no_value( args ).should == [ nil, nil, true ]
42
+ # 1 arg: index
43
+ args = [ :index ]
44
+ ::Persistence::Object::ParsePersistenceArgs::ClassInstance::Mock.parse_class_args_for_index_value_no_value( args ).should == [ ::Persistence::Object::ParsePersistenceArgs::ClassInstance::Mock.index( :index ), nil, true ]
45
+ # 2 args: index, key
46
+ args = [ :index, :key ]
47
+ ::Persistence::Object::ParsePersistenceArgs::ClassInstance::Mock.parse_class_args_for_index_value_no_value( args ).should == [ ::Persistence::Object::ParsePersistenceArgs::ClassInstance::Mock.index( :index ), :key, false ]
48
+ # 2 args: no index, global id
49
+ args = [ nil, 0 ]
50
+ ::Persistence::Object::ParsePersistenceArgs::ClassInstance::Mock.parse_class_args_for_index_value_no_value( args ).should == [ nil, 0, false ]
51
+ # test special case: file key
52
+ file_instance = ::SubFile.open( __FILE__ )
53
+ args = [ :index, file_instance ]
54
+ ::Persistence::Object::ParsePersistenceArgs::ClassInstance::Mock.instance_persistence_port.persist_files_by_path!
55
+ ::Persistence::Object::ParsePersistenceArgs::ClassInstance::Mock.parse_class_args_for_index_value_no_value( args ).should == [ ::Persistence::Object::ParsePersistenceArgs::ClassInstance::Mock.index( :index ), ::Persistence::Object::Flat::File::Path.new( file_instance.path ), false ]
56
+ ::Persistence::Object::ParsePersistenceArgs::ClassInstance::Mock.instance_persistence_port.persists_files_by_content!
57
+ ::Persistence::Object::ParsePersistenceArgs::ClassInstance::Mock.parse_class_args_for_index_value_no_value( args ).should == [ ::Persistence::Object::ParsePersistenceArgs::ClassInstance::Mock.index( :index ), ::Persistence::Object::Flat::File::Contents.new( file_instance.readlines.join ), false ]
58
+ end
59
+
60
+ end
61
+
@@ -0,0 +1,63 @@
1
+
2
+ require_relative '../../../../lib/persistence.rb'
3
+
4
+ describe ::Persistence::Object::ParsePersistenceArgs::ObjectInstance do
5
+
6
+ before :all do
7
+ ::Persistence.enable_port( :mock, ::Persistence::Adapter::Mock.new )
8
+ class ::Persistence::Object::ParsePersistenceArgs::ObjectInstance::Mock
9
+ include ::Persistence::Object::Flat::File
10
+ explicit_index :index
11
+ end
12
+ class SubFile < File
13
+ include ::Persistence::Object::Flat::File
14
+ end
15
+ end
16
+
17
+ after :all do
18
+ ::Persistence.disable_port( :mock )
19
+ end
20
+
21
+ ######################
22
+ # process_file_key #
23
+ ######################
24
+
25
+ it 'can process a file key for flat persistence' do
26
+ file_instance = ::SubFile.open( __FILE__ )
27
+ instance = ::Persistence::Object::ParsePersistenceArgs::ObjectInstance::Mock.new
28
+ instance.persistence_port.persist_files_by_path!
29
+ instance.process_file_key( file_instance ).should == file_instance.path
30
+ instance.persistence_port.persists_files_by_content!
31
+ instance.process_file_key( file_instance ).should == file_instance.readlines.join
32
+ end
33
+
34
+ ################################################
35
+ # parse_object_args_for_index_value_no_value #
36
+ ################################################
37
+
38
+ it 'can parse args for indexed or non-indexed processing' do
39
+ instance = ::Persistence::Object::ParsePersistenceArgs::ObjectInstance::Mock.new
40
+ lambda { instance.parse_object_args_for_index_value_no_value( [], true ) }.should raise_error( ::Persistence::Exception::KeyValueRequired )
41
+ # 0 args
42
+ args = []
43
+ instance.parse_object_args_for_index_value_no_value( args ).should == [ nil, nil, true ]
44
+ # 1 arg: index
45
+ args = [ :index ]
46
+ instance.parse_object_args_for_index_value_no_value( args ).should == [ ::Persistence::Object::ParsePersistenceArgs::ObjectInstance::Mock.index( :index ), nil, true ]
47
+ # 2 args: index, key
48
+ args = [ :index, :key ]
49
+ instance.parse_object_args_for_index_value_no_value( args ).should == [ ::Persistence::Object::ParsePersistenceArgs::ObjectInstance::Mock.index( :index ), :key, false ]
50
+ # 2 args: no index, global id
51
+ args = [ nil, 0 ]
52
+ instance.parse_object_args_for_index_value_no_value( args ).should == [ nil, 0, false ]
53
+ # test special case: file key
54
+ file_instance = ::SubFile.open( __FILE__ )
55
+ args = [ :index, file_instance ]
56
+ instance.persistence_port.persist_files_by_path!
57
+ instance.parse_object_args_for_index_value_no_value( args ).should == [ ::Persistence::Object::ParsePersistenceArgs::ObjectInstance::Mock.index( :index ), ::Persistence::Object::Flat::File::Path.new( file_instance.path ), false ]
58
+ instance.persistence_port.persists_files_by_content!
59
+ instance.parse_object_args_for_index_value_no_value( args ).should == [ ::Persistence::Object::ParsePersistenceArgs::ObjectInstance::Mock.index( :index ), ::Persistence::Object::Flat::File::Contents.new( file_instance.readlines.join ), false ]
60
+ end
61
+
62
+ end
63
+
@@ -53,6 +53,32 @@ describe ::Persistence::Object do
53
53
  instance.persistence_id.nil?.should == false
54
54
  instance.persisted?.should == true
55
55
 
56
+ class ObjectIndexMock
57
+
58
+ include ::Persistence::Object::Complex
59
+
60
+ explicit_index :explicit_index
61
+
62
+ end
63
+
64
+ encapsulation = ::CascadingConfiguration::Core::Encapsulation.encapsulation( :default )
65
+
66
+ ObjectIndexMock.count.should == 0
67
+ ObjectIndexMock.count( :explicit_index ).should == 0
68
+ instance_one = ObjectIndexMock.new.persist!
69
+ instance_one.persistence_id.should_not == nil
70
+ ObjectIndexMock.count.should == 1
71
+ ObjectIndexMock.count( :explicit_index ).should == 0
72
+
73
+ instance_two = ObjectIndexMock.new.persist!( :explicit_index, :some_key )
74
+ instance_two.persistence_id.should_not == nil
75
+ ObjectIndexMock.count.should == 2
76
+ ObjectIndexMock.count( :explicit_index ).should == 1
77
+ persisted_instance_two_a = ObjectIndexMock.persist( instance_two.persistence_id )
78
+ persisted_instance_two_a.should == instance_two
79
+ persisted_instance_two_b = ObjectIndexMock.persist( :explicit_index, :some_key )
80
+ persisted_instance_two_b.should == instance_two
81
+
56
82
  end
57
83
  end
58
84
 
@@ -93,88 +119,6 @@ describe ::Persistence::Object do
93
119
  instance.persistence_id.should == nil
94
120
  ( instance.persistence_port.get_bucket_name_for_object_id( global_id ) ? true : false ).should == false
95
121
 
96
- end
97
- end
98
-
99
- #####################
100
- # persistence_id= #
101
- # persistence_id #
102
- #####################
103
-
104
- it 'can set and get a persistence id that uniquely identifies the object instance' do
105
- module ::Persistence::Object::PersistenceIDMock
106
-
107
- class ObjectInstance
108
- include ::Persistence::Object::Complex
109
- end
110
-
111
- instance = ObjectInstance.new
112
-
113
- instance.persistence_id.should == nil
114
- instance.persistence_id = 1
115
- instance.persistence_id.should == 1
116
-
117
- end
118
- end
119
-
120
-
121
-
122
-
123
-
124
-
125
-
126
-
127
-
128
-
129
-
130
-
131
-
132
-
133
- ################
134
- # persist! #
135
- # persisted? #
136
- # persist #
137
- ################
138
-
139
- it 'can persist with an index and explicit key' do
140
- module ::Persistence::Object::PersistMock
141
-
142
- class ObjectIndexMock
143
-
144
- include ::Persistence::Object::Complex
145
-
146
- explicit_index :explicit_index
147
-
148
- end
149
-
150
- encapsulation = ::CascadingConfiguration::Core::Encapsulation.encapsulation( :default )
151
-
152
- ObjectIndexMock.count.should == 0
153
- ObjectIndexMock.count( :explicit_index ).should == 0
154
- instance_one = ObjectIndexMock.new.persist!
155
- instance_one.persistence_id.should_not == nil
156
- ObjectIndexMock.count.should == 1
157
- ObjectIndexMock.count( :explicit_index ).should == 0
158
-
159
- instance_two = ObjectIndexMock.new.persist!( :explicit_index, :some_key )
160
- instance_two.persistence_id.should_not == nil
161
- ObjectIndexMock.count.should == 2
162
- ObjectIndexMock.count( :explicit_index ).should == 1
163
- persisted_instance_two_a = ObjectIndexMock.persist( instance_two.persistence_id )
164
- persisted_instance_two_a.should == instance_two
165
- persisted_instance_two_b = ObjectIndexMock.persist( :explicit_index, :some_key )
166
- persisted_instance_two_b.should == instance_two
167
-
168
- end
169
- end
170
-
171
- ############
172
- # cease! #
173
- ############
174
-
175
- it 'can persist with an index and explicit key' do
176
- module ::Persistence::Object::CeaseMock
177
-
178
122
  class ObjectIndexMock
179
123
 
180
124
  include ::Persistence::Object::Complex
@@ -216,6 +160,28 @@ describe ::Persistence::Object do
216
160
  end
217
161
  end
218
162
 
163
+ #####################
164
+ # persistence_id= #
165
+ # persistence_id #
166
+ #####################
167
+
168
+ it 'can set and get a persistence id that uniquely identifies the object instance' do
169
+ module ::Persistence::Object::PersistenceIDMock
170
+
171
+ class ObjectInstance
172
+ include ::Persistence::Object::Complex
173
+ end
174
+
175
+ instance = ObjectInstance.new
176
+
177
+ instance.persistence_id.should == nil
178
+ instance.persistence_id = 1
179
+ instance.persistence_id.should == 1
180
+
181
+ end
182
+ end
183
+
184
+
219
185
  ##################################
220
186
  # instance_persistence_bucket #
221
187
  # instance_persistence_bucket= #
@@ -54,6 +54,7 @@ describe ::Persistence::Port::Bucket::BucketIndex do
54
54
 
55
55
  instance = ::Persistence::Port::Bucket::BucketIndex::Mock.new
56
56
  instance.some_value = :a_value
57
+
57
58
  bucket.put_object!( instance )
58
59
  bucket.index( :index ).index_object( instance )
59
60
  bucket.count.should == 1
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: persistence
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-07-03 00:00:00.000000000 Z
12
+ date: 2012-07-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: module-cluster
@@ -110,6 +110,8 @@ files:
110
110
  - lib/persistence/object/index.rb
111
111
  - lib/persistence/object/index_hash.rb
112
112
  - lib/persistence/object/object_instance.rb
113
+ - lib/persistence/object/parse_persistence_args/class_instance.rb
114
+ - lib/persistence/object/parse_persistence_args/object_instance.rb
113
115
  - lib/persistence/object/parse_persistence_args.rb
114
116
  - lib/persistence/object.rb
115
117
  - lib/persistence/port/bucket/bucket_index.rb
@@ -171,14 +173,15 @@ files:
171
173
  - spec/persistence/object/flat/true_class_spec.rb
172
174
  - spec/persistence/object/indexes/block_index_spec.rb
173
175
  - spec/persistence/object/indexes/explicit_index_spec.rb
174
- - spec/persistence/object/parse_persistence_args_spec.rb
176
+ - spec/persistence/object/parse_persistence_args/class_instance_spec.rb
177
+ - spec/persistence/object/parse_persistence_args/object_instance_spec.rb
175
178
  - spec/persistence/object_spec.rb
176
179
  - spec/persistence/port/bucket/bucket_interface_spec.rb
177
180
  - spec/persistence/port/bucket/index/bucket_index_spec.rb
178
181
  - spec/persistence/port/bucket_spec.rb
179
182
  - spec/persistence/port/controller_spec.rb
180
183
  - spec/persistence/port/port_interface_spec.rb
181
- - spec/Persistence_spec.rb
184
+ - spec/persistence_spec.rb
182
185
  - README.md
183
186
  - CHANGELOG.md
184
187
  homepage: http://rubygems.org/gems/persistence
@@ -192,7 +195,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
192
195
  requirements:
193
196
  - - ! '>='
194
197
  - !ruby/object:Gem::Version
195
- version: '0'
198
+ version: 1.9.1
196
199
  required_rubygems_version: !ruby/object:Gem::Requirement
197
200
  none: false
198
201
  requirements: