purecdb 1.0.0 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/Dockerfile +12 -0
- data/Gemfile.lock +8 -1
- data/Makefile +2 -10
- data/Rules.mk +33 -0
- data/bundle_config +3 -0
- data/lib/purecdb/reader.rb +21 -4
- data/lib/purecdb/version.rb +1 -1
- data/purecdb.gemspec +1 -0
- metadata +36 -27
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: fca6f6f647583ae3cc4025f677f80abb82599d85
|
4
|
+
data.tar.gz: 9f60409470e5fd6f85f05719db05abc4ad173d81
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 06322d92a058c1ea7ff4de8fe668d2713c14989c34025ca04c1686850484c391917e4f60a81e5a061ca27b0bbb3d8f9b80487cb064bdec7e74f206fde538a8ad
|
7
|
+
data.tar.gz: 3bf61f1a8a35f6958a909ca8cddd26dcb917257e3dfa9f5040175987a402dd2b6a153f3020dca283da2176410b2e7144f8bf10494711e9df10b648d6e894ac72
|
data/Dockerfile
ADDED
data/Gemfile.lock
CHANGED
@@ -1,12 +1,16 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
purecdb (
|
4
|
+
purecdb (1.1.0)
|
5
|
+
ffi-mmap
|
5
6
|
|
6
7
|
GEM
|
7
8
|
remote: https://rubygems.org/
|
8
9
|
specs:
|
9
10
|
diff-lcs (1.2.5)
|
11
|
+
ffi (1.9.14)
|
12
|
+
ffi-mmap (0.2.0)
|
13
|
+
ffi
|
10
14
|
json (1.8.3)
|
11
15
|
rake (10.4.2)
|
12
16
|
rdoc (4.2.2)
|
@@ -34,3 +38,6 @@ DEPENDENCIES
|
|
34
38
|
rake (~> 10.0)
|
35
39
|
rdoc
|
36
40
|
rspec
|
41
|
+
|
42
|
+
BUNDLED WITH
|
43
|
+
1.12.5
|
data/Makefile
CHANGED
data/Rules.mk
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
DR=docker run -t -i -v ${PWD}:/app ${IMAGE}
|
2
|
+
B=${DR} bundle
|
3
|
+
BE=${B} exec
|
4
|
+
|
5
|
+
build: container
|
6
|
+
echo Building gem
|
7
|
+
rm -f pkg/*
|
8
|
+
${BE} rake build
|
9
|
+
|
10
|
+
push: build
|
11
|
+
gem push `/bin/ls -q pkg/* | tail -n1`
|
12
|
+
|
13
|
+
container: Dockerfile
|
14
|
+
docker build -t ${IMAGE} .
|
15
|
+
|
16
|
+
update: container
|
17
|
+
${B} update
|
18
|
+
|
19
|
+
bundle: container
|
20
|
+
${B} install --binstubs ./bin --path=./vendor/bundle
|
21
|
+
|
22
|
+
rdoc:
|
23
|
+
rm -rf doc
|
24
|
+
${BE} rdoc --main=README.md -O -U -x'~' README.md lib
|
25
|
+
|
26
|
+
.PHONY: spec
|
27
|
+
spec:
|
28
|
+
${BE} rspec ./spec
|
29
|
+
|
30
|
+
|
31
|
+
cli:
|
32
|
+
${DR} /bin/bash -l
|
33
|
+
|
data/bundle_config
ADDED
data/lib/purecdb/reader.rb
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
begin
|
2
|
+
require 'ffi/mmap'
|
3
|
+
rescue LoadError
|
4
|
+
end
|
5
|
+
|
1
6
|
module PureCDB
|
2
7
|
|
3
8
|
#
|
@@ -15,10 +20,11 @@ module PureCDB
|
|
15
20
|
# PureCDB::Reader.new(file, options) {|r| ... }
|
16
21
|
#
|
17
22
|
# +file+ can be a String or any object that meets the minimum
|
18
|
-
# requirements, which means having #sysseek, #sysopen to and #
|
23
|
+
# requirements, which means having #sysseek, #sysopen to and #sysclose
|
19
24
|
# which does not arbitrarily sttop access ot it.
|
20
25
|
#
|
21
|
-
# If Mmap is available, the code will attempt to use it
|
26
|
+
# If Mmap is available, the code will attempt to use it if target is a
|
27
|
+
# filename
|
22
28
|
#
|
23
29
|
def initialize target, *options
|
24
30
|
if target.is_a?(String)
|
@@ -41,7 +47,7 @@ module PureCDB
|
|
41
47
|
raise "#{mode}bit mode detected in file; options request #{@mode}bit mode"
|
42
48
|
end
|
43
49
|
|
44
|
-
@m = Mmap.new(target,"r", Mmap::MAP_SHARED) rescue nil
|
50
|
+
@m = FFI::Mmap.new(target,"r", FFI::Mmap::MAP_SHARED) rescue nil
|
45
51
|
read_hashes
|
46
52
|
|
47
53
|
raise "Invalid File (Hashes are all empty)" if @hashes.uniq == [0]
|
@@ -53,6 +59,18 @@ module PureCDB
|
|
53
59
|
end
|
54
60
|
end
|
55
61
|
|
62
|
+
#
|
63
|
+
# Is the file mmap'ed? Note that this may in theory return true right after
|
64
|
+
# opening the file, but return false after attempting to read if the
|
65
|
+
# attempt to read from the mmap object fails for whatever reason.
|
66
|
+
#
|
67
|
+
# I'm not sure that can ever happen, but to be 100% sure, check *after* a
|
68
|
+
# lookup
|
69
|
+
#
|
70
|
+
def mmap?
|
71
|
+
@m.nil? == false
|
72
|
+
end
|
73
|
+
|
56
74
|
#
|
57
75
|
# Alternative to PureCDB::Reader.new(target,options) ..
|
58
76
|
#
|
@@ -132,7 +150,6 @@ module PureCDB
|
|
132
150
|
|
133
151
|
# Warning: This will be very slow if not mmap'd
|
134
152
|
def read r
|
135
|
-
@m = nil
|
136
153
|
if @m
|
137
154
|
res = @m[r]
|
138
155
|
return res if res
|
data/lib/purecdb/version.rb
CHANGED
data/purecdb.gemspec
CHANGED
@@ -23,6 +23,7 @@ Gem::Specification.new do |spec|
|
|
23
23
|
spec.metadata['allowed_push_host'] = "TODO: Set to 'http://mygemserver.com' to prevent pushes to rubygems.org, or delete to allow pushes to any server."
|
24
24
|
end
|
25
25
|
|
26
|
+
spec.add_dependency "ffi-mmap"
|
26
27
|
spec.add_development_dependency "bundler", "~> 1.9"
|
27
28
|
spec.add_development_dependency "rake", "~> 10.0"
|
28
29
|
spec.add_development_dependency "rspec"
|
metadata
CHANGED
@@ -1,78 +1,83 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: purecdb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
5
|
-
prerelease:
|
4
|
+
version: 1.1.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Vidar Hokstad
|
9
8
|
autorequire:
|
10
9
|
bindir: exe
|
11
10
|
cert_chain: []
|
12
|
-
date: 2016-07-
|
11
|
+
date: 2016-07-20 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: ffi-mmap
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
14
27
|
- !ruby/object:Gem::Dependency
|
15
28
|
name: bundler
|
16
29
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
30
|
requirements:
|
19
|
-
- - ~>
|
31
|
+
- - "~>"
|
20
32
|
- !ruby/object:Gem::Version
|
21
33
|
version: '1.9'
|
22
34
|
type: :development
|
23
35
|
prerelease: false
|
24
36
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
37
|
requirements:
|
27
|
-
- - ~>
|
38
|
+
- - "~>"
|
28
39
|
- !ruby/object:Gem::Version
|
29
40
|
version: '1.9'
|
30
41
|
- !ruby/object:Gem::Dependency
|
31
42
|
name: rake
|
32
43
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
44
|
requirements:
|
35
|
-
- - ~>
|
45
|
+
- - "~>"
|
36
46
|
- !ruby/object:Gem::Version
|
37
47
|
version: '10.0'
|
38
48
|
type: :development
|
39
49
|
prerelease: false
|
40
50
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
51
|
requirements:
|
43
|
-
- - ~>
|
52
|
+
- - "~>"
|
44
53
|
- !ruby/object:Gem::Version
|
45
54
|
version: '10.0'
|
46
55
|
- !ruby/object:Gem::Dependency
|
47
56
|
name: rspec
|
48
57
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
58
|
requirements:
|
51
|
-
- -
|
59
|
+
- - ">="
|
52
60
|
- !ruby/object:Gem::Version
|
53
61
|
version: '0'
|
54
62
|
type: :development
|
55
63
|
prerelease: false
|
56
64
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
65
|
requirements:
|
59
|
-
- -
|
66
|
+
- - ">="
|
60
67
|
- !ruby/object:Gem::Version
|
61
68
|
version: '0'
|
62
69
|
- !ruby/object:Gem::Dependency
|
63
70
|
name: rdoc
|
64
71
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
72
|
requirements:
|
67
|
-
- -
|
73
|
+
- - ">="
|
68
74
|
- !ruby/object:Gem::Version
|
69
75
|
version: '0'
|
70
76
|
type: :development
|
71
77
|
prerelease: false
|
72
78
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
79
|
requirements:
|
75
|
-
- -
|
80
|
+
- - ">="
|
76
81
|
- !ruby/object:Gem::Version
|
77
82
|
version: '0'
|
78
83
|
description: A Pure Ruby CDB reader/writer w/64 bit extensions
|
@@ -82,16 +87,19 @@ executables: []
|
|
82
87
|
extensions: []
|
83
88
|
extra_rdoc_files: []
|
84
89
|
files:
|
85
|
-
- .gitignore
|
86
|
-
- .rspec
|
90
|
+
- ".gitignore"
|
91
|
+
- ".rspec"
|
92
|
+
- Dockerfile
|
87
93
|
- Gemfile
|
88
94
|
- Gemfile.lock
|
89
95
|
- LICENSE
|
90
96
|
- Makefile
|
91
97
|
- README.md
|
92
98
|
- Rakefile
|
99
|
+
- Rules.mk
|
93
100
|
- bin/console
|
94
101
|
- bin/setup
|
102
|
+
- bundle_config
|
95
103
|
- lib/purecdb.rb
|
96
104
|
- lib/purecdb/base.rb
|
97
105
|
- lib/purecdb/reader.rb
|
@@ -100,26 +108,27 @@ files:
|
|
100
108
|
- purecdb.gemspec
|
101
109
|
homepage: https://github.com/hokstadconsulting/purecdb
|
102
110
|
licenses: []
|
111
|
+
metadata:
|
112
|
+
allowed_push_host: 'TODO: Set to ''http://mygemserver.com'' to prevent pushes to
|
113
|
+
rubygems.org, or delete to allow pushes to any server.'
|
103
114
|
post_install_message:
|
104
115
|
rdoc_options: []
|
105
116
|
require_paths:
|
106
117
|
- lib
|
107
118
|
required_ruby_version: !ruby/object:Gem::Requirement
|
108
|
-
none: false
|
109
119
|
requirements:
|
110
|
-
- -
|
120
|
+
- - ">="
|
111
121
|
- !ruby/object:Gem::Version
|
112
122
|
version: '0'
|
113
123
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
114
|
-
none: false
|
115
124
|
requirements:
|
116
|
-
- -
|
125
|
+
- - ">="
|
117
126
|
- !ruby/object:Gem::Version
|
118
127
|
version: '0'
|
119
128
|
requirements: []
|
120
129
|
rubyforge_project:
|
121
|
-
rubygems_version:
|
130
|
+
rubygems_version: 2.6.6
|
122
131
|
signing_key:
|
123
|
-
specification_version:
|
132
|
+
specification_version: 4
|
124
133
|
summary: A Pure Ruby CDB reader/writer w/64 bit extensions
|
125
134
|
test_files: []
|