obuf 1.0.1 → 1.0.2
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/.travis.yml +4 -0
- data/Gemfile +2 -0
- data/History.txt +5 -0
- data/Rakefile +25 -9
- data/lib/obuf.rb +5 -1
- data/obuf.gemspec +74 -0
- data/test/test_obuf.rb +20 -0
- metadata +133 -76
- data/.gemtest +0 -0
- data/Manifest.txt +0 -7
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/History.txt
CHANGED
data/Rakefile
CHANGED
@@ -1,15 +1,31 @@
|
|
1
1
|
# -*- ruby -*-
|
2
|
-
|
3
2
|
require 'rubygems'
|
4
|
-
require '
|
3
|
+
require 'jeweler'
|
4
|
+
require './lib/obuf'
|
5
|
+
|
6
|
+
Jeweler::Tasks.new do |gem|
|
7
|
+
gem.version = Obuf::VERSION
|
8
|
+
gem.name = "obuf"
|
9
|
+
gem.summary = "Ruby disk-backed object buffer"
|
10
|
+
gem.description = "Stores marshaled temporary objects on-disk in a simple Enumerable"
|
11
|
+
gem.email = "me@julik.nl"
|
12
|
+
gem.homepage = "http://github.com/julik/obuf"
|
13
|
+
gem.authors = ["Julik Tarkhanov"]
|
14
|
+
gem.license = 'MIT'
|
15
|
+
|
16
|
+
gem.add_development_dependency "jeweler"
|
17
|
+
gem.add_development_dependency "rake"
|
18
|
+
gem.add_development_dependency "flexmock", "~>0.8"
|
19
|
+
end
|
5
20
|
|
6
|
-
|
7
|
-
p.developer('Julik Tarkhanov', 'me@julik.nl')
|
21
|
+
Jeweler::RubygemsDotOrgTasks.new
|
8
22
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
23
|
+
require 'rake/testtask'
|
24
|
+
desc "Run all tests"
|
25
|
+
Rake::TestTask.new("test") do |t|
|
26
|
+
t.libs << "test"
|
27
|
+
t.pattern = 'test/**/test_*.rb'
|
28
|
+
t.verbose = true
|
13
29
|
end
|
14
30
|
|
15
|
-
|
31
|
+
task :default => [ :test ]
|
data/lib/obuf.rb
CHANGED
@@ -19,7 +19,7 @@ require "thread" # required for ruby 18
|
|
19
19
|
#
|
20
20
|
# Both reading and writing aim to be threadsafe
|
21
21
|
class Obuf
|
22
|
-
VERSION = "1.0.
|
22
|
+
VERSION = "1.0.2"
|
23
23
|
|
24
24
|
include Enumerable
|
25
25
|
|
@@ -113,6 +113,10 @@ class Obuf
|
|
113
113
|
def recover_object_from(io)
|
114
114
|
# Up to the tab is the amount of bytes to read
|
115
115
|
demarshal_bytes = io.gets("\t").to_i
|
116
|
+
|
117
|
+
# When at end of IO return nil
|
118
|
+
return nil if demarshal_bytes == 0
|
119
|
+
|
116
120
|
blob = io.read(demarshal_bytes)
|
117
121
|
demarshal_object(blob)
|
118
122
|
end
|
data/obuf.gemspec
ADDED
@@ -0,0 +1,74 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = "obuf"
|
8
|
+
s.version = "1.0.2"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Julik Tarkhanov"]
|
12
|
+
s.date = "2012-01-10"
|
13
|
+
s.description = "Stores marshaled temporary objects on-disk in a simple Enumerable"
|
14
|
+
s.email = "me@julik.nl"
|
15
|
+
s.extra_rdoc_files = [
|
16
|
+
"README.rdoc"
|
17
|
+
]
|
18
|
+
s.files = [
|
19
|
+
".autotest",
|
20
|
+
".travis.yml",
|
21
|
+
"Gemfile",
|
22
|
+
"History.txt",
|
23
|
+
"README.rdoc",
|
24
|
+
"Rakefile",
|
25
|
+
"lib/obuf.rb",
|
26
|
+
"obuf.gemspec",
|
27
|
+
"test/test_obuf.rb"
|
28
|
+
]
|
29
|
+
s.homepage = "http://github.com/julik/obuf"
|
30
|
+
s.licenses = ["MIT"]
|
31
|
+
s.require_paths = ["lib"]
|
32
|
+
s.rubygems_version = "1.8.11"
|
33
|
+
s.summary = "Ruby disk-backed object buffer"
|
34
|
+
|
35
|
+
if s.respond_to? :specification_version then
|
36
|
+
s.specification_version = 3
|
37
|
+
|
38
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
39
|
+
s.add_runtime_dependency(%q<obuf>, [">= 0"])
|
40
|
+
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
41
|
+
s.add_development_dependency(%q<rake>, [">= 0"])
|
42
|
+
s.add_development_dependency(%q<flexmock>, ["~> 0.8"])
|
43
|
+
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
44
|
+
s.add_development_dependency(%q<rake>, [">= 0"])
|
45
|
+
s.add_development_dependency(%q<flexmock>, ["~> 0.8"])
|
46
|
+
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
47
|
+
s.add_development_dependency(%q<rake>, [">= 0"])
|
48
|
+
s.add_development_dependency(%q<flexmock>, ["~> 0.8"])
|
49
|
+
else
|
50
|
+
s.add_dependency(%q<obuf>, [">= 0"])
|
51
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
52
|
+
s.add_dependency(%q<rake>, [">= 0"])
|
53
|
+
s.add_dependency(%q<flexmock>, ["~> 0.8"])
|
54
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
55
|
+
s.add_dependency(%q<rake>, [">= 0"])
|
56
|
+
s.add_dependency(%q<flexmock>, ["~> 0.8"])
|
57
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
58
|
+
s.add_dependency(%q<rake>, [">= 0"])
|
59
|
+
s.add_dependency(%q<flexmock>, ["~> 0.8"])
|
60
|
+
end
|
61
|
+
else
|
62
|
+
s.add_dependency(%q<obuf>, [">= 0"])
|
63
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
64
|
+
s.add_dependency(%q<rake>, [">= 0"])
|
65
|
+
s.add_dependency(%q<flexmock>, ["~> 0.8"])
|
66
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
67
|
+
s.add_dependency(%q<rake>, [">= 0"])
|
68
|
+
s.add_dependency(%q<flexmock>, ["~> 0.8"])
|
69
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
70
|
+
s.add_dependency(%q<rake>, [">= 0"])
|
71
|
+
s.add_dependency(%q<flexmock>, ["~> 0.8"])
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
data/test/test_obuf.rb
CHANGED
@@ -73,6 +73,26 @@ class TestObuf < Test::Unit::TestCase
|
|
73
73
|
assert_equal "E\r\nWow!", a[4]
|
74
74
|
end
|
75
75
|
|
76
|
+
def test_random_access
|
77
|
+
a = Obuf.new
|
78
|
+
letters = ("A".."Z").map{|e| "#{e}\r\nWow!"}.to_a
|
79
|
+
letters.map(&a.method(:push))
|
80
|
+
|
81
|
+
assert_equal "B\r\nWow!", a[1]
|
82
|
+
assert_equal "E\r\nWow!", a[4]
|
83
|
+
end
|
84
|
+
|
85
|
+
def test_random_access_out_of_bounds
|
86
|
+
a = Obuf.new
|
87
|
+
letters = ("A".."Z").map{|e| "#{e}\r\nWow!"}.to_a
|
88
|
+
letters.map(&a.method(:push))
|
89
|
+
assert_equal nil, a[27]
|
90
|
+
|
91
|
+
b = Obuf.new
|
92
|
+
assert_nil b[0]
|
93
|
+
assert_nil b[-1]
|
94
|
+
end
|
95
|
+
|
76
96
|
def test_clear_calls_close_on_buffer
|
77
97
|
io = Tempfile.new("testing")
|
78
98
|
flexmock(io).should_receive(:close!).once
|
metadata
CHANGED
@@ -1,108 +1,165 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: obuf
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.2
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 1
|
8
|
-
- 0
|
9
|
-
- 1
|
10
|
-
version: 1.0.1
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Julik Tarkhanov
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
12
|
+
date: 2012-01-10 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: obuf
|
16
|
+
requirement: &10090570 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *10090570
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: jeweler
|
27
|
+
requirement: &10089860 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
type: :development
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *10089860
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: rake
|
38
|
+
requirement: &10089550 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0'
|
44
|
+
type: :development
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *10089550
|
47
|
+
- !ruby/object:Gem::Dependency
|
22
48
|
name: flexmock
|
49
|
+
requirement: &10089250 !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ~>
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0.8'
|
55
|
+
type: :development
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: *10089250
|
58
|
+
- !ruby/object:Gem::Dependency
|
59
|
+
name: jeweler
|
60
|
+
requirement: &10088960 !ruby/object:Gem::Requirement
|
61
|
+
none: false
|
62
|
+
requirements:
|
63
|
+
- - ! '>='
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: '0'
|
66
|
+
type: :development
|
67
|
+
prerelease: false
|
68
|
+
version_requirements: *10088960
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rake
|
71
|
+
requirement: &10088620 !ruby/object:Gem::Requirement
|
72
|
+
none: false
|
73
|
+
requirements:
|
74
|
+
- - ! '>='
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
77
|
+
type: :development
|
23
78
|
prerelease: false
|
24
|
-
|
79
|
+
version_requirements: *10088620
|
80
|
+
- !ruby/object:Gem::Dependency
|
81
|
+
name: flexmock
|
82
|
+
requirement: &10088250 !ruby/object:Gem::Requirement
|
25
83
|
none: false
|
26
|
-
requirements:
|
84
|
+
requirements:
|
27
85
|
- - ~>
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: '0.8'
|
88
|
+
type: :development
|
89
|
+
prerelease: false
|
90
|
+
version_requirements: *10088250
|
91
|
+
- !ruby/object:Gem::Dependency
|
92
|
+
name: jeweler
|
93
|
+
requirement: &10087870 !ruby/object:Gem::Requirement
|
94
|
+
none: false
|
95
|
+
requirements:
|
96
|
+
- - ! '>='
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: '0'
|
34
99
|
type: :development
|
35
|
-
version_requirements: *id001
|
36
|
-
- !ruby/object:Gem::Dependency
|
37
|
-
name: hoe
|
38
100
|
prerelease: false
|
39
|
-
|
101
|
+
version_requirements: *10087870
|
102
|
+
- !ruby/object:Gem::Dependency
|
103
|
+
name: rake
|
104
|
+
requirement: &10087280 !ruby/object:Gem::Requirement
|
40
105
|
none: false
|
41
|
-
requirements:
|
42
|
-
- -
|
43
|
-
- !ruby/object:Gem::Version
|
44
|
-
|
45
|
-
segments:
|
46
|
-
- 2
|
47
|
-
- 9
|
48
|
-
- 4
|
49
|
-
version: 2.9.4
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
50
110
|
type: :development
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
111
|
+
prerelease: false
|
112
|
+
version_requirements: *10087280
|
113
|
+
- !ruby/object:Gem::Dependency
|
114
|
+
name: flexmock
|
115
|
+
requirement: &10086930 !ruby/object:Gem::Requirement
|
116
|
+
none: false
|
117
|
+
requirements:
|
118
|
+
- - ~>
|
119
|
+
- !ruby/object:Gem::Version
|
120
|
+
version: '0.8'
|
121
|
+
type: :development
|
122
|
+
prerelease: false
|
123
|
+
version_requirements: *10086930
|
124
|
+
description: Stores marshaled temporary objects on-disk in a simple Enumerable
|
125
|
+
email: me@julik.nl
|
55
126
|
executables: []
|
56
|
-
|
57
127
|
extensions: []
|
58
|
-
|
59
|
-
extra_rdoc_files:
|
60
|
-
- History.txt
|
61
|
-
- Manifest.txt
|
128
|
+
extra_rdoc_files:
|
62
129
|
- README.rdoc
|
63
|
-
files:
|
130
|
+
files:
|
64
131
|
- .autotest
|
132
|
+
- .travis.yml
|
133
|
+
- Gemfile
|
65
134
|
- History.txt
|
66
|
-
- Manifest.txt
|
67
135
|
- README.rdoc
|
68
136
|
- Rakefile
|
69
137
|
- lib/obuf.rb
|
138
|
+
- obuf.gemspec
|
70
139
|
- test/test_obuf.rb
|
71
|
-
- .gemtest
|
72
|
-
has_rdoc: true
|
73
140
|
homepage: http://github.com/julik/obuf
|
74
|
-
licenses:
|
75
|
-
|
141
|
+
licenses:
|
142
|
+
- MIT
|
76
143
|
post_install_message:
|
77
|
-
rdoc_options:
|
78
|
-
|
79
|
-
- README.rdoc
|
80
|
-
require_paths:
|
144
|
+
rdoc_options: []
|
145
|
+
require_paths:
|
81
146
|
- lib
|
82
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
147
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
83
148
|
none: false
|
84
|
-
requirements:
|
85
|
-
- -
|
86
|
-
- !ruby/object:Gem::Version
|
87
|
-
|
88
|
-
|
89
|
-
- 0
|
90
|
-
version: "0"
|
91
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - ! '>='
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
153
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
92
154
|
none: false
|
93
|
-
requirements:
|
94
|
-
- -
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
|
97
|
-
segments:
|
98
|
-
- 0
|
99
|
-
version: "0"
|
155
|
+
requirements:
|
156
|
+
- - ! '>='
|
157
|
+
- !ruby/object:Gem::Version
|
158
|
+
version: '0'
|
100
159
|
requirements: []
|
101
|
-
|
102
|
-
|
103
|
-
rubygems_version: 1.6.2
|
160
|
+
rubyforge_project:
|
161
|
+
rubygems_version: 1.8.11
|
104
162
|
signing_key:
|
105
163
|
specification_version: 3
|
106
|
-
summary:
|
107
|
-
test_files:
|
108
|
-
- test/test_obuf.rb
|
164
|
+
summary: Ruby disk-backed object buffer
|
165
|
+
test_files: []
|
data/.gemtest
DELETED
File without changes
|