meangirls 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,37 @@
1
+ describe '2p-set' do
2
+ before do
3
+ @class = Meangirls::TwoPhaseSet
4
+ @s = @class.new
5
+ @examples = [
6
+ @class.new,
7
+ (@class.new << 1),
8
+ (@class.new + [1,2] - [2])
9
+ ]
10
+ end
11
+
12
+ behaves_like :crdt
13
+ behaves_like :set
14
+ behaves_like :prob
15
+
16
+ should 'not add deleted elements' do
17
+ @s << 1
18
+ @s.delete 1
19
+ lambda { @s << 1 }.should.raise Meangirls::ReinsertNotAllowed
20
+ end
21
+
22
+ should 'not delete nonexistent elements' do
23
+ lambda { @s.delete 1 }.should.raise Meangirls::DeleteNotAllowed
24
+ end
25
+
26
+ should 'include all non-deleted added elements' do
27
+ test_merge(@s) do |siblings, merged|
28
+ adds = Set.new
29
+ removes = Set.new
30
+ siblings.each do |s|
31
+ adds += s.a
32
+ removes += s.r
33
+ end
34
+ merged.to_set.should == (adds - removes)
35
+ end
36
+ end
37
+ end
metadata ADDED
@@ -0,0 +1,159 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: meangirls
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Kyle Kingsbury
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-10-15 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: bundler
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: '1.3'
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: '1.3'
30
+ - !ruby/object:Gem::Dependency
31
+ name: rake
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: bacon
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: mocha-on-bacon
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ - !ruby/object:Gem::Dependency
79
+ name: yajl-ruby
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ description: Serializable data types for eventually consistent systems.
95
+ email:
96
+ - aphyr@aphyr.com
97
+ executables: []
98
+ extensions: []
99
+ extra_rdoc_files: []
100
+ files:
101
+ - .gitignore
102
+ - Gemfile
103
+ - README.markdown
104
+ - Rakefile
105
+ - lib/meangirls.rb
106
+ - lib/meangirls/counter.rb
107
+ - lib/meangirls/crdt.rb
108
+ - lib/meangirls/g_counter.rb
109
+ - lib/meangirls/lww_set.rb
110
+ - lib/meangirls/or_set.rb
111
+ - lib/meangirls/set.rb
112
+ - lib/meangirls/two_phase_set.rb
113
+ - lib/meangirls/version.rb
114
+ - meangirls.gemspec
115
+ - spec/counter.rb
116
+ - spec/crdt.rb
117
+ - spec/g_counter.rb
118
+ - spec/init.rb
119
+ - spec/lww_set.rb
120
+ - spec/or_set.rb
121
+ - spec/prob.rb
122
+ - spec/run
123
+ - spec/set.rb
124
+ - spec/two_phase_set.rb
125
+ homepage: https://github.com/aphyr/meangirls
126
+ licenses: []
127
+ post_install_message:
128
+ rdoc_options: []
129
+ require_paths:
130
+ - lib
131
+ required_ruby_version: !ruby/object:Gem::Requirement
132
+ none: false
133
+ requirements:
134
+ - - ! '>='
135
+ - !ruby/object:Gem::Version
136
+ version: '0'
137
+ required_rubygems_version: !ruby/object:Gem::Requirement
138
+ none: false
139
+ requirements:
140
+ - - ! '>='
141
+ - !ruby/object:Gem::Version
142
+ version: '0'
143
+ requirements: []
144
+ rubyforge_project:
145
+ rubygems_version: 1.8.25
146
+ signing_key:
147
+ specification_version: 3
148
+ summary: Serializable data types for eventually consistent systems.
149
+ test_files:
150
+ - spec/counter.rb
151
+ - spec/crdt.rb
152
+ - spec/g_counter.rb
153
+ - spec/init.rb
154
+ - spec/lww_set.rb
155
+ - spec/or_set.rb
156
+ - spec/prob.rb
157
+ - spec/run
158
+ - spec/set.rb
159
+ - spec/two_phase_set.rb