fraggle 0.4.0 → 1.0.0pre

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.
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