content_data 0.0.9 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,43 +1,42 @@
1
- require 'thread'
2
-
3
- module BBFS
4
- module ContentData
5
-
6
- # TODO(kolman): When content data is immutable, remove the clones (waste).
7
- class DynamicContentData
8
- def initialize()
9
- @last_content_data = nil
10
- @last_content_data_available_mutex = Mutex.new
11
- end
12
-
13
- def update(content_data)
14
- ref = ContentData.new(content_data)
15
- @last_content_data_available_mutex.synchronize {
16
- @last_content_data = ref
17
- }
18
- end
19
-
20
- def exists?(checksum)
21
- ref = nil
22
- @last_content_data_available_mutex.synchronize {
23
- ref = @last_content_data
24
- }
25
- #Log.debug3("@last_content_data is nil? #{@last_content_data.nil?}")
26
- #Log.debug3(@last_content_data.to_s) unless @last_content_data.nil?
27
- #Log.debug3("Exists?:#{@last_content_data.content_exists(checksum)}") \
28
- # unless @last_content_data.nil?
29
- return ref.content_exists(checksum) if ref != nil
30
- false
31
- end
32
-
33
- def last_content_data
34
- ref = nil
35
- @last_content_data_available_mutex.synchronize {
36
- ref = @last_content_data
37
- }
38
- return ContentData.new(ref)
39
- end
40
- end
41
-
42
- end # module ContentData
43
- end # module BBFS
1
+ require 'thread'
2
+
3
+ module ContentData
4
+
5
+ # TODO(kolman): When content data is immutable, remove the clones (waste).
6
+ class DynamicContentData
7
+ def initialize()
8
+ @last_content_data = nil
9
+ @last_content_data_available_mutex = Mutex.new
10
+ end
11
+
12
+ def update(content_data)
13
+ ref = ContentData.new(content_data)
14
+ @last_content_data_available_mutex.synchronize {
15
+ @last_content_data = ref
16
+ Log.debug3("updating last content data:#{@last_content_data}\n")
17
+ }
18
+ end
19
+
20
+ def exists?(checksum)
21
+ ref = nil
22
+ @last_content_data_available_mutex.synchronize {
23
+ ref = @last_content_data
24
+ }
25
+ #Log.debug3("@last_content_data is nil? #{@last_content_data.nil?}")
26
+ #Log.debug3(@last_content_data.to_s) unless @last_content_data.nil?
27
+ #Log.debug3("Exists?:#{@last_content_data.content_exists(checksum)}") \
28
+ # unless @last_content_data.nil?
29
+ return ref.content_exists(checksum) if ref != nil
30
+ false
31
+ end
32
+
33
+ def last_content_data
34
+ ref = nil
35
+ @last_content_data_available_mutex.synchronize {
36
+ ref = @last_content_data
37
+ }
38
+ return ContentData.new(ref)
39
+ end
40
+ end
41
+
42
+ end # module ContentData
@@ -1,5 +1,3 @@
1
- module BBFS
2
- module ContentData
3
- VERSION = "0.0.9"
4
- end
1
+ module ContentData
2
+ VERSION = "1.0.0"
5
3
  end
data/lib/content_data.rb CHANGED
@@ -3,7 +3,5 @@ require 'content_data/dynamic_content_data'
3
3
 
4
4
  # Data structure for an abstract layer over files.
5
5
  # Each binary sequence is a content, each file is content instance.
6
- module BBFS
7
- module ContentData
8
- end
6
+ module ContentData
9
7
  end
@@ -3,144 +3,143 @@ require 'test/unit'
3
3
 
4
4
  require_relative '../../lib/content_data/content_data.rb'
5
5
 
6
- module BBFS
7
- module ContentData
8
-
9
- class TestContentData < Test::Unit::TestCase
10
- def test_content
11
- content_data = ContentData.new
12
- content_data.add_content(Content.new("D12A1C98A3", 765, ContentData.parse_time("1296527039")))
13
- content_data.add_content(Content.new("B12A1C98A3", 123123, ContentData.parse_time("1296527039")))
14
- content_data.add_content(Content.new("D1234C98A3", 12444, ContentData.parse_time("1296527039")))
15
- content_data.add_content(Content.new("DB12A1C233", 2, ContentData.parse_time("1296527039")))
16
- content_data.add_content(Content.new("DB12A4338A", 12412, ContentData.parse_time("1296527039")))
17
- content_data.add_content(Content.new("232A1C98A3", 124424, ContentData.parse_time("1296527039")))
18
- content_data.add_content(Content.new("AC12A1C983", 1242, ContentData.parse_time("1296527039")))
19
- content_data.add_content(Content.new("AAC12A1C983", 1242,ContentData.parse_time("1296527039")))
20
-
21
- content_data.add_instance(ContentInstance.new("DB12A1C233", 765, "large_server_1", "dev1",
22
- "/home/kuku/dev/lala/k.txt", ContentData.parse_time("1296527039")))
23
- content_data.add_instance(ContentInstance.new("DB12A4338A", 765, "large_server_1", "dev2",
24
- "/home/kuku/dev/lala/k1.txt", ContentData.parse_time("1296527039")))
25
- content_data.add_instance(ContentInstance.new("232A1C98A3", 765, "large_server_1", "dev3",
26
- "/home/kuku/dev/k.txt", ContentData.parse_time("1296527039")))
27
- content_data.add_instance(ContentInstance.new("DB12A4338A", 765, "large_server_2", "dev2",
28
- "/home/lala/k.txt", ContentData.parse_time("1296527039")))
29
- content_data.add_instance(ContentInstance.new("D1234C98A3", 765, "large_server_2", "dev1",
30
- "/home/kuku/lala/k.txt", ContentData.parse_time("1296527039")))
31
- content_data.add_instance(ContentInstance.new("D12A1C98A3", 765, "large_server_2", "dev1",
32
- "/home/kuku/dev/lala/k.txt", ContentData.parse_time("1296527039")))
33
- content_data.add_instance(ContentInstance.new("AC12A1C983", 765, "large_server_2", "dev2",
34
- "/home/kuku/dev/lala/k1.txt", ContentData.parse_time("1296527039")))
35
- content_data.add_instance(ContentInstance.new("232A1C98A3", 765, "large_server_2", "dev3",
36
- "/home/kuku/dev/k.txt", ContentData.parse_time("1296527039")))
37
- content_data.add_instance(ContentInstance.new("D12A1C98A3", 765, "large_server_2", "dev2",
38
- "/home/lala/k.txt", ContentData.parse_time("1296527039")))
39
- content_data.add_instance(ContentInstance.new("D1234C98A3", 12412, "large_server_2", "dev1",
40
- "/home/kuku/lala/k.txt", ContentData.parse_time("1296527039")))
41
- content_data.add_instance(ContentInstance.new("DB12A4338A", 12412, "large_server_2", "dev1",
42
- "/home/kuku/dev/lala/k.txt", ContentData.parse_time("1296527039")))
43
- content_data.add_instance(ContentInstance.new("AC12A1C983", 12412, "large_server_2", "dev2",
44
- "/home/kuku/kuku/dev/lala/k1.txt", ContentData.parse_time("1296527039")))
45
- content_data.add_instance(ContentInstance.new("232A1C98A3", 12412, "large_server_2", "dev3",
46
- "/home/kuku/kuku/dev/k.txt", ContentData.parse_time("1296527039")))
47
- content_data.add_instance(ContentInstance.new("DB12A4338A", 12412, "large_server_1", "dev2",
48
- "/home/kuku/lala/k.txt", ContentData.parse_time("1296527039")))
49
- content_data.add_instance(ContentInstance.new("D1234C98A3", 12412, "large_server_1", "dev1",
50
- "/home/kuku/kuku/lala/k.txt", ContentData.parse_time("1296527039")))
51
-
52
- #print content_data.to_s
53
-
54
- assert_equal("8\nD12A1C98A3,765,1296527039\nB12A1C98A3,123123,1296527039\nD1234C98A3,12444,1296527039\nDB12A1C233,2,1296527039\nDB12A4338A,12412,1296527039\n232A1C98A3,124424,1296527039\nAC12A1C983,1242,1296527039\nAAC12A1C983,1242,1296527039\n3\nDB12A4338A,12412,large_server_2,dev1,/home/kuku/dev/lala/k.txt,1296527039\nD12A1C98A3,765,large_server_2,dev2,/home/lala/k.txt,1296527039\nDB12A4338A,12412,large_server_1,dev2,/home/kuku/lala/k.txt,1296527039\n",
55
- content_data.to_s)
56
- content_data.to_file(File.join File.dirname(__FILE__), "/content_data_test.data")
57
- new_content_data = ContentData.new()
58
- new_content_data.from_file(File.join File.dirname(__FILE__), "/content_data_test.data")
59
- assert_equal(new_content_data, content_data)
60
-
61
- content_data2 = ContentData.new
62
- content_data2.add_content(Content.new("AD12A1C98A3", 765, ContentData.parse_time("1296527039")))
63
- content_data2.add_content(Content.new("AB12A1C98A3", 123123, ContentData.parse_time("1296527039")))
64
- content_data2.add_content(Content.new("AD1234C98A3", 12444, ContentData.parse_time("1296527039")))
65
- content_data2.add_content(Content.new("ADB12A1C233", 2, ContentData.parse_time("1296527039")))
66
- content_data2.add_content(Content.new("ADB12A4338A", 12412, ContentData.parse_time("1296527039")))
67
- content_data2.add_content(Content.new("A232A1C98A3", 124424, ContentData.parse_time("1296527039")))
68
- content_data2.add_content(Content.new("AAC12A1C983", 1242, ContentData.parse_time("1296527039")))
69
-
70
- content_data2.add_instance(ContentInstance.new("ADB12A1C233", 765, "large_server_11", "dev1",
71
- "/home/kuku/dev/lala/k.txt", ContentData.parse_time("1296527039")))
72
- content_data2.add_instance(ContentInstance.new("ADB12A4338A", 765, "large_server_11", "dev2",
73
- "/home/kuku/dev/lala/k1.txt", ContentData.parse_time("1296527039")))
74
- content_data2.add_instance(ContentInstance.new("A232A1C98A3", 765, "large_server_11", "dev3",
75
- "/home/kuku/dev/k.txt", ContentData.parse_time("1296527039")))
76
- content_data2.add_instance(ContentInstance.new("ADB12A4338A", 765, "large_server_12", "dev2",
77
- "/home/lala/k.txt", ContentData.parse_time("1296527039")))
78
- content_data2.add_instance(ContentInstance.new("AD1234C98A3", 765, "large_server_12", "dev1",
79
- "/home/kuku/lala/k.txt", ContentData.parse_time("1296527039")))
80
- content_data2.add_instance(ContentInstance.new("AD12A1C98A3", 765, "large_server_12", "dev1",
81
- "/home/kuku/dev/lala/k.txt", ContentData.parse_time("1296527039")))
82
- content_data2.add_instance(ContentInstance.new("AAC12A1C983", 765, "large_server_12", "dev2",
83
- "/home/kuku/dev/lala/k1.txt", ContentData.parse_time("1296527039")))
84
- content_data2.add_instance(ContentInstance.new("A232A1C98A3", 765, "large_server_12", "dev3",
85
- "/home/kuku/dev/k.txt", ContentData.parse_time("1296527039")))
86
- content_data2.add_instance(ContentInstance.new("AD12A1C98A3", 765, "large_server_12", "dev2",
87
- "/home/lala/k.txt", ContentData.parse_time("1296527039")))
88
- content_data2.add_instance(ContentInstance.new("AD1234C98A3", 12412, "large_server_12", "dev1",
89
- "/home/kuku/lala/k.txt", ContentData.parse_time("1296527039")))
90
- content_data2.add_instance(ContentInstance.new("ADB12A4338A", 12412, "large_server_12", "dev1",
91
- "/home/kuku/dev/lala/k.txt", ContentData.parse_time("1296527039")))
92
- content_data2.add_instance(ContentInstance.new("AAC12A1C983", 12412, "large_server_12", "dev2",
93
- "/home/kuku/kuku/dev/lala/k1.txt", ContentData.parse_time("1296527039")))
94
- content_data2.add_instance(ContentInstance.new("A232A1C98A3", 12412, "large_server_12", "dev3",
95
- "/home/kuku/kuku/dev/k.txt", ContentData.parse_time("1296527039")))
96
- content_data2.add_instance(ContentInstance.new("ADB12A4338A", 12412, "large_server_11", "dev2",
97
- "/home/kuku/lala/k.txt", ContentData.parse_time("1296527039")))
98
- content_data2.add_instance(ContentInstance.new("AD1234C98A3", 12412, "large_server_11", "dev1",
99
- "/home/kuku/kuku/lala/k.txt", ContentData.parse_time("1296527039")))
100
-
101
- old_content_data = ContentData.new
102
- old_content_data.merge(content_data)
103
- assert_equal(true, old_content_data == content_data)
104
- content_data.merge(content_data2)
105
- content_data.to_file(File.join File.dirname(__FILE__), "/content_data_test2.data")
106
- new_content_data2 = ContentData.new()
107
- new_content_data2.from_file(File.join File.dirname(__FILE__), "/content_data_test2.data")
108
- assert_equal(true, new_content_data2 == content_data)
109
- assert_equal(false, new_content_data2 == old_content_data)
110
-
111
- cd3 = ContentData.remove(content_data2, content_data)
112
- assert_equal(false, old_content_data == cd3)
113
- cd4 = ContentData.remove(cd3, content_data)
114
- #assert_equal(content_data.to_s, "")
115
- assert_equal(cd3.to_s, "7\nD12A1C98A3,765,1296527039\nB12A1C98A3,123123,1296527039\nD1234C98A3,12444,1296527039\nDB12A1C233,2,1296527039\nDB12A4338A,12412,1296527039\n232A1C98A3,124424,1296527039\nAC12A1C983,1242,1296527039\n3\nDB12A4338A,12412,large_server_2,dev1,/home/kuku/dev/lala/k.txt,1296527039\nD12A1C98A3,765,large_server_2,dev2,/home/lala/k.txt,1296527039\nDB12A4338A,12412,large_server_1,dev2,/home/kuku/lala/k.txt,1296527039\n")
116
- assert_equal(cd4.to_s, "7\nAAC12A1C983,1242,1296527039\nAD12A1C98A3,765,1296527039\nAB12A1C98A3,123123,1296527039\nAD1234C98A3,12444,1296527039\nADB12A1C233,2,1296527039\nADB12A4338A,12412,1296527039\nA232A1C98A3,124424,1296527039\n3\nADB12A4338A,12412,large_server_12,dev1,/home/kuku/dev/lala/k.txt,1296527039\nAD12A1C98A3,765,large_server_12,dev2,/home/lala/k.txt,1296527039\nADB12A4338A,12412,large_server_11,dev2,/home/kuku/lala/k.txt,1296527039\n")
117
- cd5 = ContentData.merge(cd3, cd4)
118
- assert_equal(cd5, content_data)
119
-
120
- intersect = ContentData.intersect(cd3, cd4)
121
- assert_equal(intersect, ContentData.new)
122
- intersect = ContentData.intersect(cd5, cd4)
123
- assert_equal(cd4, intersect)
124
-
125
- # Content serialization test
126
- #content = Content.new("D12A1C98A3", 765, ContentData.parse_time("1296527039"))
127
- #content_serializer = content.serialize()
128
- #content_copy = Content.new(nil, nil, nil, content_serializer)
129
- #assert_equal(content, content_copy)
130
-
131
- # ContentInstance serialization test
132
- #instance = ContentInstance.new("DB12A1C233", 765, "large_server_1", "dev1",
133
- # "/home/kuku/dev/lala/k.txt", ContentData.parse_time("1296527039"))
134
- #instance_serializer = instance.serialize()
135
- #instance_copy = ContentInstance.new(nil, nil, nil, nil, nil, nil, instance_serializer)
136
- #assert_equal(instance, instance_copy)
137
-
138
- # ContentData serialization test
139
- #content_data_serializer = content_data.serialize
140
- #content_data_copy = ContentData.new(content_data_serializer)
141
- #assert_equal(content_data, content_data_copy)
142
- end
143
- end
6
+ module ContentData
7
+
8
+ class TestContentData < Test::Unit::TestCase
9
+ def test_content
10
+ content_data = ContentData.new
11
+ content_data.add_content(Content.new("D12A1C98A3", 765, ContentData.parse_time("1296527039")))
12
+ content_data.add_content(Content.new("B12A1C98A3", 123123, ContentData.parse_time("1296527039")))
13
+ content_data.add_content(Content.new("D1234C98A3", 12444, ContentData.parse_time("1296527039")))
14
+ content_data.add_content(Content.new("DB12A1C233", 2, ContentData.parse_time("1296527039")))
15
+ content_data.add_content(Content.new("DB12A4338A", 12412, ContentData.parse_time("1296527039")))
16
+ content_data.add_content(Content.new("232A1C98A3", 124424, ContentData.parse_time("1296527039")))
17
+ content_data.add_content(Content.new("AC12A1C983", 1242, ContentData.parse_time("1296527039")))
18
+ content_data.add_content(Content.new("AAC12A1C983", 1242,ContentData.parse_time("1296527039")))
19
+
20
+ content_data.add_instance(ContentInstance.new("DB12A1C233", 765, "large_server_1", "dev1",
21
+ "/home/kuku/dev/lala/k.txt", ContentData.parse_time("1296527039")))
22
+ content_data.add_instance(ContentInstance.new("DB12A4338A", 765, "large_server_1", "dev2",
23
+ "/home/kuku/dev/lala/k1.txt", ContentData.parse_time("1296527039")))
24
+ content_data.add_instance(ContentInstance.new("232A1C98A3", 765, "large_server_1", "dev3",
25
+ "/home/kuku/dev/k.txt", ContentData.parse_time("1296527039")))
26
+ content_data.add_instance(ContentInstance.new("DB12A4338A", 765, "large_server_2", "dev2",
27
+ "/home/lala/k.txt", ContentData.parse_time("1296527039")))
28
+ content_data.add_instance(ContentInstance.new("D1234C98A3", 765, "large_server_2", "dev1",
29
+ "/home/kuku/lala/k.txt", ContentData.parse_time("1296527039")))
30
+ content_data.add_instance(ContentInstance.new("D12A1C98A3", 765, "large_server_2", "dev1",
31
+ "/home/kuku/dev/lala/k.txt", ContentData.parse_time("1296527039")))
32
+ content_data.add_instance(ContentInstance.new("AC12A1C983", 765, "large_server_2", "dev2",
33
+ "/home/kuku/dev/lala/k1.txt", ContentData.parse_time("1296527039")))
34
+ content_data.add_instance(ContentInstance.new("232A1C98A3", 765, "large_server_2", "dev3",
35
+ "/home/kuku/dev/k.txt", ContentData.parse_time("1296527039")))
36
+ content_data.add_instance(ContentInstance.new("D12A1C98A3", 765, "large_server_2", "dev2",
37
+ "/home/lala/k.txt", ContentData.parse_time("1296527039")))
38
+ content_data.add_instance(ContentInstance.new("D1234C98A3", 12412, "large_server_2", "dev1",
39
+ "/home/kuku/lala/k.txt", ContentData.parse_time("1296527039")))
40
+ content_data.add_instance(ContentInstance.new("DB12A4338A", 12412, "large_server_2", "dev1",
41
+ "/home/kuku/dev/lala/k.txt", ContentData.parse_time("1296527039")))
42
+ content_data.add_instance(ContentInstance.new("AC12A1C983", 12412, "large_server_2", "dev2",
43
+ "/home/kuku/kuku/dev/lala/k1.txt", ContentData.parse_time("1296527039")))
44
+ content_data.add_instance(ContentInstance.new("232A1C98A3", 12412, "large_server_2", "dev3",
45
+ "/home/kuku/kuku/dev/k.txt", ContentData.parse_time("1296527039")))
46
+ content_data.add_instance(ContentInstance.new("DB12A4338A", 12412, "large_server_1", "dev2",
47
+ "/home/kuku/lala/k.txt", ContentData.parse_time("1296527039")))
48
+ content_data.add_instance(ContentInstance.new("D1234C98A3", 12412, "large_server_1", "dev1",
49
+ "/home/kuku/kuku/lala/k.txt", ContentData.parse_time("1296527039")))
50
+
51
+ #print content_data.to_s
52
+
53
+ assert_equal("8\nD12A1C98A3,765,1296527039\nB12A1C98A3,123123,1296527039\nD1234C98A3,12444,1296527039\nDB12A1C233,2,1296527039\nDB12A4338A,12412,1296527039\n232A1C98A3,124424,1296527039\nAC12A1C983,1242,1296527039\nAAC12A1C983,1242,1296527039\n3\nDB12A4338A,12412,large_server_2,dev1,/home/kuku/dev/lala/k.txt,1296527039\nD12A1C98A3,765,large_server_2,dev2,/home/lala/k.txt,1296527039\nDB12A4338A,12412,large_server_1,dev2,/home/kuku/lala/k.txt,1296527039\n",
54
+ content_data.to_s)
55
+ content_data.to_file(File.join File.dirname(__FILE__), "/content_data_test.data")
56
+ new_content_data = ContentData.new()
57
+ new_content_data.from_file(File.join File.dirname(__FILE__), "/content_data_test.data")
58
+ assert_equal(new_content_data, content_data)
59
+
60
+ content_data2 = ContentData.new
61
+ content_data2.add_content(Content.new("AD12A1C98A3", 765, ContentData.parse_time("1296527039")))
62
+ content_data2.add_content(Content.new("AB12A1C98A3", 123123, ContentData.parse_time("1296527039")))
63
+ content_data2.add_content(Content.new("AD1234C98A3", 12444, ContentData.parse_time("1296527039")))
64
+ content_data2.add_content(Content.new("ADB12A1C233", 2, ContentData.parse_time("1296527039")))
65
+ content_data2.add_content(Content.new("ADB12A4338A", 12412, ContentData.parse_time("1296527039")))
66
+ content_data2.add_content(Content.new("A232A1C98A3", 124424, ContentData.parse_time("1296527039")))
67
+ content_data2.add_content(Content.new("AAC12A1C983", 1242, ContentData.parse_time("1296527039")))
68
+
69
+ content_data2.add_instance(ContentInstance.new("ADB12A1C233", 765, "large_server_11", "dev1",
70
+ "/home/kuku/dev/lala/k.txt", ContentData.parse_time("1296527039")))
71
+ content_data2.add_instance(ContentInstance.new("ADB12A4338A", 765, "large_server_11", "dev2",
72
+ "/home/kuku/dev/lala/k1.txt", ContentData.parse_time("1296527039")))
73
+ content_data2.add_instance(ContentInstance.new("A232A1C98A3", 765, "large_server_11", "dev3",
74
+ "/home/kuku/dev/k.txt", ContentData.parse_time("1296527039")))
75
+ content_data2.add_instance(ContentInstance.new("ADB12A4338A", 765, "large_server_12", "dev2",
76
+ "/home/lala/k.txt", ContentData.parse_time("1296527039")))
77
+ content_data2.add_instance(ContentInstance.new("AD1234C98A3", 765, "large_server_12", "dev1",
78
+ "/home/kuku/lala/k.txt", ContentData.parse_time("1296527039")))
79
+ content_data2.add_instance(ContentInstance.new("AD12A1C98A3", 765, "large_server_12", "dev1",
80
+ "/home/kuku/dev/lala/k.txt", ContentData.parse_time("1296527039")))
81
+ content_data2.add_instance(ContentInstance.new("AAC12A1C983", 765, "large_server_12", "dev2",
82
+ "/home/kuku/dev/lala/k1.txt", ContentData.parse_time("1296527039")))
83
+ content_data2.add_instance(ContentInstance.new("A232A1C98A3", 765, "large_server_12", "dev3",
84
+ "/home/kuku/dev/k.txt", ContentData.parse_time("1296527039")))
85
+ content_data2.add_instance(ContentInstance.new("AD12A1C98A3", 765, "large_server_12", "dev2",
86
+ "/home/lala/k.txt", ContentData.parse_time("1296527039")))
87
+ content_data2.add_instance(ContentInstance.new("AD1234C98A3", 12412, "large_server_12", "dev1",
88
+ "/home/kuku/lala/k.txt", ContentData.parse_time("1296527039")))
89
+ content_data2.add_instance(ContentInstance.new("ADB12A4338A", 12412, "large_server_12", "dev1",
90
+ "/home/kuku/dev/lala/k.txt", ContentData.parse_time("1296527039")))
91
+ content_data2.add_instance(ContentInstance.new("AAC12A1C983", 12412, "large_server_12", "dev2",
92
+ "/home/kuku/kuku/dev/lala/k1.txt", ContentData.parse_time("1296527039")))
93
+ content_data2.add_instance(ContentInstance.new("A232A1C98A3", 12412, "large_server_12", "dev3",
94
+ "/home/kuku/kuku/dev/k.txt", ContentData.parse_time("1296527039")))
95
+ content_data2.add_instance(ContentInstance.new("ADB12A4338A", 12412, "large_server_11", "dev2",
96
+ "/home/kuku/lala/k.txt", ContentData.parse_time("1296527039")))
97
+ content_data2.add_instance(ContentInstance.new("AD1234C98A3", 12412, "large_server_11", "dev1",
98
+ "/home/kuku/kuku/lala/k.txt", ContentData.parse_time("1296527039")))
99
+
100
+ old_content_data = ContentData.new
101
+ old_content_data.merge(content_data)
102
+ assert_equal(true, old_content_data == content_data)
103
+ content_data.merge(content_data2)
104
+ content_data.to_file(File.join File.dirname(__FILE__), "/content_data_test2.data")
105
+ new_content_data2 = ContentData.new()
106
+ new_content_data2.from_file(File.join File.dirname(__FILE__), "/content_data_test2.data")
107
+ assert_equal(true, new_content_data2 == content_data)
108
+ assert_equal(false, new_content_data2 == old_content_data)
144
109
 
110
+ cd3 = ContentData.remove(content_data2, content_data)
111
+ assert_equal(false, old_content_data == cd3)
112
+ cd4 = ContentData.remove(cd3, content_data)
113
+ #assert_equal(content_data.to_s, "")
114
+ assert_equal(cd3.to_s, "7\nD12A1C98A3,765,1296527039\nB12A1C98A3,123123,1296527039\nD1234C98A3,12444,1296527039\nDB12A1C233,2,1296527039\nDB12A4338A,12412,1296527039\n232A1C98A3,124424,1296527039\nAC12A1C983,1242,1296527039\n3\nDB12A4338A,12412,large_server_2,dev1,/home/kuku/dev/lala/k.txt,1296527039\nD12A1C98A3,765,large_server_2,dev2,/home/lala/k.txt,1296527039\nDB12A4338A,12412,large_server_1,dev2,/home/kuku/lala/k.txt,1296527039\n")
115
+ assert_equal(cd4.to_s, "7\nAAC12A1C983,1242,1296527039\nAD12A1C98A3,765,1296527039\nAB12A1C98A3,123123,1296527039\nAD1234C98A3,12444,1296527039\nADB12A1C233,2,1296527039\nADB12A4338A,12412,1296527039\nA232A1C98A3,124424,1296527039\n3\nADB12A4338A,12412,large_server_12,dev1,/home/kuku/dev/lala/k.txt,1296527039\nAD12A1C98A3,765,large_server_12,dev2,/home/lala/k.txt,1296527039\nADB12A4338A,12412,large_server_11,dev2,/home/kuku/lala/k.txt,1296527039\n")
116
+ cd5 = ContentData.merge(cd3, cd4)
117
+ assert_equal(cd5, content_data)
118
+
119
+ intersect = ContentData.intersect(cd3, cd4)
120
+ assert_equal(intersect, ContentData.new)
121
+ intersect = ContentData.intersect(cd5, cd4)
122
+ assert_equal(cd4, intersect)
123
+
124
+ # Content serialization test
125
+ #content = Content.new("D12A1C98A3", 765, ContentData.parse_time("1296527039"))
126
+ #content_serializer = content.serialize()
127
+ #content_copy = Content.new(nil, nil, nil, content_serializer)
128
+ #assert_equal(content, content_copy)
129
+
130
+ # ContentInstance serialization test
131
+ #instance = ContentInstance.new("DB12A1C233", 765, "large_server_1", "dev1",
132
+ # "/home/kuku/dev/lala/k.txt", ContentData.parse_time("1296527039"))
133
+ #instance_serializer = instance.serialize()
134
+ #instance_copy = ContentInstance.new(nil, nil, nil, nil, nil, nil, instance_serializer)
135
+ #assert_equal(instance, instance_copy)
136
+
137
+ # ContentData serialization test
138
+ #content_data_serializer = content_data.serialize
139
+ #content_data_copy = ContentData.new(content_data_serializer)
140
+ #assert_equal(content_data, content_data_copy)
141
+ end
145
142
  end
143
+
146
144
  end
145
+
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: content_data
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
4
+ version: 1.0.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-09-13 00:00:00.000000000 Z
12
+ date: 2013-05-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: log
@@ -45,17 +45,17 @@ dependencies:
45
45
  version: '0'
46
46
  description: ! 'Data structure for an abstract layer over files. Each binary sequence
47
47
  is a '
48
- email: kolmanv@gmail.com
48
+ email: bbfsdev@gmail.com
49
49
  executables: []
50
50
  extensions: []
51
51
  extra_rdoc_files: []
52
52
  files:
53
53
  - lib/content_data.rb
54
- - lib/content_data/content_data.rb
55
54
  - lib/content_data/dynamic_content_data.rb
55
+ - lib/content_data/content_data.rb
56
56
  - lib/content_data/version.rb
57
57
  - test/content_data/content_data_test.rb
58
- homepage: http://github.com/kolmanv/bbfs
58
+ homepage: http://github.com/bbfsdev/bbfs
59
59
  licenses: []
60
60
  post_install_message:
61
61
  rdoc_options: []