rod 0.7.2 → 0.7.2.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,3 @@
1
- rvm: 1.9.2
1
+ rvm: 2.1.0
2
2
  before_script:
3
3
  - "sudo apt-get install libdb4.8-dev"
data/Rakefile CHANGED
@@ -1,5 +1,6 @@
1
1
  $:.unshift "lib"
2
2
  require 'rod/constants'
3
+ require 'fileutils'
3
4
 
4
5
  task :default => [:all_tests]
5
6
 
@@ -27,8 +28,7 @@ task :uninstall do
27
28
  sh "sudo gem uninstall #$gem_name"
28
29
  end
29
30
 
30
- task :all_tests => [:test,:unit_test,:regression_test,:features] do
31
- end
31
+ task :all_tests => [:clean,:test,:unit_test,:regression_test,:features]
32
32
 
33
33
  desc "Run performence tests"
34
34
  task :perf do
@@ -87,9 +87,13 @@ task :wip do
87
87
  sh "bundle exec cucumber --tags @wip features/*"
88
88
  end
89
89
 
90
- desc "Clean all gems"
90
+ desc "Clean tmp directory"
91
91
  task :clean do
92
- sh "rm #$gem_name*.gem"
92
+ if File.exist?("tmp")
93
+ sh "rm -rf tmp/*"
94
+ else
95
+ FileUtils.mkdir("tmp")
96
+ end
93
97
  end
94
98
 
95
99
  desc "Show changelog from the last release"
@@ -1,5 +1,5 @@
1
1
  module Rod
2
- VERSION = "0.7.2"
2
+ VERSION = "0.7.2.5"
3
3
 
4
4
  # The name of file containing the data base.
5
5
  DATABASE_FILE = "database.yml"
@@ -93,7 +93,7 @@ module Rod
93
93
  | // exted the file
94
94
  |
95
95
  | // increase the pages count by numer of pages allocated at-once
96
- | model_p->#{klass.struct_name}_page_count += ALLOCATED_PAGES;
96
+ | model_p->#{klass.struct_name}_page_count += 1;
97
97
  | {
98
98
  | // open the file for writing
99
99
  | FILE * #{klass.struct_name}_file =
@@ -106,8 +106,7 @@ module Rod
106
106
  | rb_raise(rodException(),"Could not seek to end file for #{klass.struct_name}.");
107
107
  | }
108
108
  | // write empty data at the end
109
- | if(write(model_p->#{klass.struct_name}_lib_file,model_p->empty_data,
110
- | page_size() * ALLOCATED_PAGES) == -1){
109
+ | if(write(model_p->#{klass.struct_name}_lib_file,model_p->empty_data, page_size()) == -1){
111
110
  | rb_raise(rodException(),"Could not write to file for #{klass.struct_name}.");
112
111
  | }
113
112
  |
@@ -174,11 +173,11 @@ module Rod
174
173
  builder.prefix(klass.typedef_struct)
175
174
  end
176
175
 
177
- builder.prefix("const ALLOCATED_PAGES = 25;")
176
+ builder.prefix("const int ALLOCATED_PAGES = 25;")
178
177
 
179
178
  str =<<-END
180
179
  |unsigned int page_size(){
181
- | return sysconf(_SC_PAGE_SIZE);
180
+ | return sysconf(_SC_PAGE_SIZE) * ALLOCATED_PAGES;
182
181
  |}
183
182
  END
184
183
  builder.prefix(str.margin)
@@ -547,7 +546,7 @@ module Rod
547
546
  | strcpy(model_p->path,dir_path);
548
547
  |
549
548
  | // initialize empty data written when extending file
550
- | model_p->empty_data = calloc(page_size() * ALLOCATED_PAGES,1);
549
+ | model_p->empty_data = calloc(page_size(),1);
551
550
  |
552
551
  | //create the wrapping object
553
552
  | cClass = rb_define_class("#{model_struct_name(path).camelcase(true)}",
@@ -620,6 +619,8 @@ module Rod
620
619
  | page_size() * model_p->#{klass.struct_name}_page_count) == -1){
621
620
  | rb_raise(rodException(),"Could not unmap #{klass.struct_name}.");
622
621
  | }
622
+ | model_p->#{klass.struct_name}_table = NULL;
623
+ | #{update_pointer(klass) unless special_class?(klass)}
623
624
  | }
624
625
  | if(close(model_p->#{klass.struct_name}_lib_file) == -1){
625
626
  | rb_raise(rodException(),"Could not close model file for #{klass}.");
@@ -18,6 +18,7 @@ module Rod
18
18
  def initialize(path,klass,options={})
19
19
  @path = path + ".db"
20
20
  @klass = klass
21
+ @options = options
21
22
  end
22
23
 
23
24
  # Stores the index on disk.
@@ -79,7 +80,6 @@ module Rod
79
80
  _get_first(key)
80
81
  end
81
82
 
82
-
83
83
  protected
84
84
  # Returns an empty BDB based collection proxy.
85
85
  def empty_collection_proxy(key)
@@ -93,9 +93,10 @@ module Rod
93
93
  # Options:
94
94
  # * +:truncate+ - clears the contents of the index
95
95
  # * +:create+ - creates the index if it doesn't exist
96
+ # * +:cache_size+ - set the cache size of the index
96
97
  def open(path,options={})
97
98
  raise RodException.new("The index #{@path} is already opened!") if opened?
98
- _open(path,options)
99
+ _open(path,{:cache_size => @options[:cache_size]}.merge(options))
99
100
  @opened = true
100
101
  end
101
102
 
@@ -318,6 +319,7 @@ module Rod
318
319
  | VALUE handleClass;
319
320
  | VALUE handle;
320
321
  | VALUE mod;
322
+ | unsigned long cache_size = 8 * 1024 * 1024;
321
323
  |
322
324
  | db_pointer = ALLOC(DB);
323
325
  | return_value = db_create(&db_pointer,NULL,0);
@@ -337,8 +339,12 @@ module Rod
337
339
  | if(rb_hash_aref(options,ID2SYM(rb_intern("truncate"))) == Qtrue){
338
340
  | flags |= DB_TRUNCATE;
339
341
  | }
342
+ | if(rb_hash_aref(options,ID2SYM(rb_intern("cache_size"))) != Qnil){
343
+ | cache_size = NUM2ULONG(rb_hash_aref(options,ID2SYM(rb_intern("cache_size"))));
344
+ | }
345
+ |
346
+ | db_pointer->set_cachesize(db_pointer,0,cache_size,0);
340
347
  |
341
- | db_pointer->set_cachesize(db_pointer,0,5 * 1024 * 1024,0);
342
348
  | return_value = db_pointer->open(db_pointer,NULL,path,
343
349
  | NULL,DB_HASH,flags,0);
344
350
  | if(return_value != 0){
@@ -447,7 +447,7 @@ module Rod
447
447
  backup_path = self.property(property.name).index.path
448
448
  new_path = property.index.path
449
449
  puts "Copying #{backup_path} to #{new_path}" if $ROD_DEBUG
450
- FileUtils.cp(backup_path,new_path)
450
+ FileUtils.cp(backup_path,new_path) if File.exist?(backup_path)
451
451
  end
452
452
  return
453
453
  end
@@ -530,7 +530,7 @@ module Rod
530
530
  backup_path = self.property(property.name).index.path
531
531
  new_path = property.index.path
532
532
  puts "Copying #{backup_path} to #{new_path}" if $ROD_DEBUG
533
- FileUtils.cp(backup_path,new_path)
533
+ FileUtils.cp(backup_path,new_path) if File.exist?(backup_path)
534
534
  else
535
535
  print "- copying #{property.options[:index]} index for '#{property.name}'... " if $ROD_DEBUG
536
536
  new_index = property.index
@@ -116,8 +116,12 @@ module Rod
116
116
  |#{result_type} _#{name}(unsigned long object_rod_id){
117
117
  | VALUE klass;
118
118
  | #{struct_name} * pointer;
119
+ |#ifdef __BYTE_ORDER
120
+ |# if __BYTE_ORDER == __BIG_ENDIAN
119
121
  | uint64_t as_uint;
120
122
  | uint64_t result_swapped;
123
+ |# endif
124
+ |#endif
121
125
  |
122
126
  | if(object_rod_id == 0){
123
127
  | rb_raise(rodException(), "Invalid object rod_id (0)");
@@ -125,6 +129,9 @@ module Rod
125
129
  | klass = rb_funcall(self,rb_intern("class"),0);
126
130
  | pointer = (#{struct_name} *)
127
131
  | NUM2ULONG(rb_funcall(klass,rb_intern("rod_pointer"),0));
132
+ | if(pointer == 0){
133
+ | rb_raise(rodException(), "Invalid model pointer (0). DB is closed.");
134
+ | }
128
135
  |#ifdef __BYTE_ORDER
129
136
  |# if __BYTE_ORDER == __BIG_ENDIAN
130
137
  | // This code assumes that all values are 64 bit wide. This is not true
@@ -151,7 +158,11 @@ module Rod
151
158
  |void _#{name}_equals(unsigned long object_rod_id,#{arg_type} value){
152
159
  | VALUE klass;
153
160
  | #{struct_name} * pointer;
161
+ |#ifdef __BYTE_ORDER
162
+ |# if __BYTE_ORDER == __BIG_ENDIAN
154
163
  | uint64_t value_swapped;
164
+ |# endif
165
+ |#endif
155
166
  |
156
167
  | if(object_rod_id == 0){
157
168
  | rb_raise(rodException(), "Invalid object rod_id (0)");
@@ -159,6 +170,9 @@ module Rod
159
170
  | klass = rb_funcall(self,rb_intern("class"),0);
160
171
  | pointer = (#{struct_name} *)
161
172
  | NUM2ULONG(rb_funcall(klass,rb_intern("rod_pointer"),0));
173
+ | if(pointer == 0){
174
+ | rb_raise(rodException(), "Invalid model pointer (0). DB is closed.");
175
+ | }
162
176
  |#ifdef __BYTE_ORDER
163
177
  |# if __BYTE_ORDER == __BIG_ENDIAN
164
178
  | // TODO #220 #221
@@ -27,9 +27,9 @@ Gem::Specification.new do |s|
27
27
  s.add_dependency("activemodel", ["~> 3.2.2"])
28
28
  s.add_dependency("bsearch", [">= 1.5.0","< 1.6.0"])
29
29
 
30
- s.add_development_dependency("mocha", "~> 0.9.8")
31
30
  s.add_development_dependency("cucumber", "~> 1.0.0")
32
31
  s.add_development_dependency("rspec", [">= 2.2.0","< 2.3.0"])
33
32
  s.add_development_dependency("rake", [">= 0.9.0","< 1.0.0"])
34
- s.add_development_dependency("minitest", "~> 2.7.0")
33
+ s.add_development_dependency("minitest", "~> 4.0.0")
34
+ s.add_development_dependency("mocha", "~> 0.9.12")
35
35
  end
@@ -64,6 +64,7 @@ describe Rod::Property::Base do
64
64
  database.expect :nil?,false
65
65
  database.expect :path,"path"
66
66
  @klass.expect :database,database
67
+ @klass.expect :database,database
67
68
  @klass.expect :model_path,"model_path"
68
69
  @field.define_finders
69
70
  proc {@klass.find_by_user_name("Name")}.must_be_silent
@@ -32,11 +32,20 @@ describe Rod::Property::Field do
32
32
 
33
33
  it "must define C accessors" do
34
34
  @klass.expect :struct_name, "struct_name"
35
+ @klass.expect :struct_name, "struct_name"
36
+ @klass.expect :struct_name, "struct_name"
37
+ @klass.expect :struct_name, "struct_name"
38
+ @builder.expect :c,nil,[String]
39
+ @builder.expect :c,nil,[String]
40
+ @builder.expect :c,nil,[String]
35
41
  @builder.expect :c,nil,[String]
36
42
  @field.define_c_accessors(@builder)
37
43
  end
38
44
 
39
45
  it "must seal C accessors" do
46
+ @klass.expect :send,nil,[:private,String]
47
+ @klass.expect :send,nil,[:private,String]
48
+ @klass.expect :send,nil,[:private,String]
40
49
  @klass.expect :send,nil,[:private,String]
41
50
  @field.seal_c_accessors
42
51
  end
@@ -42,17 +42,27 @@ describe Rod::Property::PluralAssociation do
42
42
 
43
43
  it "must define C accessors" do
44
44
  @klass.expect :struct_name, "struct_name"
45
+ @klass.expect :struct_name, "struct_name"
46
+ @klass.expect :struct_name, "struct_name"
47
+ @klass.expect :struct_name, "struct_name"
48
+ @builder.expect :c,nil,[String]
49
+ @builder.expect :c,nil,[String]
50
+ @builder.expect :c,nil,[String]
45
51
  @builder.expect :c,nil,[String]
46
52
  @association.define_c_accessors(@builder)
47
53
  end
48
54
 
49
55
  it "must seal C accessors" do
56
+ @klass.expect :send,nil,[:private,String]
57
+ @klass.expect :send,nil,[:private,String]
58
+ @klass.expect :send,nil,[:private,String]
50
59
  @klass.expect :send,nil,[:private,String]
51
60
  @association.seal_c_accessors
52
61
  end
53
62
 
54
63
  it "must define getter" do
55
64
  @klass.expect :send,nil,[:define_method,"users"]
65
+ @klass.expect :send,nil,[:define_method,"users_count"]
56
66
  @klass.expect :scope_name,"Rod"
57
67
  @klass.expect :database, nil
58
68
  @association.define_getter
@@ -42,11 +42,20 @@ describe Rod::Property::SingularAssociation do
42
42
 
43
43
  it "must define C accessors" do
44
44
  @klass.expect :struct_name, "struct_name"
45
+ @klass.expect :struct_name, "struct_name"
46
+ @klass.expect :struct_name, "struct_name"
47
+ @klass.expect :struct_name, "struct_name"
48
+ @builder.expect :c,nil,[String]
49
+ @builder.expect :c,nil,[String]
50
+ @builder.expect :c,nil,[String]
45
51
  @builder.expect :c,nil,[String]
46
52
  @association.define_c_accessors(@builder)
47
53
  end
48
54
 
49
55
  it "must seal C accessors" do
56
+ @klass.expect :send,nil,[:private,String]
57
+ @klass.expect :send,nil,[:private,String]
58
+ @klass.expect :send,nil,[:private,String]
50
59
  @klass.expect :send,nil,[:private,String]
51
60
  @association.seal_c_accessors
52
61
  end
@@ -18,7 +18,7 @@ class User < Model
18
18
  field :city, :string, :index => :segmented
19
19
 
20
20
  # changed: index flat -> hash
21
- field :street, :string, :index => :hash
21
+ field :street, :string, :index => :hash, :cache_size => 10 * 1024 * 1024
22
22
 
23
23
  # changed: index flat -> nil
24
24
  field :number, :integer
metadata CHANGED
@@ -1,141 +1,198 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: rod
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.7.2.5
4
5
  prerelease:
5
- version: 0.7.2
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - Aleksander Pohl
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
-
13
- date: 2012-07-01 00:00:00 Z
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
12
+ date: 2014-07-17 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
16
15
  name: RubyInline
17
- prerelease: false
18
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
19
17
  none: false
20
- requirements:
21
- - - ">="
22
- - !ruby/object:Gem::Version
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
23
21
  version: 3.10.0
24
22
  - - <
25
- - !ruby/object:Gem::Version
23
+ - !ruby/object:Gem::Version
26
24
  version: 4.0.0
27
25
  type: :runtime
28
- version_requirements: *id001
29
- - !ruby/object:Gem::Dependency
30
- name: english
31
26
  prerelease: false
32
- requirement: &id002 !ruby/object:Gem::Requirement
27
+ version_requirements: !ruby/object:Gem::Requirement
33
28
  none: false
34
- requirements:
35
- - - ">="
36
- - !ruby/object:Gem::Version
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: 3.10.0
33
+ - - <
34
+ - !ruby/object:Gem::Version
35
+ version: 4.0.0
36
+ - !ruby/object:Gem::Dependency
37
+ name: english
38
+ requirement: !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
37
43
  version: 0.5.0
38
44
  - - <
39
- - !ruby/object:Gem::Version
45
+ - !ruby/object:Gem::Version
40
46
  version: 0.6.0
41
47
  type: :runtime
42
- version_requirements: *id002
43
- - !ruby/object:Gem::Dependency
44
- name: activemodel
45
48
  prerelease: false
46
- requirement: &id003 !ruby/object:Gem::Requirement
49
+ version_requirements: !ruby/object:Gem::Requirement
47
50
  none: false
48
- requirements:
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: 0.5.0
55
+ - - <
56
+ - !ruby/object:Gem::Version
57
+ version: 0.6.0
58
+ - !ruby/object:Gem::Dependency
59
+ name: activemodel
60
+ requirement: !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
49
63
  - - ~>
50
- - !ruby/object:Gem::Version
64
+ - !ruby/object:Gem::Version
51
65
  version: 3.2.2
52
66
  type: :runtime
53
- version_requirements: *id003
54
- - !ruby/object:Gem::Dependency
55
- name: bsearch
56
67
  prerelease: false
57
- requirement: &id004 !ruby/object:Gem::Requirement
68
+ version_requirements: !ruby/object:Gem::Requirement
69
+ none: false
70
+ requirements:
71
+ - - ~>
72
+ - !ruby/object:Gem::Version
73
+ version: 3.2.2
74
+ - !ruby/object:Gem::Dependency
75
+ name: bsearch
76
+ requirement: !ruby/object:Gem::Requirement
58
77
  none: false
59
- requirements:
60
- - - ">="
61
- - !ruby/object:Gem::Version
78
+ requirements:
79
+ - - ! '>='
80
+ - !ruby/object:Gem::Version
62
81
  version: 1.5.0
63
82
  - - <
64
- - !ruby/object:Gem::Version
83
+ - !ruby/object:Gem::Version
65
84
  version: 1.6.0
66
85
  type: :runtime
67
- version_requirements: *id004
68
- - !ruby/object:Gem::Dependency
69
- name: mocha
70
86
  prerelease: false
71
- requirement: &id005 !ruby/object:Gem::Requirement
87
+ version_requirements: !ruby/object:Gem::Requirement
72
88
  none: false
73
- requirements:
89
+ requirements:
90
+ - - ! '>='
91
+ - !ruby/object:Gem::Version
92
+ version: 1.5.0
93
+ - - <
94
+ - !ruby/object:Gem::Version
95
+ version: 1.6.0
96
+ - !ruby/object:Gem::Dependency
97
+ name: cucumber
98
+ requirement: !ruby/object:Gem::Requirement
99
+ none: false
100
+ requirements:
74
101
  - - ~>
75
- - !ruby/object:Gem::Version
76
- version: 0.9.8
102
+ - !ruby/object:Gem::Version
103
+ version: 1.0.0
77
104
  type: :development
78
- version_requirements: *id005
79
- - !ruby/object:Gem::Dependency
80
- name: cucumber
81
105
  prerelease: false
82
- requirement: &id006 !ruby/object:Gem::Requirement
106
+ version_requirements: !ruby/object:Gem::Requirement
83
107
  none: false
84
- requirements:
108
+ requirements:
85
109
  - - ~>
86
- - !ruby/object:Gem::Version
110
+ - !ruby/object:Gem::Version
87
111
  version: 1.0.0
88
- type: :development
89
- version_requirements: *id006
90
- - !ruby/object:Gem::Dependency
112
+ - !ruby/object:Gem::Dependency
91
113
  name: rspec
92
- prerelease: false
93
- requirement: &id007 !ruby/object:Gem::Requirement
114
+ requirement: !ruby/object:Gem::Requirement
94
115
  none: false
95
- requirements:
96
- - - ">="
97
- - !ruby/object:Gem::Version
116
+ requirements:
117
+ - - ! '>='
118
+ - !ruby/object:Gem::Version
98
119
  version: 2.2.0
99
120
  - - <
100
- - !ruby/object:Gem::Version
121
+ - !ruby/object:Gem::Version
101
122
  version: 2.3.0
102
123
  type: :development
103
- version_requirements: *id007
104
- - !ruby/object:Gem::Dependency
105
- name: rake
106
124
  prerelease: false
107
- requirement: &id008 !ruby/object:Gem::Requirement
125
+ version_requirements: !ruby/object:Gem::Requirement
126
+ none: false
127
+ requirements:
128
+ - - ! '>='
129
+ - !ruby/object:Gem::Version
130
+ version: 2.2.0
131
+ - - <
132
+ - !ruby/object:Gem::Version
133
+ version: 2.3.0
134
+ - !ruby/object:Gem::Dependency
135
+ name: rake
136
+ requirement: !ruby/object:Gem::Requirement
108
137
  none: false
109
- requirements:
110
- - - ">="
111
- - !ruby/object:Gem::Version
138
+ requirements:
139
+ - - ! '>='
140
+ - !ruby/object:Gem::Version
112
141
  version: 0.9.0
113
142
  - - <
114
- - !ruby/object:Gem::Version
143
+ - !ruby/object:Gem::Version
115
144
  version: 1.0.0
116
145
  type: :development
117
- version_requirements: *id008
118
- - !ruby/object:Gem::Dependency
146
+ prerelease: false
147
+ version_requirements: !ruby/object:Gem::Requirement
148
+ none: false
149
+ requirements:
150
+ - - ! '>='
151
+ - !ruby/object:Gem::Version
152
+ version: 0.9.0
153
+ - - <
154
+ - !ruby/object:Gem::Version
155
+ version: 1.0.0
156
+ - !ruby/object:Gem::Dependency
119
157
  name: minitest
158
+ requirement: !ruby/object:Gem::Requirement
159
+ none: false
160
+ requirements:
161
+ - - ~>
162
+ - !ruby/object:Gem::Version
163
+ version: 4.0.0
164
+ type: :development
120
165
  prerelease: false
121
- requirement: &id009 !ruby/object:Gem::Requirement
166
+ version_requirements: !ruby/object:Gem::Requirement
167
+ none: false
168
+ requirements:
169
+ - - ~>
170
+ - !ruby/object:Gem::Version
171
+ version: 4.0.0
172
+ - !ruby/object:Gem::Dependency
173
+ name: mocha
174
+ requirement: !ruby/object:Gem::Requirement
122
175
  none: false
123
- requirements:
176
+ requirements:
124
177
  - - ~>
125
- - !ruby/object:Gem::Version
126
- version: 2.7.0
178
+ - !ruby/object:Gem::Version
179
+ version: 0.9.12
127
180
  type: :development
128
- version_requirements: *id009
129
- description: Ruby Object Database is designed for large amounts of data, whose structure rarely changes.
130
- email:
181
+ prerelease: false
182
+ version_requirements: !ruby/object:Gem::Requirement
183
+ none: false
184
+ requirements:
185
+ - - ~>
186
+ - !ruby/object:Gem::Version
187
+ version: 0.9.12
188
+ description: Ruby Object Database is designed for large amounts of data, whose structure
189
+ rarely changes.
190
+ email:
131
191
  - apohllo@o2.pl
132
192
  executables: []
133
-
134
193
  extensions: []
135
-
136
194
  extra_rdoc_files: []
137
-
138
- files:
195
+ files:
139
196
  - .gitignore
140
197
  - .travis.yml
141
198
  - Gemfile
@@ -249,62 +306,29 @@ files:
249
306
  - utils/convert_index.rb
250
307
  homepage: http://github.com/apohllo/rod
251
308
  licenses: []
252
-
253
309
  post_install_message:
254
- rdoc_options:
310
+ rdoc_options:
255
311
  - --main
256
312
  - README.rdoc
257
- require_paths:
313
+ require_paths:
258
314
  - lib
259
- required_ruby_version: !ruby/object:Gem::Requirement
315
+ required_ruby_version: !ruby/object:Gem::Requirement
260
316
  none: false
261
- requirements:
262
- - - ">="
263
- - !ruby/object:Gem::Version
317
+ requirements:
318
+ - - ! '>='
319
+ - !ruby/object:Gem::Version
264
320
  version: 1.9.2
265
- required_rubygems_version: !ruby/object:Gem::Requirement
321
+ required_rubygems_version: !ruby/object:Gem::Requirement
266
322
  none: false
267
- requirements:
268
- - - ">="
269
- - !ruby/object:Gem::Version
270
- version: "0"
323
+ requirements:
324
+ - - ! '>='
325
+ - !ruby/object:Gem::Version
326
+ version: '0'
271
327
  requirements: []
272
-
273
328
  rubyforge_project: rod
274
- rubygems_version: 1.8.24
329
+ rubygems_version: 1.8.25
275
330
  signing_key:
276
331
  specification_version: 3
277
332
  summary: Ruby Object Database
278
- test_files:
279
- - features/append.feature
280
- - features/backward.feature
281
- - features/basic.feature
282
- - features/collection.feature
283
- - features/collection_proxy.feature
284
- - features/flat_indexing.feature
285
- - features/hash_indexing.feature
286
- - features/inheritence.feature
287
- - features/muliple_db.feature
288
- - features/persistence.feature
289
- - features/portability.feature
290
- - features/relationship_indexing.feature
291
- - features/relationships.feature
292
- - features/segmented_indexing.feature
293
- - features/steps/collection_proxy.rb
294
- - features/steps/model.rb
295
- - features/steps/rod.rb
296
- - features/steps/test_helper.rb
297
- - features/support/mocha.rb
298
- - features/update.feature
299
- - spec/berkeley/database.rb
300
- - spec/berkeley/environment.rb
301
- - spec/berkeley/sequence.rb
302
- - spec/berkeley/transaction.rb
303
- - spec/collection_proxy.rb
304
- - spec/database.rb
305
- - spec/model.rb
306
- - spec/property/base.rb
307
- - spec/property/field.rb
308
- - spec/property/plural_association.rb
309
- - spec/property/singular_association.rb
333
+ test_files: []
310
334
  has_rdoc: