fraggle 0.4.0 → 1.0.0pre

Sign up to get free protection for your applications and to get access to all the features.
metadata CHANGED
@@ -1,13 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fraggle
3
3
  version: !ruby/object:Gem::Version
4
- hash: 15
5
- prerelease:
4
+ hash: 961915988
5
+ prerelease: 5
6
6
  segments:
7
+ - 1
7
8
  - 0
8
- - 4
9
9
  - 0
10
- version: 0.4.0
10
+ - pre
11
+ version: 1.0.0pre
11
12
  platform: ruby
12
13
  authors:
13
14
  - Blake Mizerany
@@ -15,7 +16,7 @@ autorequire:
15
16
  bindir: bin
16
17
  cert_chain: []
17
18
 
18
- date: 2011-03-21 00:00:00 -07:00
19
+ date: 2011-03-28 00:00:00 -07:00
19
20
  default_executable:
20
21
  dependencies:
21
22
  - !ruby/object:Gem::Dependency
@@ -24,54 +25,72 @@ dependencies:
24
25
  requirement: &id001 !ruby/object:Gem::Requirement
25
26
  none: false
26
27
  requirements:
27
- - - ">="
28
+ - - ~>
28
29
  - !ruby/object:Gem::Version
29
- hash: 25
30
+ hash: 13
30
31
  segments:
31
32
  - 0
32
- - 1
33
- - 1
34
- version: 0.1.1
33
+ - 3
34
+ version: "0.3"
35
35
  type: :runtime
36
36
  version_requirements: *id001
37
- description: A Ruby/EventMachine Client for Doozer
37
+ - !ruby/object:Gem::Dependency
38
+ name: turn
39
+ prerelease: false
40
+ requirement: &id002 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ hash: 3
46
+ segments:
47
+ - 0
48
+ version: "0"
49
+ type: :development
50
+ version_requirements: *id002
51
+ description: An EventMachine Client for Doozer
38
52
  email:
53
+ - blake.mizerany@gmail.com
39
54
  executables: []
40
55
 
41
56
  extensions: []
42
57
 
43
- extra_rdoc_files:
44
- - README.md
45
- - LICENSE
58
+ extra_rdoc_files: []
59
+
46
60
  files:
61
+ - .gitignore
62
+ - Gemfile
47
63
  - LICENSE
48
64
  - README.md
65
+ - Rakefile
66
+ - example/again.rb
67
+ - example/getdir.rb
68
+ - example/ping.rb
69
+ - example/session.rb
70
+ - example/set.rb
71
+ - example/stat.rb
72
+ - example/walk.rb
73
+ - example/watch.rb
74
+ - fraggle.gemspec
75
+ - lib/fraggle.rb
49
76
  - lib/fraggle/client.rb
50
- - lib/fraggle/emitter.rb
51
- - lib/fraggle/errors.rb
52
- - lib/fraggle/logger.rb
53
- - lib/fraggle/meta.rb
54
- - lib/fraggle/msg.rb
55
- - lib/fraggle/protocol.rb
77
+ - lib/fraggle/connection.rb
78
+ - lib/fraggle/msg.pb.rb
56
79
  - lib/fraggle/request.rb
57
80
  - lib/fraggle/response.rb
58
- - lib/fraggle/test.rb
59
- - lib/fraggle.rb
81
+ - lib/fraggle/version.rb
60
82
  - test/fraggle_client_test.rb
61
83
  - test/fraggle_protocol_test.rb
62
84
  - test/fraggle_test.rb
85
+ - test/fraggle_transaction_test.rb
86
+ - test/helper.rb
63
87
  has_rdoc: true
64
- homepage: http://github.com/bmizerany/fraggle
88
+ homepage: ""
65
89
  licenses: []
66
90
 
67
91
  post_install_message:
68
- rdoc_options:
69
- - --line-numbers
70
- - --inline-source
71
- - --title
72
- - Sinatra
73
- - --main
74
- - README.rdoc
92
+ rdoc_options: []
93
+
75
94
  require_paths:
76
95
  - lib
77
96
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -86,20 +105,24 @@ required_ruby_version: !ruby/object:Gem::Requirement
86
105
  required_rubygems_version: !ruby/object:Gem::Requirement
87
106
  none: false
88
107
  requirements:
89
- - - ">="
108
+ - - ">"
90
109
  - !ruby/object:Gem::Version
91
- hash: 3
110
+ hash: 25
92
111
  segments:
93
- - 0
94
- version: "0"
112
+ - 1
113
+ - 3
114
+ - 1
115
+ version: 1.3.1
95
116
  requirements: []
96
117
 
97
118
  rubyforge_project: fraggle
98
119
  rubygems_version: 1.5.2
99
120
  signing_key:
100
- specification_version: 2
101
- summary: A Ruby/EventMachine Client for Doozer
121
+ specification_version: 3
122
+ summary: An EventMachine Client for Doozer
102
123
  test_files:
103
124
  - test/fraggle_client_test.rb
104
125
  - test/fraggle_protocol_test.rb
105
126
  - test/fraggle_test.rb
127
+ - test/fraggle_transaction_test.rb
128
+ - test/helper.rb
@@ -1,39 +0,0 @@
1
- module Fraggle
2
-
3
- module Emitter
4
-
5
- def callbacks
6
- @callbacks ||= Hash.new(lambda {})
7
- end
8
-
9
- def emit(name, *args)
10
- callbacks[name].call(*args)
11
- end
12
-
13
- def valid(&blk) ; must_callback!(:valid, blk) ; end
14
- def done(&blk) ; must_callback!(:done, blk) ; end
15
- def error(&blk) ; must_callback!(:error, blk) ; end
16
- def again(&blk) ; must_callback!(:again, blk) ; end
17
-
18
- def must_callback!(name, blk)
19
- if ! blk
20
- raise ArgumentError, "no block given to `#{name}`"
21
- end
22
- callbacks[name] = blk
23
-
24
- self
25
- end
26
-
27
- def aggr(coll=[], &blk)
28
- valid do |item|
29
- coll << item
30
- end
31
-
32
- done do
33
- blk.call(coll)
34
- end
35
- end
36
-
37
- end
38
-
39
- end
@@ -1,3 +0,0 @@
1
- module Fraggle
2
- class NoAddrs < StandardError ; end
3
- end
@@ -1,32 +0,0 @@
1
- module Fraggle
2
- module Logger
3
-
4
- DEBUG = 0
5
- INFO = 1
6
- WARN = 2
7
- ERROR = 3
8
-
9
- attr_writer :writer, :level
10
-
11
- def log(lv, msg)
12
- label = case lv
13
- when DEBUG then "debug "
14
- when INFO then "info "
15
- when WARN then "warn "
16
- when ERROR then "error "
17
- end
18
-
19
- if lv >= level
20
- writer.puts "#{label}: #{msg}"
21
- end
22
- end
23
-
24
- def writer ; @writer ||= STDERR ; end
25
- def level ; @level ||= WARN ; end
26
-
27
- def debug(msg) ; log(DEBUG, msg) ; end
28
- def info(msg) ; log(INFO, msg) ; end
29
- def warn(msg) ; log(WARN, msg) ; end
30
- def error(msg) ; log(ERROR, msg) ; end
31
- end
32
- end
data/lib/fraggle/meta.rb DELETED
@@ -1,9 +0,0 @@
1
- class Object
2
- def metaclass
3
- (class << self ; self ; end)
4
- end
5
-
6
- def metadef(name, &blk)
7
- metaclass.__send__(:define_method, name, &blk)
8
- end
9
- end
data/lib/fraggle/msg.rb DELETED
@@ -1,77 +0,0 @@
1
- require 'beefcake'
2
-
3
- module Fraggle
4
-
5
- class Request
6
- include Beefcake::Message
7
-
8
- required :tag, :int32, 1
9
-
10
- module Verb
11
- CHECKIN = 0; # rev, id => rev
12
- GET = 1; # path, id => rev, value
13
- SET = 2; # rev, path, value => rev
14
- DEL = 3; # rev, path => {}
15
- ESET = 4; # rev, path => {}
16
- REV = 5; # {} => seqn, id
17
- NOOP = 7; # {} => {}
18
- WATCH = 8; # path => {rev, path, value}+
19
- CANCEL = 10; # id => {}
20
- STAT = 16; # path, id => rev, len
21
-
22
- # future
23
- GETDIR = 14; # path => {rev, value}+
24
- MONITOR = 11; # path => {rev, path, value}+
25
- SYNCPATH = 12; # path => rev, value
26
- WALK = 9; # path, id => {rev, path, value}+
27
-
28
- # deprecated
29
- JOIN = 13;
30
- end
31
-
32
- required :verb, Verb, 2
33
-
34
- optional :path, :string, 4
35
- optional :value, :bytes, 5
36
- optional :id, :int32, 6
37
-
38
- optional :offset, :int32, 7
39
- optional :limit, :int32, 8
40
-
41
- optional :rev, :int64, 9
42
- end
43
-
44
-
45
- class Response
46
- include Beefcake::Message
47
-
48
- required :tag, :uint32, 1
49
- required :flags, :int32, 2
50
-
51
- optional :rev, :int64, 3
52
- optional :cas, :int64, 4
53
- optional :path, :string, 5
54
- optional :value, :bytes, 6
55
- optional :id, :int32, 7
56
- optional :len, :int32, 8
57
-
58
- module Err
59
- # don't use value 0
60
- OTHER = 127
61
- TAG_IN_USE = 1
62
- UNKNOWN_VERB = 2
63
- REDIRECT = 3
64
- TOO_LATE = 4
65
- CAS_MISMATCH = 5
66
-
67
- # match unix errno
68
- NOTDIR = 20
69
- ISDIR = 21
70
- NOINT = 22
71
- end
72
-
73
- optional :err_code, Err, 100
74
- optional :err_detail, :string, 101
75
- end
76
-
77
- end
@@ -1,43 +0,0 @@
1
- require 'fraggle/response'
2
-
3
- module Fraggle
4
-
5
- module Protocol
6
-
7
- attr_reader :last_received
8
-
9
- def receive_data(data)
10
- @last_received = Time.now
11
-
12
- (@buf ||= "") << data
13
-
14
- while @buf.length > 0
15
- if @len && @buf.length >= @len
16
- bytes = @buf.slice!(0, @len)
17
- @len = nil
18
- res = Response.decode(bytes)
19
- receive_response(res)
20
- elsif @buf.length >= 4
21
- bytes = @buf.slice!(0, 4)
22
- @len = bytes.unpack("N")[0]
23
- else
24
- break
25
- end
26
- end
27
- end
28
-
29
- # The default receive_response
30
- def receive_response(res)
31
- p res
32
- end
33
-
34
- def send_request(req)
35
- data = req.encode
36
- head = [data.length].pack("N")
37
-
38
- send_data("#{head}#{data}")
39
- end
40
-
41
- end
42
-
43
- end
data/lib/fraggle/test.rb DELETED
@@ -1,72 +0,0 @@
1
- require 'fraggle/request'
2
- require 'fraggle/response'
3
-
4
- module Fraggle
5
-
6
- ##
7
- # I want this to be a great starting point for testing fraggle applications.
8
- # It's currently a work in progress. Think Rack::Test for fraggle.
9
- #
10
- module Test
11
-
12
- V = Fraggle::Request::Verb
13
- F = Fraggle::Response::Flag
14
- E = Fraggle::Response::Err
15
-
16
-
17
- class TestClient < Array
18
- include Fraggle::Client
19
- alias :send_request :<<
20
- end
21
-
22
-
23
- # This is handy for testing callbacks
24
- class Blk < Array
25
- def to_proc
26
- Proc.new {|res| self << res }
27
- end
28
- end
29
-
30
-
31
- def assert_sent(tag, attrs={})
32
- req = Fraggle::Request.new(attrs)
33
- req.tag = tag
34
-
35
- msg = "This was not sent:\n"
36
- msg << " #{req.inspect}\n"
37
- msg << "Sent:\n "
38
- msg << c.map {|r| r.inspect }.join("\n ")
39
- msg << "\n"
40
-
41
- assert_block(msg) { c.include?(req) }
42
- end
43
-
44
- def assert_recv(attrs)
45
- req = Fraggle::Response.new(attrs)
46
- msg = "This was not recieved:\n"
47
- msg << " #{req.inspect}\n"
48
- msg << "Received:\n "
49
- msg << blk.map {|r| r.inspect }.join("\n ")
50
- msg << "\n"
51
-
52
- assert_block(msg) { blk.include?(attrs) }
53
- end
54
-
55
- # Replies with a valid response
56
- def reply(tag, attrs={})
57
- res = Fraggle::Response.new(attrs)
58
- res.tag = tag
59
- res.flags ||= 0
60
- res.flags |= Fraggle::Response::Flag::VALID
61
- c.receive_response(res)
62
- res
63
- end
64
-
65
- # Replies with a valid + done response
66
- def reply!(tag, attrs={})
67
- reply(tag, attrs.merge(:flags => Fraggle::Response::Flag::DONE))
68
- end
69
-
70
- end
71
-
72
- end