web_methods 0.0.1 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/web_methods/html_parser.rb +8 -5
- data/lib/web_methods/server.rb +23 -10
- metadata +12 -2
@@ -9,9 +9,14 @@ module WebMethods
|
|
9
9
|
def parse
|
10
10
|
table_to_hash @doc.css('body > table')
|
11
11
|
end
|
12
|
-
private
|
12
|
+
private
|
13
|
+
def convert_table table
|
14
|
+
return nil if table.children.length == 0
|
15
|
+
array?(table) ? table_to_array(table) : table_to_hash(table)
|
16
|
+
end
|
17
|
+
|
13
18
|
def array? table
|
14
|
-
table.
|
19
|
+
table.at('tr').xpath('td').length == 1
|
15
20
|
end
|
16
21
|
|
17
22
|
def table_to_array table
|
@@ -37,7 +42,7 @@ private
|
|
37
42
|
if tds.length == 2
|
38
43
|
if tds[1].at('table')
|
39
44
|
child_table = tds[1].at('table')
|
40
|
-
out[tds[0].inner_text] =
|
45
|
+
out[tds[0].inner_text] = convert_table(child_table)
|
41
46
|
else
|
42
47
|
out[tds[0].inner_text] = tds[1].inner_text
|
43
48
|
end
|
@@ -45,7 +50,5 @@ private
|
|
45
50
|
end
|
46
51
|
out
|
47
52
|
end
|
48
|
-
|
49
|
-
|
50
53
|
end
|
51
54
|
end
|
data/lib/web_methods/server.rb
CHANGED
@@ -1,18 +1,31 @@
|
|
1
1
|
require 'net/http'
|
2
2
|
require 'web_methods/html_parser'
|
3
|
+
require 'log4r'
|
3
4
|
|
4
5
|
module WebMethods
|
5
|
-
class Server
|
6
|
-
|
7
|
-
|
8
|
-
|
6
|
+
class Server
|
7
|
+
attr_reader :logger
|
8
|
+
|
9
|
+
def initialize host, port, username, password
|
10
|
+
@host, @port, @username, @password = host, port, username, password
|
11
|
+
@logger = Log4r::Logger.new("WebMethods::Server")
|
12
|
+
end
|
9
13
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
14
|
+
def invoke package, service, params
|
15
|
+
@logger.debug "Connecting to #{@host}:#{@port}"
|
16
|
+
res = Net::HTTP.start(@host, @port) do |http|
|
17
|
+
url = "/invoke/#{package}/#{service}?#{params.map{|k,v|"#{k}=#{v}"}.join('&')}"
|
18
|
+
@logger.debug "Sending request to #{url}"
|
19
|
+
req = Net::HTTP::Get.new(url)
|
20
|
+
req.basic_auth @username, @password
|
21
|
+
response = http.request(req)
|
22
|
+
@logger.debug "Received response: #{response}"
|
23
|
+
body = response.body
|
24
|
+
@logger.debug "Body was:\n#{body}"
|
25
|
+
hash = HtmlParser.new(body).parse
|
26
|
+
@logger.debug "Parsed to #{hash.inspect}"
|
27
|
+
hash
|
28
|
+
end
|
15
29
|
end
|
16
30
|
end
|
17
31
|
end
|
18
|
-
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: web_methods
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mark Ryall
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date:
|
12
|
+
date: 2010-01-25 00:00:00 +11:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -22,6 +22,16 @@ dependencies:
|
|
22
22
|
- !ruby/object:Gem::Version
|
23
23
|
version: 1.4.0
|
24
24
|
version:
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: log4r
|
27
|
+
type: :runtime
|
28
|
+
version_requirement:
|
29
|
+
version_requirements: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ~>
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 1.1.2
|
34
|
+
version:
|
25
35
|
description: |
|
26
36
|
Some classes for encapsulating interaction with an instance of webMethods Integration Server
|
27
37
|
|