thrifty-bunny 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5992b16b439065274e52b44230cc0c58d52c65b7
4
- data.tar.gz: 69050ac8af6876f408b1d985f3a0cb8148c379c0
3
+ metadata.gz: afc0cfa4351b9c951f34dd900bf68be502a346c9
4
+ data.tar.gz: 6d8488899ba2e362152f06c2dddba845e4aa0a71
5
5
  SHA512:
6
- metadata.gz: 83ca6bff1660815814706532e698afd88fff307ef8410657714a6284de14bc4d984fd94675cca58cda5e215498469c93fa5b18e4c70faab2aaf98c96caf12c56
7
- data.tar.gz: 5b428709190ca727626111340c0fcaa7aa5232504664c77f62738d477b42c090f4c06e8dd34320a7dbdb59d09d8757118dcce4be66a1d0531905eacc28c25c99
6
+ metadata.gz: 598b2b4cb8347215d838d2f42a9f878accde86b922dc62f340b8b14cfe8cad01271d4c3109b23bd5af8c003cc66b27d665dd5f8fc0f93e74ef9bcb71b67b9c35
7
+ data.tar.gz: 3488a12679385b6c25e7c52d38c79272964078f920bda0b78d1b6816fb029841a3c0bca92653a1db56fac932e2a525fcf2f056c3894c7d79574ceea2c318a9c9
@@ -0,0 +1,54 @@
1
+ #!/usr/bin/env ruby
2
+ require_relative '../client'
3
+
4
+ class ClientCli
5
+
6
+ attr_reader :client
7
+
8
+ def initialize(client)
9
+ @client = client
10
+ end
11
+
12
+ def say_hello
13
+ print "Say Hello: What is your name? "
14
+ input = gets.strip
15
+ puts client.say_hello(input)
16
+ end
17
+
18
+ def add
19
+ print "Add: What is the first value? "
20
+ value1 = gets.strip.to_i
21
+ print "Add: What is the second value? "
22
+ value2 = gets.strip.to_i
23
+ puts client.add(value1, value2)
24
+ end
25
+
26
+ def divide
27
+ print "Divide: What is the dividend? "
28
+ dividend = gets.strip.to_i
29
+ print "Add: What is the divisor? "
30
+ divisor = gets.strip.to_i
31
+ puts client.divide(dividend, divisor)
32
+ end
33
+
34
+ def ping
35
+ print "Send ping?"
36
+ input = gets.strip
37
+ if input =~ /^y/i
38
+ client.ping
39
+ puts "Success!"
40
+ end
41
+ end
42
+ end
43
+
44
+ transport = ThriftyBunny::ClientTransport.new
45
+ protocol = Thrift::BinaryProtocol.new(transport)
46
+ client = Calculator::Client.new(protocol)
47
+ client_cli = ClientCli.new(client)
48
+
49
+ loop do
50
+ client_cli.add
51
+ client_cli.say_hello
52
+ client_cli.ping
53
+ client_cli.divide
54
+ end
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env ruby
2
+ require_relative '../server'
3
+
4
+ server = Calculator::Server.new
5
+ puts "Starting server ..."
6
+ server.serve
7
+ puts "Done."
@@ -0,0 +1,240 @@
1
+ #
2
+ # Autogenerated by Thrift Compiler (0.9.1)
3
+ #
4
+ # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
5
+ #
6
+
7
+ require 'thrift'
8
+
9
+ module CalculatorService
10
+ class Client
11
+ include ::Thrift::Client
12
+
13
+ def say_hello(name)
14
+ send_say_hello(name)
15
+ return recv_say_hello()
16
+ end
17
+
18
+ def send_say_hello(name)
19
+ send_message('say_hello', Say_hello_args, :name => name)
20
+ end
21
+
22
+ def recv_say_hello()
23
+ result = receive_message(Say_hello_result)
24
+ return result.success unless result.success.nil?
25
+ raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'say_hello failed: unknown result')
26
+ end
27
+
28
+ def add(value1, value2)
29
+ send_add(value1, value2)
30
+ return recv_add()
31
+ end
32
+
33
+ def send_add(value1, value2)
34
+ send_message('add', Add_args, :value1 => value1, :value2 => value2)
35
+ end
36
+
37
+ def recv_add()
38
+ result = receive_message(Add_result)
39
+ return result.success unless result.success.nil?
40
+ raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'add failed: unknown result')
41
+ end
42
+
43
+ def divide(dividend, divisor)
44
+ send_divide(dividend, divisor)
45
+ return recv_divide()
46
+ end
47
+
48
+ def send_divide(dividend, divisor)
49
+ send_message('divide', Divide_args, :dividend => dividend, :divisor => divisor)
50
+ end
51
+
52
+ def recv_divide()
53
+ result = receive_message(Divide_result)
54
+ return result.success unless result.success.nil?
55
+ raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'divide failed: unknown result')
56
+ end
57
+
58
+ def ping()
59
+ send_ping()
60
+ recv_ping()
61
+ end
62
+
63
+ def send_ping()
64
+ send_message('ping', Ping_args)
65
+ end
66
+
67
+ def recv_ping()
68
+ result = receive_message(Ping_result)
69
+ return
70
+ end
71
+
72
+ end
73
+
74
+ class Processor
75
+ include ::Thrift::Processor
76
+
77
+ def process_say_hello(seqid, iprot, oprot)
78
+ args = read_args(iprot, Say_hello_args)
79
+ result = Say_hello_result.new()
80
+ result.success = @handler.say_hello(args.name)
81
+ write_result(result, oprot, 'say_hello', seqid)
82
+ end
83
+
84
+ def process_add(seqid, iprot, oprot)
85
+ args = read_args(iprot, Add_args)
86
+ result = Add_result.new()
87
+ result.success = @handler.add(args.value1, args.value2)
88
+ write_result(result, oprot, 'add', seqid)
89
+ end
90
+
91
+ def process_divide(seqid, iprot, oprot)
92
+ args = read_args(iprot, Divide_args)
93
+ result = Divide_result.new()
94
+ result.success = @handler.divide(args.dividend, args.divisor)
95
+ write_result(result, oprot, 'divide', seqid)
96
+ end
97
+
98
+ def process_ping(seqid, iprot, oprot)
99
+ args = read_args(iprot, Ping_args)
100
+ result = Ping_result.new()
101
+ @handler.ping()
102
+ write_result(result, oprot, 'ping', seqid)
103
+ end
104
+
105
+ end
106
+
107
+ # HELPER FUNCTIONS AND STRUCTURES
108
+
109
+ class Say_hello_args
110
+ include ::Thrift::Struct, ::Thrift::Struct_Union
111
+ NAME = 1
112
+
113
+ FIELDS = {
114
+ NAME => {:type => ::Thrift::Types::STRING, :name => 'name'}
115
+ }
116
+
117
+ def struct_fields; FIELDS; end
118
+
119
+ def validate
120
+ end
121
+
122
+ ::Thrift::Struct.generate_accessors self
123
+ end
124
+
125
+ class Say_hello_result
126
+ include ::Thrift::Struct, ::Thrift::Struct_Union
127
+ SUCCESS = 0
128
+
129
+ FIELDS = {
130
+ SUCCESS => {:type => ::Thrift::Types::STRING, :name => 'success'}
131
+ }
132
+
133
+ def struct_fields; FIELDS; end
134
+
135
+ def validate
136
+ end
137
+
138
+ ::Thrift::Struct.generate_accessors self
139
+ end
140
+
141
+ class Add_args
142
+ include ::Thrift::Struct, ::Thrift::Struct_Union
143
+ VALUE1 = 1
144
+ VALUE2 = 2
145
+
146
+ FIELDS = {
147
+ VALUE1 => {:type => ::Thrift::Types::I32, :name => 'value1'},
148
+ VALUE2 => {:type => ::Thrift::Types::I32, :name => 'value2'}
149
+ }
150
+
151
+ def struct_fields; FIELDS; end
152
+
153
+ def validate
154
+ end
155
+
156
+ ::Thrift::Struct.generate_accessors self
157
+ end
158
+
159
+ class Add_result
160
+ include ::Thrift::Struct, ::Thrift::Struct_Union
161
+ SUCCESS = 0
162
+
163
+ FIELDS = {
164
+ SUCCESS => {:type => ::Thrift::Types::I32, :name => 'success'}
165
+ }
166
+
167
+ def struct_fields; FIELDS; end
168
+
169
+ def validate
170
+ end
171
+
172
+ ::Thrift::Struct.generate_accessors self
173
+ end
174
+
175
+ class Divide_args
176
+ include ::Thrift::Struct, ::Thrift::Struct_Union
177
+ DIVIDEND = 1
178
+ DIVISOR = 2
179
+
180
+ FIELDS = {
181
+ DIVIDEND => {:type => ::Thrift::Types::I32, :name => 'dividend'},
182
+ DIVISOR => {:type => ::Thrift::Types::I32, :name => 'divisor'}
183
+ }
184
+
185
+ def struct_fields; FIELDS; end
186
+
187
+ def validate
188
+ end
189
+
190
+ ::Thrift::Struct.generate_accessors self
191
+ end
192
+
193
+ class Divide_result
194
+ include ::Thrift::Struct, ::Thrift::Struct_Union
195
+ SUCCESS = 0
196
+
197
+ FIELDS = {
198
+ SUCCESS => {:type => ::Thrift::Types::DOUBLE, :name => 'success'}
199
+ }
200
+
201
+ def struct_fields; FIELDS; end
202
+
203
+ def validate
204
+ end
205
+
206
+ ::Thrift::Struct.generate_accessors self
207
+ end
208
+
209
+ class Ping_args
210
+ include ::Thrift::Struct, ::Thrift::Struct_Union
211
+
212
+ FIELDS = {
213
+
214
+ }
215
+
216
+ def struct_fields; FIELDS; end
217
+
218
+ def validate
219
+ end
220
+
221
+ ::Thrift::Struct.generate_accessors self
222
+ end
223
+
224
+ class Ping_result
225
+ include ::Thrift::Struct, ::Thrift::Struct_Union
226
+
227
+ FIELDS = {
228
+
229
+ }
230
+
231
+ def struct_fields; FIELDS; end
232
+
233
+ def validate
234
+ end
235
+
236
+ ::Thrift::Struct.generate_accessors self
237
+ end
238
+
239
+ end
240
+
@@ -0,0 +1,6 @@
1
+ service CalculatorService {
2
+ string say_hello(1: string name),
3
+ i32 add(1: i32 value1, 2: i32 value2),
4
+ double divide(1: i32 dividend, 2: i32 divisor),
5
+ void ping()
6
+ }
@@ -1,34 +1,34 @@
1
1
  require 'thrifty_bunny'
2
- require_relative 'hello_service/hello_service'
3
-
4
- module HelloThrift
5
-
6
- class Client # < HelloService::Client
7
-
8
- def initialize(options={})
9
- @transport = ThriftyBunny::ClientTransport.new
10
- protocol = Thrift::BinaryProtocol.new(@transport)
11
- @client = HelloService::Client.new(protocol)
12
- end
13
-
14
- def say_hello(name)
15
- safe_transport do
16
- @client.say_hello(name)
17
- end
18
- end
19
-
20
- private
21
-
22
- def safe_transport
23
- begin
24
- @transport.open
25
- return yield
26
- rescue ThriftyBunny::ResponseTimeout => e
27
- puts e
28
- ensure
29
- @transport.close
30
- end
31
- end
2
+ require_relative 'calculator_service'
3
+
4
+ module Calculator
5
+
6
+ class Client < CalculatorService::Client
7
+
8
+ # def initialize(options={})
9
+ # @transport = ThriftyBunny::ClientTransport.new
10
+ # protocol = Thrift::BinaryProtocol.new(@transport)
11
+ # @client = CalculatorService::Client.new(protocol)
12
+ # end
13
+
14
+ # def say_hello(name)
15
+ # safe_transport do
16
+ # @client.say_hello(name)
17
+ # end
18
+ # end
19
+
20
+ # private
21
+
22
+ # def safe_transport
23
+ # begin
24
+ # @transport.open
25
+ # return yield
26
+ # rescue ThriftyBunny::ResponseTimeout => e
27
+ # puts e
28
+ # ensure
29
+ # @transport.close
30
+ # end
31
+ # end
32
32
 
33
33
  # def send_message(name, args_class, args = {})
34
34
  # @oprot.write_message_begin(name, Thrift::MessageTypes::CALL, @seqid)
@@ -1,13 +1,22 @@
1
1
  require 'thrifty_bunny'
2
- require_relative 'hello_service/hello_service'
2
+ require_relative 'calculator_service'
3
3
 
4
- module HelloThrift
4
+ module Calculator
5
5
 
6
6
  class Handler
7
7
  def say_hello(name)
8
8
  puts "Saying hello to #{name}"
9
9
  "Hello, #{name} from Thrift!"
10
10
  end
11
+ def add(value1, value2)
12
+ value1 + value2
13
+ end
14
+ def divide(dividend, divisor)
15
+ dividend / divisor
16
+ end
17
+
18
+ def ping
19
+ end
11
20
  end
12
21
 
13
22
  class Server
@@ -15,12 +24,12 @@ module HelloThrift
15
24
 
16
25
  def initialize(options={})
17
26
  handler = Handler.new
18
- processor = HelloService::Processor.new(handler)
27
+ processor = CalculatorService::Processor.new(handler)
19
28
  @service = ThriftyBunny::RpcServer.new(processor)
20
29
  end
21
30
 
22
31
  def serve
23
- service.serve
32
+ service.serve(log_messages: true)
24
33
  end
25
34
  end
26
35
 
@@ -1,3 +1,3 @@
1
1
  module ThriftyBunny
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: thrifty-bunny
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bill Siggelkow
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-30 00:00:00.000000000 Z
11
+ date: 2014-11-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -134,14 +134,12 @@ files:
134
134
  - LICENSE.txt
135
135
  - README.md
136
136
  - Rakefile
137
- - examples/bin/client.start
138
- - examples/bin/server.start
139
- - examples/hello_thrift/client.rb
140
- - examples/hello_thrift/hello_service/hello_service.rb
141
- - examples/hello_thrift/hello_service/hello_service_constants.rb
142
- - examples/hello_thrift/hello_service/hello_service_types.rb
143
- - examples/hello_thrift/server.rb
144
- - examples/hello_thrift/version.rb
137
+ - examples/calculator/bin/client.start
138
+ - examples/calculator/bin/server.start
139
+ - examples/calculator/calculator_service.rb
140
+ - examples/calculator/calculator_service.thrift
141
+ - examples/calculator/client.rb
142
+ - examples/calculator/server.rb
145
143
  - lib/thrifty_bunny.rb
146
144
  - lib/thrifty_bunny/client_transport.rb
147
145
  - lib/thrifty_bunny/config.rb
@@ -1,14 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require_relative '../hello_thrift/client'
3
-
4
- # transport = ThriftyBunny::ClientTransport.new
5
- # protocol = Thrift::BinaryProtocol.new(transport)
6
- # client = HelloThrift::Client.new(protocol)
7
- # client = HelloThrift::Client.new
8
-
9
- loop do
10
- print "What is your name? "
11
- input = gets.strip
12
- break if input == 'quit'
13
- puts HelloThrift::Client.new.say_hello(input)
14
- end
@@ -1,7 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require_relative '../hello_thrift/server'
3
-
4
- server = HelloThrift::Server.new
5
- puts "Starting server ..."
6
- server.serve
7
- puts "Done."
@@ -1,78 +0,0 @@
1
- #
2
- # Autogenerated by Thrift Compiler (0.9.1)
3
- #
4
- # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
5
- #
6
-
7
- require 'thrift'
8
- require_relative 'hello_service_types'
9
-
10
- module HelloService
11
- class Client
12
- include ::Thrift::Client
13
-
14
- def say_hello(name)
15
- send_say_hello(name)
16
- return recv_say_hello()
17
- end
18
-
19
- def send_say_hello(name)
20
- send_message('say_hello', Say_hello_args, :name => name)
21
- end
22
-
23
- def recv_say_hello()
24
- result = receive_message(Say_hello_result)
25
- return result.success unless result.success.nil?
26
- raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'say_hello failed: unknown result')
27
- end
28
-
29
- end
30
-
31
- class Processor
32
- include ::Thrift::Processor
33
-
34
- def process_say_hello(seqid, iprot, oprot)
35
- args = read_args(iprot, Say_hello_args)
36
- result = Say_hello_result.new()
37
- result.success = @handler.say_hello(args.name)
38
- write_result(result, oprot, 'say_hello', seqid)
39
- end
40
-
41
- end
42
-
43
- # HELPER FUNCTIONS AND STRUCTURES
44
-
45
- class Say_hello_args
46
- include ::Thrift::Struct, ::Thrift::Struct_Union
47
- NAME = 1
48
-
49
- FIELDS = {
50
- NAME => {:type => ::Thrift::Types::STRING, :name => 'name'}
51
- }
52
-
53
- def struct_fields; FIELDS; end
54
-
55
- def validate
56
- end
57
-
58
- ::Thrift::Struct.generate_accessors self
59
- end
60
-
61
- class Say_hello_result
62
- include ::Thrift::Struct, ::Thrift::Struct_Union
63
- SUCCESS = 0
64
-
65
- FIELDS = {
66
- SUCCESS => {:type => ::Thrift::Types::STRING, :name => 'success'}
67
- }
68
-
69
- def struct_fields; FIELDS; end
70
-
71
- def validate
72
- end
73
-
74
- ::Thrift::Struct.generate_accessors self
75
- end
76
-
77
- end
78
-
@@ -1,9 +0,0 @@
1
- #
2
- # Autogenerated by Thrift Compiler (0.9.1)
3
- #
4
- # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
5
- #
6
-
7
- require 'thrift'
8
- require 'hello_service_types'
9
-
@@ -1,8 +0,0 @@
1
- #
2
- # Autogenerated by Thrift Compiler (0.9.1)
3
- #
4
- # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
5
- #
6
-
7
- require 'thrift'
8
-
@@ -1,3 +0,0 @@
1
- module HelloThrift
2
- VERSION = "0.0.3"
3
- end