gibbler 0.7.0 → 0.7.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.
- data/CHANGES.txt +5 -0
- data/gibbler.gemspec +1 -22
- data/lib/gibbler/mixins.rb +7 -2
- data/lib/gibbler.rb +166 -10
- metadata +3 -24
- data/lib/gibbler/digest.rb +0 -63
- data/lib/gibbler/mixins/string.rb +0 -9
- data/lib/gibbler/object.rb +0 -79
- data/tryouts/01_mixins_tryouts.rb +0 -13
- data/tryouts/02_compat_tryouts.rb +0 -25
- data/tryouts/05_gibbler_digest_tryouts.rb +0 -31
- data/tryouts/10_basic_tryouts.rb +0 -153
- data/tryouts/11_basic_sha256_tryouts.rb +0 -40
- data/tryouts/14_extended_tryouts.rb +0 -97
- data/tryouts/15_file_tryouts.rb +0 -47
- data/tryouts/16_uri_tryouts.rb +0 -41
- data/tryouts/20_time_tryouts.rb +0 -35
- data/tryouts/50_history_tryouts.rb +0 -42
- data/tryouts/51_hash_history_tryouts.rb +0 -91
- data/tryouts/52_array_history_tryouts.rb +0 -44
- data/tryouts/53_string_history_tryouts.rb +0 -43
- data/tryouts/57_arbitrary_history_tryouts.rb +0 -45
- data/tryouts/59_history_exceptions_tryouts.rb +0 -30
- data/tryouts/80_performance_tryouts.rb +0 -80
- data/tryouts/90_alias_tryouts.rb +0 -65
- data/tryouts/object_hash_demo.rb +0 -30
data/tryouts/10_basic_tryouts.rb
DELETED
@@ -1,153 +0,0 @@
|
|
1
|
-
|
2
|
-
library :gibbler, 'lib'
|
3
|
-
group "Gibbler Gazette"
|
4
|
-
|
5
|
-
Gibbler.enable_debug if Tryouts.verbose > 3
|
6
|
-
|
7
|
-
tryouts "Basic syntax with SHA1" do
|
8
|
-
|
9
|
-
dream :exception, RuntimeError
|
10
|
-
drill "include Gibbler raises exception" do
|
11
|
-
a = Class.new
|
12
|
-
a.send :include, Gibbler
|
13
|
-
end
|
14
|
-
|
15
|
-
dream :respond_to?, :gibbler
|
16
|
-
dream :gibbler, '52be7494a602d85ff5d8a8ab4ffe7f1b171587df'
|
17
|
-
drill "Symbol can gibbler", :kimmy
|
18
|
-
|
19
|
-
dream :respond_to?, :gibbler
|
20
|
-
dream :gibbler, 'c8027100ecc54945ab15ddac529230e38b1ba6a1'
|
21
|
-
drill "String can gibbler" do
|
22
|
-
"kimmy"
|
23
|
-
end
|
24
|
-
|
25
|
-
drill "String and Symbol return different digests", true do
|
26
|
-
:kimmy.gibbler != "kimmy"
|
27
|
-
end
|
28
|
-
|
29
|
-
dream :respond_to?, :gibbler
|
30
|
-
dream :gibbler, '25ac269ae3ef18cdb4143ad02ca315afb5026de9'
|
31
|
-
drill "Class can gibbler", Class
|
32
|
-
|
33
|
-
dream :respond_to?, :gibbler
|
34
|
-
dream :gibbler, '4fdcadc66a38feb9c57faf3c5a18d5e76a6d29bf'
|
35
|
-
drill "Empty Hash instance", Hash.new
|
36
|
-
|
37
|
-
dream :gibbler, 'a9cad665549bd22a4346fcf602d9d3c3b0482bbe'
|
38
|
-
drill "Fixnum instance" do
|
39
|
-
1
|
40
|
-
end
|
41
|
-
|
42
|
-
dream :gibbler, '608256db120251843843bba57e9b2c7adb7342aa'
|
43
|
-
drill "Bignum instance" do
|
44
|
-
100000000000
|
45
|
-
end
|
46
|
-
|
47
|
-
dream :gibbler, "1d4b62e1e9f2c097b0cefb6877bf47c2015cdd21"
|
48
|
-
drill "Populated Hash instance" do
|
49
|
-
{
|
50
|
-
:a => [1,2,3, [4,5,6]],
|
51
|
-
:b => { :c => Class }
|
52
|
-
}
|
53
|
-
end
|
54
|
-
|
55
|
-
dream :respond_to?, :gibbler
|
56
|
-
dream :gibbler, '48fda57c05684c9e5c3259557851943572183a21'
|
57
|
-
drill "Empty Array instance", Array.new
|
58
|
-
|
59
|
-
dream :gibbler, "3e1d79d113a409a96a13ca3879fc4c42027aa74b"
|
60
|
-
drill "Populated Array instance" do
|
61
|
-
[1, 2, :runtime, [3, "four", [Object, true]]]
|
62
|
-
end
|
63
|
-
|
64
|
-
drill "Knows when a Hash has not changed", false do
|
65
|
-
a = { :magic => true }
|
66
|
-
a.gibbler
|
67
|
-
a[:magic] = true
|
68
|
-
a.gibbled?
|
69
|
-
end
|
70
|
-
|
71
|
-
drill "Knows when a Hash has changed", true do
|
72
|
-
a = { :magic => true }
|
73
|
-
a.gibbler
|
74
|
-
a[:magic] = false
|
75
|
-
a.gibbled?
|
76
|
-
end
|
77
|
-
|
78
|
-
dream ["667ce086", "92d5f7cd"]
|
79
|
-
drill "Symbols digests don't cross streams" do
|
80
|
-
a, b = :something, :anything
|
81
|
-
a.gibbler
|
82
|
-
b.gibbler
|
83
|
-
[a.gibbler_cache.short, b.gibbler_cache.short]
|
84
|
-
end
|
85
|
-
|
86
|
-
dream ["ce0c7694", "c13b2f02"]
|
87
|
-
drill "String digests don't cross streams" do
|
88
|
-
a, b = 'something', 'anything'
|
89
|
-
a.gibbler
|
90
|
-
b.gibbler
|
91
|
-
[a.gibbler_cache.short, b.gibbler_cache.short]
|
92
|
-
end
|
93
|
-
|
94
|
-
drill "Symbol has list of attic vars", [:gibbler_cache] do
|
95
|
-
Symbol.attic_vars
|
96
|
-
end
|
97
|
-
|
98
|
-
drill "String has list of attic vars", [:gibbler_cache] do
|
99
|
-
String.attic_vars
|
100
|
-
end
|
101
|
-
|
102
|
-
drill "Hash has list of attic vars", [:gibbler_cache] do
|
103
|
-
Hash.attic_vars
|
104
|
-
end
|
105
|
-
|
106
|
-
drill "Freezing an object will update the digest", true do
|
107
|
-
a = { :a => 1 }
|
108
|
-
pre = a.gibbler;
|
109
|
-
a[:a] = 2
|
110
|
-
post = a.freeze.gibbler
|
111
|
-
stash :pre, pre
|
112
|
-
stash :post, post
|
113
|
-
pre != post && post == a.gibbler_cache
|
114
|
-
end
|
115
|
-
|
116
|
-
dream :gibbler, "6ea546919dc4caa2bab69799b71d48810a1b48fa"
|
117
|
-
drill "works on arbitrary objects" do
|
118
|
-
class ::FullHouse
|
119
|
-
include Gibbler::Complex
|
120
|
-
attr_accessor :roles
|
121
|
-
end
|
122
|
-
a = FullHouse.new
|
123
|
-
a.roles = [:jesse, :joey, :danny, :kimmy, :michelle, :dj, :stephanie]
|
124
|
-
a
|
125
|
-
end
|
126
|
-
|
127
|
-
# TODO: Update for Attic 0.4
|
128
|
-
drill "doesn't reveal @__gibbler_digest__ instance variable", false do
|
129
|
-
a = {}
|
130
|
-
a.gibbler # We need to gibbler first so it sets a value to the instance var
|
131
|
-
val = Tryouts.sysinfo.ruby[1] == 9 ? :'@__gibbler_digest__' : '@__gibbler_digest__'
|
132
|
-
stash :ivars, a.instance_variables
|
133
|
-
stash :smeths, Gibbler.singleton_methods
|
134
|
-
a.instance_variables.member? val
|
135
|
-
end
|
136
|
-
|
137
|
-
drill "previous digest", 'c8027100ecc54945ab15ddac529230e38b1ba6a1' do
|
138
|
-
a = "kimmy"
|
139
|
-
a.gibbler
|
140
|
-
#stash :methods, a.methods.sort
|
141
|
-
#
|
142
|
-
#stash :string_methods, String.methods.sort
|
143
|
-
#stash :gstring_methods, Gibbler::String.methods.sort
|
144
|
-
#stash :class_methods, a.class.methods.sort
|
145
|
-
stash :ivars, a.instance_variables
|
146
|
-
a.gibbler_cache
|
147
|
-
end
|
148
|
-
|
149
|
-
end
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
@@ -1,40 +0,0 @@
|
|
1
|
-
|
2
|
-
library :gibbler, File.dirname(__FILE__), '..', 'lib'
|
3
|
-
group "Gibbler Gazette"
|
4
|
-
|
5
|
-
Gibbler.enable_debug if Tryouts.verbose > 3
|
6
|
-
|
7
|
-
|
8
|
-
tryouts "Basic syntax with SHA256" do
|
9
|
-
|
10
|
-
setup do
|
11
|
-
# NOTE: JRuby requires that we use OpenSSL::Digest::SHA256
|
12
|
-
if Tryouts.sysinfo.vm == :java
|
13
|
-
require 'openssl'
|
14
|
-
Gibbler.digest_type = OpenSSL::Digest::SHA256
|
15
|
-
else
|
16
|
-
Gibbler.digest_type = Digest::SHA256
|
17
|
-
end
|
18
|
-
|
19
|
-
end
|
20
|
-
|
21
|
-
clean do
|
22
|
-
Gibbler.digest_type = Digest::SHA1
|
23
|
-
end
|
24
|
-
|
25
|
-
dream :gibbler, '754f87ca720ec256633a286d9270d68478850b2abd7b0ae65021cb769ae70c08'
|
26
|
-
drill "A Symbol can gibbler", :anything
|
27
|
-
|
28
|
-
dream :gibbler, 'd345c0afb4e8da0133a3946d3bd9b2622b0acdd8d6cc1237470cc637a9e4777f'
|
29
|
-
drill "Class can gibbler", Class
|
30
|
-
|
31
|
-
dream :gibbler, 'b7b874a9bff7825caa57750a900652354ac601b77497b694d313f658c69d25b4'
|
32
|
-
drill "TrueClass can gibbler", TrueClass
|
33
|
-
|
34
|
-
dream :gibbler, '88d2bcbd68ce593fd2e0e06f276f7301357516291b95c0c53038e61a9bf091e5'
|
35
|
-
drill "Empty Hash instance", {}
|
36
|
-
|
37
|
-
end
|
38
|
-
|
39
|
-
|
40
|
-
|
@@ -1,97 +0,0 @@
|
|
1
|
-
|
2
|
-
library :gibbler, 'lib'
|
3
|
-
group "Gibbler Gazette"
|
4
|
-
|
5
|
-
Gibbler.enable_debug if Tryouts.verbose > 3
|
6
|
-
Gibbler.digest_type = Digest::SHA1
|
7
|
-
|
8
|
-
tryouts "Extended object tryouts" do
|
9
|
-
|
10
|
-
dream :gibbler, 'f2b0150c84c5c834406ec9cdec989a0fa938b4ad'
|
11
|
-
drill "true can gibbler", true
|
12
|
-
|
13
|
-
dream :gibbler, 'abee839edf5f9c101c505c28987ca35c31c7fc8d'
|
14
|
-
drill "false can gibbler", false
|
15
|
-
|
16
|
-
dream :gibbler, '583fb214ec50d2c4a123cc52de0c65e801d13516'
|
17
|
-
drill "TrueClass can gibbler", TrueClass
|
18
|
-
|
19
|
-
dream :gibbler, '11f262be475ddf38a25888e9f6ec82f384a7c58b'
|
20
|
-
drill "FalseClass can gibbler", FalseClass
|
21
|
-
|
22
|
-
dream :gibbler, '25ac269ae3ef18cdb4143ad02ca315afb5026de9'
|
23
|
-
drill "Class can gibbler", Class
|
24
|
-
|
25
|
-
dream :gibbler, '5620e4a8b10ec6830fece61d33f5d3e9a349b4c2'
|
26
|
-
drill "Object can gibbler", Object
|
27
|
-
|
28
|
-
dream :gibbler, '083feec632e6cd5347e3fb3c7048365c3a0d710e'
|
29
|
-
drill "Class instance can gibbler", Class.new
|
30
|
-
|
31
|
-
dream :gibbler, '7295241e929ffd7cc974cf8d4481291e070937fc'
|
32
|
-
drill "Module can gibbler", Module
|
33
|
-
|
34
|
-
dream :gibbler, '6b5a192fd377dfc5c2828a3ad6105b68b6db33d5'
|
35
|
-
drill "Module instance can gibbler", Module.new
|
36
|
-
|
37
|
-
dream :gibbler, '8640f7abcbcb80e3825ed827bf36819e26119e16'
|
38
|
-
drill "Proc can gibbler", Proc
|
39
|
-
|
40
|
-
dream :gibbler, 'd73ae2a7bc2058b05dbc1952d8abf004167109e0'
|
41
|
-
drill "Range instance (..) can gibbler", 1..100
|
42
|
-
|
43
|
-
dream :gibbler, '46c8a7d0163144819c440bf6734a8101cd72c04a'
|
44
|
-
drill "Range instance (...) can gibbler", 1...100
|
45
|
-
|
46
|
-
drill "Range (..) doesn't equal range (...)", true do
|
47
|
-
('a'..'e').gibbler != ('a'...'e').gibbler
|
48
|
-
end
|
49
|
-
|
50
|
-
dream '06fdf26b2a64e90cd35ea9162d9cc48c9f6bb13c'
|
51
|
-
drill "nil has a gibbler", nil.gibbler
|
52
|
-
|
53
|
-
|
54
|
-
dream :gibbler, '7295241e929ffd7cc974cf8d4481291e070937fc'
|
55
|
-
drill "Module can gibbler", Module
|
56
|
-
|
57
|
-
dream :gibbler, '6b5a192fd377dfc5c2828a3ad6105b68b6db33d5'
|
58
|
-
drill "Module instance can gibbler", Module.new
|
59
|
-
|
60
|
-
dream :gibbler, '25ac269ae3ef18cdb4143ad02ca315afb5026de9'
|
61
|
-
drill "Class can gibbler", Class
|
62
|
-
|
63
|
-
end
|
64
|
-
|
65
|
-
|
66
|
-
tryouts "Proc" do
|
67
|
-
|
68
|
-
setup do
|
69
|
-
class ::MyProc < Proc; end
|
70
|
-
end
|
71
|
-
|
72
|
-
dream :gibbler, '12075835e94be34438376cd7a54c8db7e746f15d'
|
73
|
-
drill "Proc.new can gibbler", Proc.new() { }
|
74
|
-
|
75
|
-
dream :gibbler, '8640f7abcbcb80e3825ed827bf36819e26119e16'
|
76
|
-
drill "Proc can gibbler", Proc
|
77
|
-
|
78
|
-
dream :gibbler, '12075835e94be34438376cd7a54c8db7e746f15d'
|
79
|
-
drill "proc can gibbler", proc {}
|
80
|
-
|
81
|
-
dream :gibbler, '12075835e94be34438376cd7a54c8db7e746f15d'
|
82
|
-
drill "lambda can gibbler", lambda {}
|
83
|
-
|
84
|
-
dream :gibbler, '12075835e94be34438376cd7a54c8db7e746f15d'
|
85
|
-
drill "lambda gibbler is not aware of arity", lambda { |v| }
|
86
|
-
|
87
|
-
dream :gibbler, '12075835e94be34438376cd7a54c8db7e746f15d'
|
88
|
-
drill "proc gibbler is not aware of arity", proc { |v| }
|
89
|
-
|
90
|
-
dream :gibbler, '12075835e94be34438376cd7a54c8db7e746f15d'
|
91
|
-
drill "Proc gibbler is not aware of proc payload", proc { |v| 1; }
|
92
|
-
|
93
|
-
dream :gibbler, "c979a45653acaddcb9c1581a7de49c94ac96e128"
|
94
|
-
drill "MyProc has a different digest" do
|
95
|
-
MyProc.new() { }
|
96
|
-
end
|
97
|
-
end
|
data/tryouts/15_file_tryouts.rb
DELETED
@@ -1,47 +0,0 @@
|
|
1
|
-
require 'tempfile'
|
2
|
-
|
3
|
-
library :gibbler, 'lib'
|
4
|
-
group "Gibbler Gazette"
|
5
|
-
|
6
|
-
Gibbler.enable_debug if Tryouts.verbose > 3
|
7
|
-
Gibbler.digest_type = Digest::SHA1
|
8
|
-
|
9
|
-
tryouts "File object tryouts" do
|
10
|
-
set :tempfile, "tryouts-9000-awesome.txt"
|
11
|
-
|
12
|
-
clean do
|
13
|
-
File.unlink tempfile if File.exists? tempfile
|
14
|
-
end
|
15
|
-
|
16
|
-
dream :gibbler, '33027386bd95e91efc4711648d488519062d828f'
|
17
|
-
drill "File can gibbler" do
|
18
|
-
path = File.join(File.dirname(__FILE__), '..', 'CHANGES.txt')
|
19
|
-
File.new(File.expand_path(path))
|
20
|
-
end
|
21
|
-
|
22
|
-
dream :gibbler, '4c131b7e5f9e7b841b4501d2d002785d3730ae19'
|
23
|
-
drill "Gibbler is different for each path" do
|
24
|
-
path = File.join(File.dirname(__FILE__), '..', 'README.rdoc')
|
25
|
-
File.new(File.expand_path(path))
|
26
|
-
end
|
27
|
-
|
28
|
-
## JRuby doesn't like to use File.new with directories
|
29
|
-
##dream :gibbler, '92cbcb7de73d7748b28d9e911f461013de34410f'
|
30
|
-
##drill "File gibbler cares about trailing slash (/tmp/)", File.new(__FILE__)
|
31
|
-
|
32
|
-
dream :respond_to?, :gibbler
|
33
|
-
drill "TempFile can gibbler", Tempfile.new('gibbler')
|
34
|
-
|
35
|
-
drill "TempFile digests change", false do
|
36
|
-
Tempfile.new('gibbler').gibbler == Tempfile.new('gibbler').gibbler
|
37
|
-
end
|
38
|
-
|
39
|
-
dream :gibbler, '6d93f752fc23f36bffa5ddf9ee97d04be82efbdb'
|
40
|
-
drill "File doesn't care about file contents" do
|
41
|
-
f = File.open tempfile, 'w'
|
42
|
-
f.puts "World's Finest Number: " << "#{rand}"
|
43
|
-
f.close
|
44
|
-
stash :file_contents, File.read(tempfile)
|
45
|
-
File.new tempfile
|
46
|
-
end
|
47
|
-
end
|
data/tryouts/16_uri_tryouts.rb
DELETED
@@ -1,41 +0,0 @@
|
|
1
|
-
require 'uri'
|
2
|
-
|
3
|
-
library :gibbler, 'lib'
|
4
|
-
group "Gibbler Gazette"
|
5
|
-
|
6
|
-
Gibbler.enable_debug if Tryouts.verbose > 3
|
7
|
-
Gibbler.digest_type = Digest::SHA1
|
8
|
-
|
9
|
-
tryouts "URI object tryouts" do
|
10
|
-
|
11
|
-
dream :gibbler, "9efe60a5db66aecf9b5fb8655b0bab0fcc7bd0c5"
|
12
|
-
drill "URI::HTTP can gibbler" do
|
13
|
-
uri = URI.parse "http://localhost:3114/spaceship"
|
14
|
-
uri
|
15
|
-
end
|
16
|
-
|
17
|
-
dream :gibbler, "b75d3c34e60d6feafa796ddbb51e45710f6b106d"
|
18
|
-
drill "URI::HTTPS can gibbler" do
|
19
|
-
uri = URI.parse "https://localhost:3114/spaceship"
|
20
|
-
uri
|
21
|
-
end
|
22
|
-
|
23
|
-
dream :gibbler, "191b0072b95ca0c79ed75e6deb5b28562dd9e5b9"
|
24
|
-
drill "URI::HTTP is trailing slash sensitive" do
|
25
|
-
uri = URI.parse "http://localhost:3114/spaceship/"
|
26
|
-
uri
|
27
|
-
end
|
28
|
-
|
29
|
-
dream :gibbler, "d378372934326947113489d1f36f4853bef90a65"
|
30
|
-
drill "URI::Generic can gibbler" do
|
31
|
-
uri = URI.parse "localhost:3114/spaceship"
|
32
|
-
uri
|
33
|
-
end
|
34
|
-
|
35
|
-
dream :gibbler, "9d0543b31afebac9e8d38c56a0cf12070779f790"
|
36
|
-
drill "URI::FTP can gibbler" do
|
37
|
-
uri = URI.parse "ftp://localhost:3114/spaceship"
|
38
|
-
uri
|
39
|
-
end
|
40
|
-
|
41
|
-
end
|
data/tryouts/20_time_tryouts.rb
DELETED
@@ -1,35 +0,0 @@
|
|
1
|
-
require 'date'
|
2
|
-
|
3
|
-
library :gibbler, 'lib'
|
4
|
-
group "Gibbler Gazette"
|
5
|
-
|
6
|
-
Gibbler.enable_debug if Tryouts.verbose > 3
|
7
|
-
Gibbler.digest_type = Digest::SHA1
|
8
|
-
|
9
|
-
tryouts "Time tryouts" do
|
10
|
-
|
11
|
-
dream :gibbler, 'c8403fc35481fdf7f6f4a0e7262b1c9610bdebaa'
|
12
|
-
drill "Date instance can gibbler", Date.parse('2009-08-25')
|
13
|
-
|
14
|
-
dream :gibbler, '73b4635fc63b8dd32b622776201f98a37478be90'
|
15
|
-
drill "Time instance can gibbler", Time.parse('2009-08-25 16:43:53 UTC')
|
16
|
-
|
17
|
-
dream :gibbler, 'd35546d6517c02f2a219ecfa2261a5274d217cb7'
|
18
|
-
drill "Time instance can gibbler with single digit values" do
|
19
|
-
Time.parse('2009-01-01 01:01:01 UTC')
|
20
|
-
end
|
21
|
-
|
22
|
-
dream :gibbler, 'ad64c7694a50becf55c53485dce5d0013ff65785'
|
23
|
-
drill "DateTime instance can gibbler", DateTime.parse('2009-08-25T17:00:40+00:00')
|
24
|
-
|
25
|
-
dream Time.parse('2009-08-25 12:43:53 -04:00').gibbler
|
26
|
-
drill "Time digest is based on UTC" do
|
27
|
-
Time.parse('2009-08-25 16:43:53 UTC').gibbler
|
28
|
-
end
|
29
|
-
|
30
|
-
dream DateTime.parse('2009-08-25T13:00:40-04:00').gibbler
|
31
|
-
drill "DateTime digest is based on UTC" do
|
32
|
-
DateTime.parse('2009-08-25T17:00:40+00:00').gibbler
|
33
|
-
end
|
34
|
-
|
35
|
-
end
|
@@ -1,42 +0,0 @@
|
|
1
|
-
|
2
|
-
library :gibbler, File.dirname(__FILE__), '..', 'lib'
|
3
|
-
library 'gibbler/history', File.dirname(__FILE__), '..', 'lib'
|
4
|
-
|
5
|
-
group "History"
|
6
|
-
|
7
|
-
tryouts "Basics" do
|
8
|
-
|
9
|
-
dream "d7049916ddb25e6cc438b1028fb957e5139f9910"
|
10
|
-
drill "can convert short digest into long" do
|
11
|
-
a = { :magic => :original }
|
12
|
-
g = a.gibbler_commit.short
|
13
|
-
stash :short, g
|
14
|
-
a.gibbler_find_long g
|
15
|
-
end
|
16
|
-
|
17
|
-
dream :class, Time
|
18
|
-
drill "can return most recent stamp" do
|
19
|
-
a = { :magic => :original }
|
20
|
-
a.gibbler_commit
|
21
|
-
stash :hist, a.gibbler_history
|
22
|
-
a.gibbler_stamp
|
23
|
-
end
|
24
|
-
|
25
|
-
dream ["d7049916ddb25e6cc438b1028fb957e5139f9910", "0b11c377fccd44554a601e5d2b135c46dc1c4cb1"]
|
26
|
-
drill "can return history" do
|
27
|
-
a = { :magic => :original }
|
28
|
-
a.gibbler_commit
|
29
|
-
a[:magic] = :changed
|
30
|
-
a.gibbler_commit
|
31
|
-
a.gibbler_history
|
32
|
-
end
|
33
|
-
|
34
|
-
dream ["d7049916", "0b11c377"]
|
35
|
-
drill "can return history (short)" do
|
36
|
-
a = { :magic => :original }
|
37
|
-
a.gibbler_commit
|
38
|
-
a[:magic] = :changed
|
39
|
-
a.gibbler_commit
|
40
|
-
a.gibbler_history(:short)
|
41
|
-
end
|
42
|
-
end
|
@@ -1,91 +0,0 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
library :gibbler, File.dirname(__FILE__), '..', 'lib'
|
4
|
-
library 'gibbler/history', File.dirname(__FILE__), '..', 'lib'
|
5
|
-
|
6
|
-
group "History"
|
7
|
-
|
8
|
-
Gibbler.enable_debug if Tryouts.verbose > 3
|
9
|
-
|
10
|
-
|
11
|
-
tryouts "Hash History" do
|
12
|
-
|
13
|
-
drill "Setup Hash class", Hash do
|
14
|
-
class ::Hash
|
15
|
-
include Gibbler::History
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
drill "doesn't reveal self.__gibbler_history instance variable", false do
|
20
|
-
a = {}
|
21
|
-
a.gibbler # We need to gibbler first so it sets a value to the instance var
|
22
|
-
val = Tryouts.sysinfo.ruby[1] == 9 ? :'self.__gibbler_history' : 'self.__gibbler_history'
|
23
|
-
a.instance_variables.member? val
|
24
|
-
end
|
25
|
-
|
26
|
-
drill "can take a Hash snapshot", 'd7049916ddb25e6cc438b1028fb957e5139f9910' do
|
27
|
-
a = { :magic => :original }
|
28
|
-
a.gibbler_commit
|
29
|
-
end
|
30
|
-
|
31
|
-
dream :class, Array
|
32
|
-
dream :size, 2
|
33
|
-
dream ['d7049916ddb25e6cc438b1028fb957e5139f9910', 'b668098e16d08898532bf3aa33ce2253a3a4150e']
|
34
|
-
drill "return a Hash history" do
|
35
|
-
a = { :magic => :original }
|
36
|
-
a.gibbler_commit
|
37
|
-
a[:magic] = :updated
|
38
|
-
a.gibbler_commit
|
39
|
-
a.gibbler_history
|
40
|
-
end
|
41
|
-
|
42
|
-
dream 'd7049916ddb25e6cc438b1028fb957e5139f9910'
|
43
|
-
drill "can revert Hash" do
|
44
|
-
a = { :magic => :original }
|
45
|
-
a.gibbler_commit
|
46
|
-
a[:magic] = :updated
|
47
|
-
a.gibbler_revert!
|
48
|
-
end
|
49
|
-
|
50
|
-
drill "knows a valid gibble", true do
|
51
|
-
a = { :magic => :original }
|
52
|
-
a.gibbler_commit
|
53
|
-
a.gibbler_valid? 'd7049916ddb25e6cc438b1028fb957e5139f9910'
|
54
|
-
end
|
55
|
-
|
56
|
-
drill "knows an invalid gibble", false do
|
57
|
-
a = { :magic => :original }
|
58
|
-
a.gibbler_commit
|
59
|
-
a.gibbler_valid? '2222222222222222222222222222222222222222'
|
60
|
-
end
|
61
|
-
|
62
|
-
dream Hash[:magic => :original]
|
63
|
-
drill "can revert to any valid gibble" do
|
64
|
-
a = { :magic => :original }
|
65
|
-
a.gibbler_commit
|
66
|
-
a[:magic] = :updated
|
67
|
-
a.gibbler_commit
|
68
|
-
a[:magic] = :changed
|
69
|
-
a.gibbler_commit
|
70
|
-
a.gibbler_revert! 'd7049916ddb25e6cc438b1028fb957e5139f9910'
|
71
|
-
a
|
72
|
-
end
|
73
|
-
|
74
|
-
dream Hash[:magic => :original]
|
75
|
-
dream :gibbler, 'd7049916ddb25e6cc438b1028fb957e5139f9910'
|
76
|
-
drill "revert does nothing if digest is the same as current one" do
|
77
|
-
a = { :magic => :original }
|
78
|
-
a.gibbler_commit
|
79
|
-
a.gibbler_revert!
|
80
|
-
a
|
81
|
-
end
|
82
|
-
|
83
|
-
dream 'd7049916ddb25e6cc438b1028fb957e5139f9910'
|
84
|
-
drill "can revert using short gibble" do
|
85
|
-
a = { :magic => :original }
|
86
|
-
a.gibbler_commit
|
87
|
-
a[:magic] = :updated
|
88
|
-
a.gibbler_revert! 'd7049916'
|
89
|
-
end
|
90
|
-
|
91
|
-
end
|
@@ -1,44 +0,0 @@
|
|
1
|
-
|
2
|
-
library :gibbler, File.dirname(__FILE__), '..', 'lib'
|
3
|
-
library 'gibbler/history', File.dirname(__FILE__), '..', 'lib'
|
4
|
-
|
5
|
-
group "History"
|
6
|
-
|
7
|
-
Gibbler.enable_debug if Tryouts.verbose > 3
|
8
|
-
|
9
|
-
|
10
|
-
tryouts "Array History" do
|
11
|
-
|
12
|
-
drill "Setup Array class", Array do
|
13
|
-
class ::Array
|
14
|
-
include Gibbler::History
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
drill "can take a Array snapshot", 'd95fcabb498ae282f356eba63da541e4f72c6efa' do
|
19
|
-
a = [:jesse]
|
20
|
-
a.gibbler_commit
|
21
|
-
end
|
22
|
-
|
23
|
-
dream :class, Array
|
24
|
-
dream :size, 2
|
25
|
-
dream ['d95fcabb498ae282f356eba63da541e4f72c6efa', 'eebcb2e84e828b1a7207af4d588cf41fd4c6393a']
|
26
|
-
drill "return an Array history" do
|
27
|
-
a = [:jesse]
|
28
|
-
a.gibbler_commit
|
29
|
-
a << :joey
|
30
|
-
a.gibbler_commit
|
31
|
-
a.gibbler_history
|
32
|
-
end
|
33
|
-
|
34
|
-
dream 'd95fcabb498ae282f356eba63da541e4f72c6efa'
|
35
|
-
drill "can revert Array" do
|
36
|
-
a = [:jesse]
|
37
|
-
stash :original, a.gibbler_commit
|
38
|
-
a << :joey
|
39
|
-
stash :updated, a.gibbler
|
40
|
-
a.gibbler_revert!
|
41
|
-
end
|
42
|
-
|
43
|
-
|
44
|
-
end
|
@@ -1,43 +0,0 @@
|
|
1
|
-
library :gibbler, File.dirname(__FILE__), '..', 'lib'
|
2
|
-
library 'gibbler/history', File.dirname(__FILE__), '..', 'lib'
|
3
|
-
|
4
|
-
group "History"
|
5
|
-
|
6
|
-
Gibbler.enable_debug if Tryouts.verbose > 3
|
7
|
-
|
8
|
-
|
9
|
-
tryouts "String History" do
|
10
|
-
|
11
|
-
drill "Setup String class", String do
|
12
|
-
class ::String
|
13
|
-
include Gibbler::History
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
drill "can take a String snapshot", 'c8027100ecc54945ab15ddac529230e38b1ba6a1' do
|
18
|
-
a = "kimmy"
|
19
|
-
a.gibbler_commit
|
20
|
-
end
|
21
|
-
|
22
|
-
dream :class, Array
|
23
|
-
dream :size, 2
|
24
|
-
dream ['c8027100ecc54945ab15ddac529230e38b1ba6a1', '692c05d3186baf2da36e87b7bc5fe53ef13b902e']
|
25
|
-
drill "return a String history" do
|
26
|
-
a = "kimmy"
|
27
|
-
a.gibbler_commit
|
28
|
-
a << " gibbler"
|
29
|
-
a.gibbler_commit
|
30
|
-
a.gibbler_history
|
31
|
-
end
|
32
|
-
|
33
|
-
dream 'c8027100ecc54945ab15ddac529230e38b1ba6a1'
|
34
|
-
drill "can revert String" do
|
35
|
-
a = "kimmy"
|
36
|
-
stash :original, a.gibbler_commit
|
37
|
-
a << " gibbler"
|
38
|
-
stash :updated, a.gibbler
|
39
|
-
a.gibbler_revert!
|
40
|
-
end
|
41
|
-
|
42
|
-
end
|
43
|
-
|
@@ -1,45 +0,0 @@
|
|
1
|
-
library :gibbler, File.dirname(__FILE__), '..', 'lib'
|
2
|
-
library 'gibbler/history', File.dirname(__FILE__), '..', 'lib'
|
3
|
-
|
4
|
-
group "History"
|
5
|
-
|
6
|
-
Gibbler.enable_debug if Tryouts.verbose > 3
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
tryouts "Arbitrary Object History" do
|
11
|
-
|
12
|
-
drill "Setup String class", 'FullHouse' do
|
13
|
-
class ::FullHouse
|
14
|
-
include Gibbler::Complex
|
15
|
-
include Gibbler::History
|
16
|
-
attr_accessor :roles
|
17
|
-
end
|
18
|
-
FullHouse.to_s
|
19
|
-
end
|
20
|
-
|
21
|
-
drill "can take a FullHouse snapshot", '4192d4cb59975813f117a51dcd4454ac16df6703' do
|
22
|
-
a = FullHouse.new
|
23
|
-
a.gibbler_commit
|
24
|
-
end
|
25
|
-
|
26
|
-
dream ['4192d4cb59975813f117a51dcd4454ac16df6703', '2c6957aa1e734d2a3a71caf569a7461a3bf26f11']
|
27
|
-
drill "return a FullHouse history" do
|
28
|
-
a = FullHouse.new
|
29
|
-
a.gibbler_commit
|
30
|
-
a.roles = [:jesse]
|
31
|
-
a.gibbler_commit
|
32
|
-
a.gibbler_history
|
33
|
-
end
|
34
|
-
|
35
|
-
dream '4192d4cb59975813f117a51dcd4454ac16df6703'
|
36
|
-
drill "can revert FullHouse" do
|
37
|
-
a = FullHouse.new
|
38
|
-
stash :original, a.gibbler_commit
|
39
|
-
a.roles = [:jesse]
|
40
|
-
stash :updated, a.gibbler
|
41
|
-
a.gibbler_revert!
|
42
|
-
end
|
43
|
-
|
44
|
-
end
|
45
|
-
|