converse 1.0.12 → 1.0.15

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,34 @@
1
+ require "converse/broker"
2
+
3
+ module Converse
4
+ class RESTBroker < Broker
5
+ attr_accessor :peer_host_and_port
6
+ attr_accessor :username
7
+ attr_accessor :password
8
+
9
+ def broker_conversation(topic)
10
+ conversation = HTMLConversation.new(topic)
11
+ conversation.username = @username if @username.nil? == false
12
+ conversation.password = @password if @password.nil? == false
13
+ conversation
14
+ end
15
+
16
+ def open_topic(concern, action)
17
+ if (concern.nil? == true or concern == "")
18
+ "http://#{@peer_host_and_port}/#{action}"
19
+ else
20
+ "http://#{@peer_host_and_port}/#{concern}/#{action}"
21
+ end
22
+ end
23
+
24
+ def authenticated_by(username)
25
+ @username = username
26
+ self
27
+ end
28
+
29
+ def with_password(password)
30
+ @password = password
31
+ self
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,58 @@
1
+ require 'cgi'
2
+ require "converse/interaction"
3
+
4
+ module Converse
5
+ class RESTInteraction < Interaction
6
+ protected
7
+
8
+ def ask_broker_about(broker, action, substance)
9
+ ask_broker_concerning(broker, "")
10
+ about(action)
11
+ detailed_by(substance)
12
+ end
13
+
14
+ def tell_broker_to(broker, action, substance)
15
+ tell_broker_concerning(broker, "")
16
+ about(action)
17
+ detailed_by(substance)
18
+ end
19
+
20
+ def ask
21
+ @conversation.ask(path_with_params(@conversation.path, @substance))
22
+ end
23
+
24
+ def say
25
+ @conversation.say(@conversation.path, compile_params(@substance))
26
+ end
27
+
28
+ def compile_params(params)
29
+ params.map {|k,v| CGI.escape(k.to_s)+'='+CGI.escape(v.to_s) }.join("&")
30
+ end
31
+
32
+ def path_with_params(path, params)
33
+ return path if params.empty?
34
+ path + "?" + compile_params(params)
35
+ end
36
+
37
+ def response_ok?(response)
38
+ test_value = "#{response.code}"
39
+ return test_value == "200"
40
+ end
41
+ end
42
+
43
+ def interpret_conversation(response)
44
+ format_error(response) if not response_ok?(response)
45
+ return format_response(response.body)
46
+ end
47
+
48
+ def format_error(response)
49
+ result = []
50
+ result << response.code
51
+ result << response.body
52
+ return result
53
+ end
54
+
55
+ def format_response(response_body)
56
+ response_body
57
+ end
58
+ end
@@ -1,3 +1,3 @@
1
1
  module Converse
2
- VERSION = "1.0.12"
2
+ VERSION = "1.0.15"
3
3
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: converse
3
3
  version: !ruby/object:Gem::Version
4
- hash: 15
4
+ hash: 9
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
8
  - 0
9
- - 12
10
- version: 1.0.12
9
+ - 15
10
+ version: 1.0.15
11
11
  platform: ruby
12
12
  authors:
13
13
  - Ernst van Graan
@@ -48,6 +48,8 @@ files:
48
48
  - lib/converse/comms/mysql/mysql_conversation.rb
49
49
  - lib/converse/comms/simple_logger.rb
50
50
  - lib/converse/interaction.rb
51
+ - lib/converse/rest/rest_broker.rb
52
+ - lib/converse/rest/rest_interaction.rb
51
53
  - lib/converse/version.rb
52
54
  homepage: ""
53
55
  licenses: []