flockdb 0.3.0

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.
@@ -0,0 +1 @@
1
+ require 'flock'
@@ -0,0 +1,102 @@
1
+ require 'spec/spec_helper'
2
+
3
+ describe Flock do
4
+ attr_accessor :flock
5
+
6
+ before do
7
+ @flock = new_flock_client
8
+
9
+ flock.add(1,1,1)
10
+ flock.add(1,1,2)
11
+ end
12
+
13
+ describe 'add' do
14
+ it 'works' do
15
+ flock.contains(1,1,1).should == true
16
+ end
17
+ end
18
+
19
+ describe 'remove' do
20
+ it 'works' do
21
+ flock.remove(1,1,1)
22
+ flock.contains(1,1,1).should == false
23
+ end
24
+ end
25
+
26
+ describe 'count' do
27
+ it 'works' do
28
+ flock.count(1,1,nil).should == 2
29
+ end
30
+ end
31
+
32
+ describe 'select' do
33
+ attr_accessor :query
34
+
35
+ before do
36
+ @query = flock.select(1,1,nil)
37
+ end
38
+
39
+ it "supports old style of select" do
40
+ flock.select([1,1,nil]).to_a.sort.should == [1,2]
41
+ end
42
+
43
+ it "supports selecting multiple nodes" do
44
+ flock.select(1,1,[1,2]).to_a.sort.should == [1,2]
45
+ end
46
+
47
+ it "turns nodes into ints if possible" do
48
+ user = mock!.to_i { 1 }.subject
49
+ flock.select(user, 1, nil).to_a.sort.should == [1,2]
50
+ end
51
+
52
+ describe 'to_a' do
53
+ it 'works' do
54
+ flock.select(1,1,nil).to_a.sort.should == [1,2]
55
+ end
56
+ end
57
+
58
+ describe 'paginate' do
59
+ it 'works' do
60
+ page, next_cursor, prev_cursor = query.paginate(1).unapply
61
+
62
+ page.should == [1]
63
+ prev_cursor.should == Flock::CursorEnd
64
+ next_cursor.should_not == Flock::CursorEnd
65
+
66
+ page, next_cursor, prev_cursor = query.paginate(1, next_cursor).unapply
67
+
68
+ page.should == [2]
69
+ prev_cursor.should == Flock::CursorStart
70
+ next_cursor.should == Flock::CursorEnd
71
+ end
72
+
73
+ describe 'next_page' do
74
+ it 'works' do
75
+ results = query.paginate(1)
76
+
77
+ results.next_page?.should == true
78
+ results.next_page.should == [1]
79
+
80
+ results.next_page?.should == true
81
+ results.next_page.should == [2]
82
+
83
+ results.next_page?.should == false
84
+ end
85
+ end
86
+
87
+ describe 'next' do
88
+ it 'works' do
89
+ results = query.paginate(2)
90
+
91
+ results.next?.should == true
92
+ results.next.should == 1
93
+
94
+ results.next?.should == true
95
+ results.next.should == 2
96
+
97
+ results.next?.should == false
98
+ end
99
+ end
100
+ end
101
+ end
102
+ end
@@ -0,0 +1,27 @@
1
+ require 'spec/spec_helper'
2
+
3
+ describe Flock::MockService do
4
+ describe 'Class Methods' do
5
+
6
+
7
+ describe 'inspect'
8
+ describe 'execute'
9
+ describe 'select'
10
+ describe 'count'
11
+ describe 'counts_of_sources_for'
12
+
13
+ # private methods
14
+ describe 'select_query'
15
+ describe 'graphs'
16
+ describe 'iterate'
17
+ describe 'empty_result'
18
+ describe 'sources'
19
+ describe 'destinations'
20
+ describe 'archived_sources'
21
+ describe 'archived_destinations'
22
+
23
+ # deprecated public methods
24
+ describe 'offset_sources_for'
25
+ describe 'offset_destinations_for'
26
+ end
27
+ end
@@ -0,0 +1,7 @@
1
+ --colour
2
+ --format progress
3
+ --loadby mtime
4
+ --reverse
5
+ --timeout 20
6
+ --diff
7
+ --backtrace
@@ -0,0 +1,19 @@
1
+ require 'rubygems'
2
+ require 'spec'
3
+
4
+ spec_dir = File.dirname(__FILE__)
5
+ $: << File.expand_path("#{spec_dir}/../lib")
6
+
7
+ require 'flock'
8
+ require 'flock/mock_service'
9
+
10
+ Spec::Runner.configure do |config|
11
+ config.mock_with :rr
12
+ config.before do
13
+ Flock::MockService.clear
14
+ end
15
+ end
16
+
17
+ def new_flock_client
18
+ Flock.new(Flock::MockService)
19
+ end
metadata ADDED
@@ -0,0 +1,145 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: flockdb
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 3
8
+ - 0
9
+ version: 0.3.0
10
+ platform: ruby
11
+ authors:
12
+ - Matt Freels
13
+ - Rael Dornfest
14
+ - Nick Kallen
15
+ autorequire:
16
+ bindir: bin
17
+ cert_chain: []
18
+
19
+ date: 2010-04-19 00:00:00 -07:00
20
+ default_executable:
21
+ dependencies:
22
+ - !ruby/object:Gem::Dependency
23
+ name: thrift
24
+ prerelease: false
25
+ requirement: &id001 !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ segments:
30
+ - 0
31
+ - 2
32
+ - 0
33
+ version: 0.2.0
34
+ type: :runtime
35
+ version_requirements: *id001
36
+ - !ruby/object:Gem::Dependency
37
+ name: thrift_client
38
+ prerelease: false
39
+ requirement: &id002 !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ segments:
44
+ - 0
45
+ - 4
46
+ - 1
47
+ version: 0.4.1
48
+ type: :runtime
49
+ version_requirements: *id002
50
+ - !ruby/object:Gem::Dependency
51
+ name: rspec
52
+ prerelease: false
53
+ requirement: &id003 !ruby/object:Gem::Requirement
54
+ requirements:
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
57
+ segments:
58
+ - 0
59
+ version: "0"
60
+ type: :development
61
+ version_requirements: *id003
62
+ - !ruby/object:Gem::Dependency
63
+ name: rr
64
+ prerelease: false
65
+ requirement: &id004 !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ segments:
70
+ - 0
71
+ version: "0"
72
+ type: :development
73
+ version_requirements: *id004
74
+ description: Get your flock on in Ruby.
75
+ email: freels@twitter.com
76
+ executables: []
77
+
78
+ extensions: []
79
+
80
+ extra_rdoc_files:
81
+ - LICENSE
82
+ - README.md
83
+ files:
84
+ - .gitignore
85
+ - LICENSE
86
+ - README.md
87
+ - Rakefile
88
+ - VERSION
89
+ - flockdb.gemspec
90
+ - lib/flock.rb
91
+ - lib/flock/client.rb
92
+ - lib/flock/mixins/sizeable.rb
93
+ - lib/flock/mock_service.rb
94
+ - lib/flock/operation.rb
95
+ - lib/flock/operations/complex_operation.rb
96
+ - lib/flock/operations/execute_operation.rb
97
+ - lib/flock/operations/execute_operations.rb
98
+ - lib/flock/operations/query_term.rb
99
+ - lib/flock/operations/select_operation.rb
100
+ - lib/flock/operations/simple_operation.rb
101
+ - lib/flock/service.rb
102
+ - lib/flock/thrift/edges.rb
103
+ - lib/flock/thrift/edges_types.rb
104
+ - lib/flock/thrift/flock_constants.rb
105
+ - lib/flock/thrift/flock_types.rb
106
+ - lib/flock/thrift/shards.rb
107
+ - lib/flockdb.rb
108
+ - spec/flock_spec.rb
109
+ - spec/mock_service_spec.rb
110
+ - spec/spec.opts
111
+ - spec/spec_helper.rb
112
+ has_rdoc: true
113
+ homepage: http://twitter.com
114
+ licenses: []
115
+
116
+ post_install_message:
117
+ rdoc_options:
118
+ - --charset=UTF-8
119
+ require_paths:
120
+ - lib
121
+ required_ruby_version: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - ">="
124
+ - !ruby/object:Gem::Version
125
+ segments:
126
+ - 0
127
+ version: "0"
128
+ required_rubygems_version: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - ">="
131
+ - !ruby/object:Gem::Version
132
+ segments:
133
+ - 0
134
+ version: "0"
135
+ requirements: []
136
+
137
+ rubyforge_project:
138
+ rubygems_version: 1.3.6
139
+ signing_key:
140
+ specification_version: 3
141
+ summary: Ruby Flock client
142
+ test_files:
143
+ - spec/flock_spec.rb
144
+ - spec/mock_service_spec.rb
145
+ - spec/spec_helper.rb