WhiteCloth 0.0.2 → 0.0.4
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/Gemfile +4 -0
- data/Gemfile.lock +4 -0
- data/HISTORY +25 -4
- data/Rakefile +5 -1
- data/VERSION +1 -1
- data/{FluxTuna.gemspec → WhiteCloth.gemspec} +25 -6
- data/lib/data_structures.rb +25 -0
- data/lib/data_structures/standard_node.rb +64 -0
- data/lib/data_structures/standard_tree.rb +99 -0
- data/lib/data_structures/white_node.rb +201 -0
- data/lib/helpers/tree_builder.rb +43 -0
- data/{test/dir_walk/create_witness_test.rb → lib/helpers/uuid.rb} +14 -18
- data/lib/projections.rb +28 -0
- data/lib/projections/project_dir.rb +51 -0
- data/lib/projections/project_file.rb +0 -0
- data/test/data/data_test.rb +1 -1
- data/test/data_structures/basic_tree_test.rb +122 -0
- data/test/data_structures/standard_tree_test.rb +118 -0
- data/test/data_structures/uuid_test.rb +56 -0
- data/test/projections/project_file_test.rb +77 -0
- metadata +68 -34
@@ -0,0 +1,77 @@
|
|
1
|
+
# Copyright (c) 2010-2011 David Love
|
2
|
+
#
|
3
|
+
# Permission to use, copy, modify, and/or distribute this software for
|
4
|
+
# any purpose with or without fee is hereby granted, provided that the
|
5
|
+
# above copyright notice and this permission notice appear in all copies.
|
6
|
+
#
|
7
|
+
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
8
|
+
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
9
|
+
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
10
|
+
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
11
|
+
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
12
|
+
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
13
|
+
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
14
|
+
#
|
15
|
+
|
16
|
+
# @author David Love
|
17
|
+
|
18
|
+
#
|
19
|
+
# This test suite checks for the correct behaviour of the file/dir projection
|
20
|
+
#
|
21
|
+
module Test::Projections
|
22
|
+
|
23
|
+
require "projections"
|
24
|
+
|
25
|
+
# Include the standard projections
|
26
|
+
include WhiteCloth::Projections
|
27
|
+
|
28
|
+
require "gibberish"
|
29
|
+
|
30
|
+
# Check that we can read the file we will shortly be testing
|
31
|
+
context "Load Welcome.byx" do
|
32
|
+
setup {
|
33
|
+
file_contents = String.new
|
34
|
+
file = File.new("test/data/bayeux/Welcome.byx", "r")
|
35
|
+
while (line = file.gets)
|
36
|
+
file_contents << line
|
37
|
+
end
|
38
|
+
file.close
|
39
|
+
file_contents
|
40
|
+
}
|
41
|
+
asserts_topic.kind_of(String)
|
42
|
+
asserts("file is not empty") { !topic.empty? }
|
43
|
+
end
|
44
|
+
|
45
|
+
# Sanity check the +Gibberish+ library (this has it own test suite, which
|
46
|
+
# should be used for checking the behaviour against specification: this test
|
47
|
+
# mereley looks at whether we can load the correct library and get an
|
48
|
+
# expected result)
|
49
|
+
context "Checksum Welcome.byx using Gibberish" do
|
50
|
+
setup {
|
51
|
+
file_contents = String.new
|
52
|
+
file = File.new("test/data/bayeux/Welcome.byx", "r")
|
53
|
+
while (line = file.gets)
|
54
|
+
file_contents << line
|
55
|
+
end
|
56
|
+
file.close
|
57
|
+
file_contents
|
58
|
+
}
|
59
|
+
asserts("can run SHA-256 checksum") { Gibberish::SHA256(topic) }
|
60
|
+
asserts_topic.kind_of(String)
|
61
|
+
asserts("checksum") { Gibberish::SHA256(topic) }.equals("0f1602b15e73725bea9dcb4e4a3da871339399f1b5e990f99ec8ff108d40deee")
|
62
|
+
end
|
63
|
+
|
64
|
+
# Check that we can instantiate a directory projection
|
65
|
+
#context "Create an empty DirFileWitness projection" do
|
66
|
+
# setup { DirFile.new }
|
67
|
+
# asserts_topic.kind_of(WhiteCloth::Projections::DirFile)
|
68
|
+
#end
|
69
|
+
|
70
|
+
# Create a walker for the test data
|
71
|
+
#context "Create a DirFileWitness projection for \"test/data/bayeux/**/*.byx\"" do
|
72
|
+
# setup { DirFile.new }
|
73
|
+
# asserts("directory walker"){ topic.project("test/data/bayeux/**/*.byx") }
|
74
|
+
#end
|
75
|
+
|
76
|
+
end
|
77
|
+
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: WhiteCloth
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.0.
|
5
|
+
version: 0.0.4
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- David Love
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-05-
|
13
|
+
date: 2011-05-17 00:00:00 +01:00
|
14
14
|
default_executable: whitecloth
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -25,29 +25,29 @@ dependencies:
|
|
25
25
|
prerelease: false
|
26
26
|
version_requirements: *id001
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: rubytree
|
29
29
|
requirement: &id002 !ruby/object:Gem::Requirement
|
30
30
|
none: false
|
31
31
|
requirements:
|
32
|
-
- -
|
32
|
+
- - ~>
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version:
|
34
|
+
version: 0.8.1
|
35
35
|
type: :runtime
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: *id002
|
38
38
|
- !ruby/object:Gem::Dependency
|
39
|
-
name:
|
39
|
+
name: log4r
|
40
40
|
requirement: &id003 !ruby/object:Gem::Requirement
|
41
41
|
none: false
|
42
42
|
requirements:
|
43
43
|
- - ~>
|
44
44
|
- !ruby/object:Gem::Version
|
45
|
-
version:
|
45
|
+
version: 1.1.9
|
46
46
|
type: :runtime
|
47
47
|
prerelease: false
|
48
48
|
version_requirements: *id003
|
49
49
|
- !ruby/object:Gem::Dependency
|
50
|
-
name:
|
50
|
+
name: uuidtools
|
51
51
|
requirement: &id004 !ruby/object:Gem::Requirement
|
52
52
|
none: false
|
53
53
|
requirements:
|
@@ -58,18 +58,18 @@ dependencies:
|
|
58
58
|
prerelease: false
|
59
59
|
version_requirements: *id004
|
60
60
|
- !ruby/object:Gem::Dependency
|
61
|
-
name:
|
61
|
+
name: hiredis
|
62
62
|
requirement: &id005 !ruby/object:Gem::Requirement
|
63
63
|
none: false
|
64
64
|
requirements:
|
65
65
|
- - ~>
|
66
66
|
- !ruby/object:Gem::Version
|
67
|
-
version:
|
67
|
+
version: 0.3.1
|
68
68
|
type: :runtime
|
69
69
|
prerelease: false
|
70
70
|
version_requirements: *id005
|
71
71
|
- !ruby/object:Gem::Dependency
|
72
|
-
name:
|
72
|
+
name: em-synchrony
|
73
73
|
requirement: &id006 !ruby/object:Gem::Requirement
|
74
74
|
none: false
|
75
75
|
requirements:
|
@@ -80,18 +80,18 @@ dependencies:
|
|
80
80
|
prerelease: false
|
81
81
|
version_requirements: *id006
|
82
82
|
- !ruby/object:Gem::Dependency
|
83
|
-
name:
|
83
|
+
name: redis
|
84
84
|
requirement: &id007 !ruby/object:Gem::Requirement
|
85
85
|
none: false
|
86
86
|
requirements:
|
87
|
-
- -
|
87
|
+
- - ~>
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version:
|
89
|
+
version: 2.2.0
|
90
90
|
type: :runtime
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: *id007
|
93
93
|
- !ruby/object:Gem::Dependency
|
94
|
-
name:
|
94
|
+
name: cli
|
95
95
|
requirement: &id008 !ruby/object:Gem::Requirement
|
96
96
|
none: false
|
97
97
|
requirements:
|
@@ -102,8 +102,30 @@ dependencies:
|
|
102
102
|
prerelease: false
|
103
103
|
version_requirements: *id008
|
104
104
|
- !ruby/object:Gem::Dependency
|
105
|
-
name:
|
105
|
+
name: cri
|
106
106
|
requirement: &id009 !ruby/object:Gem::Requirement
|
107
|
+
none: false
|
108
|
+
requirements:
|
109
|
+
- - ">="
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: "0"
|
112
|
+
type: :runtime
|
113
|
+
prerelease: false
|
114
|
+
version_requirements: *id009
|
115
|
+
- !ruby/object:Gem::Dependency
|
116
|
+
name: gibberish
|
117
|
+
requirement: &id010 !ruby/object:Gem::Requirement
|
118
|
+
none: false
|
119
|
+
requirements:
|
120
|
+
- - ">="
|
121
|
+
- !ruby/object:Gem::Version
|
122
|
+
version: "0"
|
123
|
+
type: :runtime
|
124
|
+
prerelease: false
|
125
|
+
version_requirements: *id010
|
126
|
+
- !ruby/object:Gem::Dependency
|
127
|
+
name: bundler
|
128
|
+
requirement: &id011 !ruby/object:Gem::Requirement
|
107
129
|
none: false
|
108
130
|
requirements:
|
109
131
|
- - ~>
|
@@ -111,10 +133,10 @@ dependencies:
|
|
111
133
|
version: 1.0.0
|
112
134
|
type: :development
|
113
135
|
prerelease: false
|
114
|
-
version_requirements: *
|
136
|
+
version_requirements: *id011
|
115
137
|
- !ruby/object:Gem::Dependency
|
116
138
|
name: jeweler
|
117
|
-
requirement: &
|
139
|
+
requirement: &id012 !ruby/object:Gem::Requirement
|
118
140
|
none: false
|
119
141
|
requirements:
|
120
142
|
- - ~>
|
@@ -122,10 +144,10 @@ dependencies:
|
|
122
144
|
version: 1.6.0
|
123
145
|
type: :development
|
124
146
|
prerelease: false
|
125
|
-
version_requirements: *
|
147
|
+
version_requirements: *id012
|
126
148
|
- !ruby/object:Gem::Dependency
|
127
149
|
name: yard
|
128
|
-
requirement: &
|
150
|
+
requirement: &id013 !ruby/object:Gem::Requirement
|
129
151
|
none: false
|
130
152
|
requirements:
|
131
153
|
- - ~>
|
@@ -133,10 +155,10 @@ dependencies:
|
|
133
155
|
version: 0.6.0
|
134
156
|
type: :development
|
135
157
|
prerelease: false
|
136
|
-
version_requirements: *
|
158
|
+
version_requirements: *id013
|
137
159
|
- !ruby/object:Gem::Dependency
|
138
160
|
name: vclog
|
139
|
-
requirement: &
|
161
|
+
requirement: &id014 !ruby/object:Gem::Requirement
|
140
162
|
none: false
|
141
163
|
requirements:
|
142
164
|
- - ">="
|
@@ -144,10 +166,10 @@ dependencies:
|
|
144
166
|
version: "0"
|
145
167
|
type: :development
|
146
168
|
prerelease: false
|
147
|
-
version_requirements: *
|
169
|
+
version_requirements: *id014
|
148
170
|
- !ruby/object:Gem::Dependency
|
149
171
|
name: minitest
|
150
|
-
requirement: &
|
172
|
+
requirement: &id015 !ruby/object:Gem::Requirement
|
151
173
|
none: false
|
152
174
|
requirements:
|
153
175
|
- - ">="
|
@@ -155,10 +177,10 @@ dependencies:
|
|
155
177
|
version: "0"
|
156
178
|
type: :development
|
157
179
|
prerelease: false
|
158
|
-
version_requirements: *
|
180
|
+
version_requirements: *id015
|
159
181
|
- !ruby/object:Gem::Dependency
|
160
182
|
name: rcov
|
161
|
-
requirement: &
|
183
|
+
requirement: &id016 !ruby/object:Gem::Requirement
|
162
184
|
none: false
|
163
185
|
requirements:
|
164
186
|
- - ">="
|
@@ -166,10 +188,10 @@ dependencies:
|
|
166
188
|
version: "0"
|
167
189
|
type: :development
|
168
190
|
prerelease: false
|
169
|
-
version_requirements: *
|
191
|
+
version_requirements: *id016
|
170
192
|
- !ruby/object:Gem::Dependency
|
171
193
|
name: riot
|
172
|
-
requirement: &
|
194
|
+
requirement: &id017 !ruby/object:Gem::Requirement
|
173
195
|
none: false
|
174
196
|
requirements:
|
175
197
|
- - ">="
|
@@ -177,10 +199,10 @@ dependencies:
|
|
177
199
|
version: "0"
|
178
200
|
type: :development
|
179
201
|
prerelease: false
|
180
|
-
version_requirements: *
|
202
|
+
version_requirements: *id017
|
181
203
|
- !ruby/object:Gem::Dependency
|
182
204
|
name: reek
|
183
|
-
requirement: &
|
205
|
+
requirement: &id018 !ruby/object:Gem::Requirement
|
184
206
|
none: false
|
185
207
|
requirements:
|
186
208
|
- - ~>
|
@@ -188,7 +210,7 @@ dependencies:
|
|
188
210
|
version: 1.2.8
|
189
211
|
type: :development
|
190
212
|
prerelease: false
|
191
|
-
version_requirements: *
|
213
|
+
version_requirements: *id018
|
192
214
|
description: "See: http://research.homeunix.org.uk"
|
193
215
|
email: david@homeunix.org.uk
|
194
216
|
executables:
|
@@ -201,7 +223,6 @@ extra_rdoc_files:
|
|
201
223
|
files:
|
202
224
|
- .document
|
203
225
|
- .rvmrc
|
204
|
-
- FluxTuna.gemspec
|
205
226
|
- Gemfile
|
206
227
|
- Gemfile.lock
|
207
228
|
- HISTORY
|
@@ -209,9 +230,19 @@ files:
|
|
209
230
|
- README.rdoc
|
210
231
|
- Rakefile
|
211
232
|
- VERSION
|
233
|
+
- WhiteCloth.gemspec
|
212
234
|
- bin/whitecloth
|
213
235
|
- lib/LICENSE
|
214
236
|
- lib/WhiteCloth.rb
|
237
|
+
- lib/data_structures.rb
|
238
|
+
- lib/data_structures/standard_node.rb
|
239
|
+
- lib/data_structures/standard_tree.rb
|
240
|
+
- lib/data_structures/white_node.rb
|
241
|
+
- lib/helpers/tree_builder.rb
|
242
|
+
- lib/helpers/uuid.rb
|
243
|
+
- lib/projections.rb
|
244
|
+
- lib/projections/project_dir.rb
|
245
|
+
- lib/projections/project_file.rb
|
215
246
|
- lib/whitecloth/cli.rb
|
216
247
|
- lib/whitecloth/cli/base.rb
|
217
248
|
- lib/whitecloth/cli/commands.rb
|
@@ -232,8 +263,11 @@ files:
|
|
232
263
|
- test/data/bayeux/Welcome.byx
|
233
264
|
- test/data/bayeux/Welcome.yaml
|
234
265
|
- test/data/data_test.rb
|
235
|
-
- test/
|
266
|
+
- test/data_structures/basic_tree_test.rb
|
267
|
+
- test/data_structures/standard_tree_test.rb
|
268
|
+
- test/data_structures/uuid_test.rb
|
236
269
|
- test/init_test.rb
|
270
|
+
- test/projections/project_file_test.rb
|
237
271
|
has_rdoc: true
|
238
272
|
homepage: http://github.com/dlove24/WhiteCloth
|
239
273
|
licenses:
|
@@ -248,7 +282,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
248
282
|
requirements:
|
249
283
|
- - ">="
|
250
284
|
- !ruby/object:Gem::Version
|
251
|
-
hash:
|
285
|
+
hash: -1095565922106216962
|
252
286
|
segments:
|
253
287
|
- 0
|
254
288
|
version: "0"
|