gap50 0.1.0 → 0.1.1
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.
- checksums.yaml +4 -4
- data/Gemfile.lock +35 -0
- data/lib/gap50/cache/hashchain.rb +68 -3
- data/lib/gap50/samsara/maker.rb +6 -2
- data/lib/gap50/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a46fe66e722b7142e548f8b07e758bc10f92365aba38c0156eafc0187759dc4e
|
4
|
+
data.tar.gz: 3dd08195db1e6c63eb312da0d37b8a4465af6b6c9c2c264d760cdd59b12de827
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7dc43c4b659aa9e0e77d74b96108004da6753e9635f70e3525be5ff1592433197bcef499d2cd09052b112fc974cbb6a8f5ea8d22184f71d86b59574060918fa1
|
7
|
+
data.tar.gz: b0138ef5ae1eb13d254afc6744e99a2feda6142ab2fdb404604bd9f91c359cbec98916c50eebea6012d5be6881527860919eedfe3fe795550aa93baef8e033e3
|
data/Gemfile.lock
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
gap50 (0.1.0)
|
5
|
+
|
6
|
+
GEM
|
7
|
+
remote: https://rubygems.org/
|
8
|
+
specs:
|
9
|
+
diff-lcs (1.3)
|
10
|
+
rake (10.5.0)
|
11
|
+
rspec (3.8.0)
|
12
|
+
rspec-core (~> 3.8.0)
|
13
|
+
rspec-expectations (~> 3.8.0)
|
14
|
+
rspec-mocks (~> 3.8.0)
|
15
|
+
rspec-core (3.8.0)
|
16
|
+
rspec-support (~> 3.8.0)
|
17
|
+
rspec-expectations (3.8.2)
|
18
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
19
|
+
rspec-support (~> 3.8.0)
|
20
|
+
rspec-mocks (3.8.0)
|
21
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
22
|
+
rspec-support (~> 3.8.0)
|
23
|
+
rspec-support (3.8.0)
|
24
|
+
|
25
|
+
PLATFORMS
|
26
|
+
ruby
|
27
|
+
|
28
|
+
DEPENDENCIES
|
29
|
+
bundler (~> 1.16)
|
30
|
+
gap50!
|
31
|
+
rake (~> 10.0)
|
32
|
+
rspec (~> 3.0)
|
33
|
+
|
34
|
+
BUNDLED WITH
|
35
|
+
1.16.1
|
@@ -1,12 +1,50 @@
|
|
1
1
|
module Gap
|
2
2
|
class HashChain
|
3
3
|
HashNode = Struct.new :hash, :next
|
4
|
+
USAGE = {}
|
5
|
+
module Package
|
6
|
+
PACKAGES = {}
|
7
|
+
def self.register(a, b)
|
8
|
+
if PACKAGES.include?(a) && PACKAGES[a] != b
|
9
|
+
raise ArgumentError, "Already exists #{a}"
|
10
|
+
else
|
11
|
+
PACKAGES[a] = b
|
12
|
+
end
|
13
|
+
end
|
14
|
+
def self.unregister(a)
|
15
|
+
PACKAGES.delete(a)
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.[](a)
|
19
|
+
if !PACKAGES.include?(a)
|
20
|
+
raise ArgumentError, "Not exists #{a}"
|
21
|
+
else
|
22
|
+
PACKAGES[a]
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def self.call(hnode)
|
27
|
+
self[hnode.getone(:package)]
|
28
|
+
end
|
29
|
+
end
|
30
|
+
USAGE[:package] = Package
|
4
31
|
class HashNode
|
32
|
+
attr_accessor :usagetag
|
5
33
|
def initialize(hash = {}, nx = nil)
|
6
34
|
super(hash, nx)
|
7
35
|
end
|
8
36
|
|
9
|
-
def
|
37
|
+
def usage
|
38
|
+
if self.usagetag
|
39
|
+
USAGE[self.usagetag]
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def getone(a)
|
44
|
+
self.hash[a]
|
45
|
+
end
|
46
|
+
|
47
|
+
def get(a)
|
10
48
|
if self.hash.include?(a)
|
11
49
|
self.hash[a]
|
12
50
|
elsif self.next
|
@@ -16,11 +54,23 @@ module Gap
|
|
16
54
|
end
|
17
55
|
end
|
18
56
|
|
19
|
-
def
|
57
|
+
def set(a, b)
|
20
58
|
self.hash[a] = b
|
21
59
|
end
|
22
60
|
|
61
|
+
def [](a)
|
62
|
+
return usage.call(self)[a] if usage
|
63
|
+
get a
|
64
|
+
end
|
65
|
+
|
66
|
+
|
67
|
+
def []=(a, b)
|
68
|
+
return (usage.call(self)[a] = b) if usage
|
69
|
+
set a, b
|
70
|
+
end
|
71
|
+
|
23
72
|
def include?(a)
|
73
|
+
return (usage.call(self).include?(a)) if usage
|
24
74
|
if self.hash.include?(a)
|
25
75
|
true
|
26
76
|
elsif self.next
|
@@ -31,10 +81,12 @@ module Gap
|
|
31
81
|
end
|
32
82
|
|
33
83
|
def delete(a)
|
84
|
+
return (usage.call(self).delete(a)) if usage
|
34
85
|
self.hash.delete a
|
35
86
|
end
|
36
87
|
|
37
88
|
def deleteAll(a)
|
89
|
+
return (usage.call(self).deleteAll(a)) if usage
|
38
90
|
self.hash.delete a
|
39
91
|
self.next.deleteAll a if self.next
|
40
92
|
end
|
@@ -44,7 +96,8 @@ module Gap
|
|
44
96
|
@hashnode = HashNode.new hash
|
45
97
|
end
|
46
98
|
|
47
|
-
def append(node = HashNode.new)
|
99
|
+
def append(node = HashNode.new, usage = nil)
|
100
|
+
node.usagetag = usage if usage
|
48
101
|
node.next = @hashnode
|
49
102
|
@hashnode = node
|
50
103
|
end
|
@@ -57,6 +110,18 @@ module Gap
|
|
57
110
|
@hashnode[a] = b
|
58
111
|
end
|
59
112
|
|
113
|
+
def get(a)
|
114
|
+
@hashnode.get a
|
115
|
+
end
|
116
|
+
|
117
|
+
def getone(a)
|
118
|
+
@hashnode.getone a
|
119
|
+
end
|
120
|
+
|
121
|
+
def set(a, b)
|
122
|
+
@hashnode.set a, b
|
123
|
+
end
|
124
|
+
|
60
125
|
def include?(a)
|
61
126
|
@hashnode.include?(a)
|
62
127
|
end
|
data/lib/gap50/samsara/maker.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
module Gap
|
2
2
|
class Maker
|
3
3
|
RND = Random.new
|
4
|
-
attr_accessor :temp, :sam
|
4
|
+
attr_accessor :temp, :sam, :teardown
|
5
5
|
|
6
6
|
|
7
7
|
def initialize(sam = nil, temp = genname, &block)
|
@@ -30,6 +30,10 @@ module Gap
|
|
30
30
|
@sam.writefile path(name), value
|
31
31
|
end
|
32
32
|
|
33
|
+
def tear
|
34
|
+
self.teardown = true
|
35
|
+
end
|
36
|
+
|
33
37
|
def copyfile(src, dest)
|
34
38
|
writefile dest, @sam.readfile(src)
|
35
39
|
end
|
@@ -41,7 +45,7 @@ module Gap
|
|
41
45
|
def transaction
|
42
46
|
_create
|
43
47
|
ret = yield self
|
44
|
-
_import_all
|
48
|
+
_import_all unless self.teardown
|
45
49
|
_cleanup
|
46
50
|
ret
|
47
51
|
end
|
data/lib/gap50/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gap50
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Artoria Seiran
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-12-
|
11
|
+
date: 2018-12-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -63,6 +63,7 @@ files:
|
|
63
63
|
- ".rspec"
|
64
64
|
- ".travis.yml"
|
65
65
|
- Gemfile
|
66
|
+
- Gemfile.lock
|
66
67
|
- README.md
|
67
68
|
- Rakefile
|
68
69
|
- bin/console
|