directories_interface 0.0.1 → 0.0.2
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.
- data/lib/directories_interface/communication.rb +10 -10
- data/lib/directories_interface/directories_interface_wrapper.rb +58 -58
- data/lib/directories_interface/version.rb +1 -1
- data/lib/directories_interface/xml_parser.rb +67 -67
- data/lib/directories_interface.rb +7 -7
- data/spec/directories_interface/directories_interface_wrapper_spec.rb +36 -36
- data/spec/spec_helper.rb +16 -16
- metadata +14 -36
- data/spec/directories_interface/xml_parser_spec.rb +0 -12
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
module DirectoriesInterface
|
|
2
|
-
|
|
3
|
-
class Communication
|
|
4
|
-
attr_accessor :type, :number
|
|
5
|
-
|
|
6
|
-
def to_s
|
|
7
|
-
"type => #{type}, number => #{number}"
|
|
8
|
-
end
|
|
9
|
-
end
|
|
10
|
-
|
|
1
|
+
module DirectoriesInterface
|
|
2
|
+
|
|
3
|
+
class Communication
|
|
4
|
+
attr_accessor :type, :number
|
|
5
|
+
|
|
6
|
+
def to_s
|
|
7
|
+
"type => #{type}, number => #{number}"
|
|
8
|
+
end
|
|
9
|
+
end
|
|
10
|
+
|
|
11
11
|
end
|
|
@@ -1,59 +1,59 @@
|
|
|
1
|
-
module DirectoriesInterface
|
|
2
|
-
|
|
3
|
-
class DirectoriesInterfaceWrapper
|
|
4
|
-
|
|
5
|
-
def initialize
|
|
6
|
-
# SETUP WEB SERVICES
|
|
7
|
-
@login = Savon::Client.new do
|
|
8
|
-
wsdl.document = "https://secure.directories.ch/administration/v4/security.asmx?WSDL"
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
@client = Savon::Client.new do
|
|
12
|
-
wsdl.document = "http://service.directories.ch/search/v4/searchaddress.asmx?WSDL"
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
@login.http.auth.ssl.verify_mode = :none
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
#returns a sessionID
|
|
19
|
-
def login(username,password,service_id)
|
|
20
|
-
soap_login_response = @login.request "Login", :xmlns => "urn:directories/administration/v4/security" do
|
|
21
|
-
http.headers["SOAPAction"] = '"urn:directories/administration/v4/security/Login"'
|
|
22
|
-
soap.body = '<loginParam>' + XmlParser.generate_login_xml(:username=> username, :password=>password, :service_id=>service_id)+'</loginParam>'
|
|
23
|
-
end
|
|
24
|
-
login_response = XmlParser.extract_login_response(soap_login_response.to_hash[:login_response][:login_result])
|
|
25
|
-
XmlParser.extract_session_id(login_response) if result_available login_response
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
#returns a search result as XML. auth = [ServiceID,SessionID], person = [
|
|
29
|
-
def search_address(service_id,session_id, person)
|
|
30
|
-
result = @client.request "SearchAddress", :xmlns =>"urn:directories/search/v4/searchaddress" do
|
|
31
|
-
http.headers["SOAPAction"] = '"urn:directories/search/v4/searchaddress/SearchAddress"'
|
|
32
|
-
soap.body = "<addressParam>" + XmlParser.generate_search_xml(service_id,session_id,person) + "</addressParam>"
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
numbers = nil
|
|
36
|
-
|
|
37
|
-
if result.success?
|
|
38
|
-
result_xml = XmlParser.extract_search_result(result.to_hash[:search_address_response][:search_address_result])
|
|
39
|
-
if result_available result_xml
|
|
40
|
-
if XmlParser.count_matches(result_xml) == "1"
|
|
41
|
-
numbers = XmlParser.extract_services(result_xml)
|
|
42
|
-
end
|
|
43
|
-
end
|
|
44
|
-
end
|
|
45
|
-
numbers
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
def result_available(result_xml)
|
|
49
|
-
error_code = XmlParser.extract_error_code(result_xml)
|
|
50
|
-
case error_code
|
|
51
|
-
when "200" then false
|
|
52
|
-
when "0" then true
|
|
53
|
-
else raise "Service has error: #{error_code}"
|
|
54
|
-
end
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
end
|
|
58
|
-
|
|
1
|
+
module DirectoriesInterface
|
|
2
|
+
|
|
3
|
+
class DirectoriesInterfaceWrapper
|
|
4
|
+
|
|
5
|
+
def initialize
|
|
6
|
+
# SETUP WEB SERVICES
|
|
7
|
+
@login = Savon::Client.new do
|
|
8
|
+
wsdl.document = "https://secure.directories.ch/administration/v4/security.asmx?WSDL"
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
@client = Savon::Client.new do
|
|
12
|
+
wsdl.document = "http://service.directories.ch/search/v4/searchaddress.asmx?WSDL"
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
@login.http.auth.ssl.verify_mode = :none
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
#returns a sessionID
|
|
19
|
+
def login(username, password, service_id)
|
|
20
|
+
soap_login_response = @login.request "Login", :xmlns => "urn:directories/administration/v4/security" do
|
|
21
|
+
http.headers["SOAPAction"] = '"urn:directories/administration/v4/security/Login"'
|
|
22
|
+
soap.body = '<loginParam>' + XmlParser.generate_login_xml(:username=> username, :password=>password, :service_id=>service_id) + '</loginParam>'
|
|
23
|
+
end
|
|
24
|
+
login_response = XmlParser.extract_login_response(soap_login_response.to_hash[:login_response][:login_result])
|
|
25
|
+
XmlParser.extract_session_id(login_response) if result_available login_response
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
#returns a search result as XML. auth = [ServiceID,SessionID], person = [lastname, firstname, city]
|
|
29
|
+
def search_address(service_id, session_id, person)
|
|
30
|
+
result = @client.request "SearchAddress", :xmlns =>"urn:directories/search/v4/searchaddress" do
|
|
31
|
+
http.headers["SOAPAction"] = '"urn:directories/search/v4/searchaddress/SearchAddress"'
|
|
32
|
+
soap.body = "<addressParam>" + XmlParser.generate_search_xml(service_id, session_id, person) + "</addressParam>"
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
numbers = nil
|
|
36
|
+
|
|
37
|
+
if result.success?
|
|
38
|
+
result_xml = XmlParser.extract_search_result(result.to_hash[:search_address_response][:search_address_result])
|
|
39
|
+
if result_available result_xml
|
|
40
|
+
if XmlParser.count_matches(result_xml) == "1"
|
|
41
|
+
numbers = XmlParser.extract_services(result_xml)
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
numbers
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def result_available(result_xml)
|
|
49
|
+
error_code = XmlParser.extract_error_code(result_xml)
|
|
50
|
+
case error_code
|
|
51
|
+
when "200" then false
|
|
52
|
+
when "0" then true
|
|
53
|
+
else raise "Service has error: #{error_code}"
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
end
|
|
58
|
+
|
|
59
59
|
end
|
|
@@ -1,67 +1,67 @@
|
|
|
1
|
-
module DirectoriesInterface
|
|
2
|
-
|
|
3
|
-
class XmlParser
|
|
4
|
-
def initialize
|
|
5
|
-
|
|
6
|
-
end
|
|
7
|
-
|
|
8
|
-
def self.generate_login_xml(attr)
|
|
9
|
-
res=Nokogiri::XML::Builder.new do |xml|
|
|
10
|
-
xml.LoginParam(:ServiceId=>attr[:service_id], :UserName=>attr[:username], :Password=>attr[:password])
|
|
11
|
-
end
|
|
12
|
-
res.to_xml.to_s.gsub(/\n/,"").encode(:xml => :text)
|
|
13
|
-
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
def self.generate_search_xml(service_id,session_id,person)
|
|
17
|
-
res = Nokogiri::XML::Builder.new do |xml|
|
|
18
|
-
xml.AddressParam {
|
|
19
|
-
xml.Authentication(:ServiceId=>service_id, :SessionId=>session_id)
|
|
20
|
-
xml.Paging(:StartAtIndex=>"1", :FinishAtIndex=>"5")
|
|
21
|
-
xml.LastName(:Value=>person[:
|
|
22
|
-
xml.FirstName(:Value=>person[:
|
|
23
|
-
xml.StreetHouseNo(:Value=>person[:address], :Phonetic=>"1") if person.has_key?(:address)
|
|
24
|
-
xml.Location(:Value=>person[:
|
|
25
|
-
xml.TypeCode "ALL"
|
|
26
|
-
}
|
|
27
|
-
end
|
|
28
|
-
res.to_xml.to_s.gsub(/\n/,"").encode(:xml => :text)
|
|
29
|
-
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
def self.extract_login_response(soap_login_response)
|
|
33
|
-
Nokogiri::XML(soap_login_response)
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
def self.extract_session_id(login_response)
|
|
37
|
-
login_response.xpath("//@SessionId").to_s
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
def self.extract_search_result(res)
|
|
41
|
-
Nokogiri::XML(res)
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
def self.extract_error_code(xml_res)
|
|
45
|
-
xml_res.xpath("//@ErrorCode").to_s
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
def self.count_matches(xml_res)
|
|
49
|
-
xml_res.xpath("//@MatchedEntries").to_s
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
#take the (unique)search result and returns an array of communications
|
|
53
|
-
def self.extract_services(xml_res)
|
|
54
|
-
services = xml_res.xpath("//Service[@TypeGrpCode='TEL' or @TypeGrpCode='NATEL' or @TypeGrpCode='FAX']")
|
|
55
|
-
result = Array.new
|
|
56
|
-
services.each do |node|
|
|
57
|
-
item = Communication.new
|
|
58
|
-
item.type = node.xpath("@TypeGrpCode").to_s
|
|
59
|
-
item.number = node.xpath("@Value").to_s
|
|
60
|
-
result << item
|
|
61
|
-
end
|
|
62
|
-
result
|
|
63
|
-
end
|
|
64
|
-
end
|
|
65
|
-
|
|
66
|
-
end
|
|
67
|
-
|
|
1
|
+
module DirectoriesInterface
|
|
2
|
+
|
|
3
|
+
class XmlParser
|
|
4
|
+
def initialize
|
|
5
|
+
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
def self.generate_login_xml(attr)
|
|
9
|
+
res=Nokogiri::XML::Builder.new do |xml|
|
|
10
|
+
xml.LoginParam(:ServiceId => attr[:service_id], :UserName => attr[:username], :Password => attr[:password])
|
|
11
|
+
end
|
|
12
|
+
res.to_xml.to_s.gsub(/\n/,"").encode(:xml => :text)
|
|
13
|
+
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def self.generate_search_xml(service_id,session_id,person)
|
|
17
|
+
res = Nokogiri::XML::Builder.new do |xml|
|
|
18
|
+
xml.AddressParam {
|
|
19
|
+
xml.Authentication(:ServiceId => service_id, :SessionId => session_id)
|
|
20
|
+
xml.Paging(:StartAtIndex => "1", :FinishAtIndex => "5")
|
|
21
|
+
xml.LastName(:Value => person[:lastname], :Phonetic => "1", :PrecisionCode => "FIELDGROUP")
|
|
22
|
+
xml.FirstName(:Value => person[:firstname], :Phonetic => "1", :PrecisionCode => "FIELDGROUP")
|
|
23
|
+
xml.StreetHouseNo(:Value=>person[:address], :Phonetic => "1") if person.has_key?(:address)
|
|
24
|
+
xml.Location(:Value => person[:city], :Phonetic => "0")
|
|
25
|
+
xml.TypeCode "ALL"
|
|
26
|
+
}
|
|
27
|
+
end
|
|
28
|
+
res.to_xml.to_s.gsub(/\n/,"").encode(:xml => :text)
|
|
29
|
+
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def self.extract_login_response(soap_login_response)
|
|
33
|
+
Nokogiri::XML(soap_login_response)
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def self.extract_session_id(login_response)
|
|
37
|
+
login_response.xpath("//@SessionId").to_s
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def self.extract_search_result(res)
|
|
41
|
+
Nokogiri::XML(res)
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def self.extract_error_code(xml_res)
|
|
45
|
+
xml_res.xpath("//@ErrorCode").to_s
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def self.count_matches(xml_res)
|
|
49
|
+
xml_res.xpath("//@MatchedEntries").to_s
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
#take the (unique)search result and returns an array of communications
|
|
53
|
+
def self.extract_services(xml_res)
|
|
54
|
+
services = xml_res.xpath("//Service[@TypeGrpCode='TEL' or @TypeGrpCode='NATEL' or @TypeGrpCode='FAX' or @TypeGrpCode='EMAIL']")
|
|
55
|
+
result = Array.new
|
|
56
|
+
services.each do |node|
|
|
57
|
+
item = Communication.new
|
|
58
|
+
item.type = node.xpath("@TypeGrpCode").to_s
|
|
59
|
+
item.number = node.xpath("@Value").to_s
|
|
60
|
+
result << item
|
|
61
|
+
end
|
|
62
|
+
result
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
end
|
|
67
|
+
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
require "savon"
|
|
2
|
-
require "rubygems"
|
|
3
|
-
require "Nokogiri"
|
|
4
|
-
require "directories_interface/version"
|
|
5
|
-
require "directories_interface/xml_parser"
|
|
6
|
-
require "directories_interface/communication"
|
|
7
|
-
require "directories_interface/directories_interface_wrapper"
|
|
1
|
+
require "savon"
|
|
2
|
+
require "rubygems"
|
|
3
|
+
require "Nokogiri"
|
|
4
|
+
require "directories_interface/version"
|
|
5
|
+
require "directories_interface/xml_parser"
|
|
6
|
+
require "directories_interface/communication"
|
|
7
|
+
require "directories_interface/directories_interface_wrapper"
|
|
@@ -1,37 +1,37 @@
|
|
|
1
|
-
|
|
2
|
-
require "spec_helper"
|
|
3
|
-
|
|
4
|
-
module DirectoriesInterface
|
|
5
|
-
describe DirectoriesInterfaceWrapper do
|
|
6
|
-
before(:each) do
|
|
7
|
-
@username = ""
|
|
8
|
-
@password = ""
|
|
9
|
-
@service_id = ""
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
describe "#login" do
|
|
13
|
-
it "returns a sessionID" do
|
|
14
|
-
dir1 = DirectoriesInterfaceWrapper.new
|
|
15
|
-
@session_id = dir1.login(@username, @password, @service_id)
|
|
16
|
-
puts @session_id
|
|
17
|
-
@session_id.should_not be_nil
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
describe "#search_address" do
|
|
22
|
-
before(:each) do
|
|
23
|
-
@dir1 = DirectoriesInterfaceWrapper.new
|
|
24
|
-
@session_id = @dir1.login(@username, @password, @service_id)
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
it "if exactly one match found, returns a list of numbers" do
|
|
28
|
-
person = {:
|
|
29
|
-
result = @dir1.search_address(@service_id, @session_id,person)
|
|
30
|
-
puts result
|
|
31
|
-
result.should_not be_nil
|
|
32
|
-
result.length.should == 2
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
end
|
|
36
|
-
|
|
1
|
+
|
|
2
|
+
require "spec_helper"
|
|
3
|
+
|
|
4
|
+
module DirectoriesInterface
|
|
5
|
+
describe DirectoriesInterfaceWrapper do
|
|
6
|
+
before(:each) do
|
|
7
|
+
@username = ""
|
|
8
|
+
@password = ""
|
|
9
|
+
@service_id = ""
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
describe "#login" do
|
|
13
|
+
it "returns a sessionID" do
|
|
14
|
+
dir1 = DirectoriesInterfaceWrapper.new
|
|
15
|
+
@session_id = dir1.login(@username, @password, @service_id)
|
|
16
|
+
puts @session_id
|
|
17
|
+
@session_id.should_not be_nil
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
describe "#search_address" do
|
|
22
|
+
before(:each) do
|
|
23
|
+
@dir1 = DirectoriesInterfaceWrapper.new
|
|
24
|
+
@session_id = @dir1.login(@username, @password, @service_id)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
it "if exactly one match found, returns a list of numbers" do
|
|
28
|
+
person = {:lastname => "Daniele", :firstname => "Pestalozzi", :city=>"Novazzano", :address=>"via al Loi"}
|
|
29
|
+
result = @dir1.search_address(@service_id, @session_id,person)
|
|
30
|
+
puts result
|
|
31
|
+
result.should_not be_nil
|
|
32
|
+
result.length.should == 2
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
|
|
37
37
|
end
|
data/spec/spec_helper.rb
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
# This file was generated by the `rspec --init` command. Conventionally, all
|
|
2
|
-
# specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
|
|
3
|
-
# Require this file using `require "spec_helper.rb"` to ensure that it is only
|
|
4
|
-
# loaded once.
|
|
5
|
-
#
|
|
6
|
-
# See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
|
|
7
|
-
|
|
8
|
-
require 'directories_interface'
|
|
9
|
-
|
|
10
|
-
RSpec.configure do |config|
|
|
11
|
-
config.treat_symbols_as_metadata_keys_with_true_values = true
|
|
12
|
-
config.run_all_when_everything_filtered = true
|
|
13
|
-
config.filter_run :focus
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
|
|
1
|
+
# This file was generated by the `rspec --init` command. Conventionally, all
|
|
2
|
+
# specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
|
|
3
|
+
# Require this file using `require "spec_helper.rb"` to ensure that it is only
|
|
4
|
+
# loaded once.
|
|
5
|
+
#
|
|
6
|
+
# See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
|
|
7
|
+
|
|
8
|
+
require 'directories_interface'
|
|
9
|
+
|
|
10
|
+
RSpec.configure do |config|
|
|
11
|
+
config.treat_symbols_as_metadata_keys_with_true_values = true
|
|
12
|
+
config.run_all_when_everything_filtered = true
|
|
13
|
+
config.filter_run :focus
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: directories_interface
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.2
|
|
5
5
|
prerelease:
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -9,11 +9,11 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2012-06-
|
|
12
|
+
date: 2012-06-07 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: rspec
|
|
16
|
-
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirement: &70152364714620 !ruby/object:Gem::Requirement
|
|
17
17
|
none: false
|
|
18
18
|
requirements:
|
|
19
19
|
- - ! '>='
|
|
@@ -21,15 +21,10 @@ dependencies:
|
|
|
21
21
|
version: '0'
|
|
22
22
|
type: :development
|
|
23
23
|
prerelease: false
|
|
24
|
-
version_requirements:
|
|
25
|
-
none: false
|
|
26
|
-
requirements:
|
|
27
|
-
- - ! '>='
|
|
28
|
-
- !ruby/object:Gem::Version
|
|
29
|
-
version: '0'
|
|
24
|
+
version_requirements: *70152364714620
|
|
30
25
|
- !ruby/object:Gem::Dependency
|
|
31
26
|
name: savon
|
|
32
|
-
requirement: !ruby/object:Gem::Requirement
|
|
27
|
+
requirement: &70152364714140 !ruby/object:Gem::Requirement
|
|
33
28
|
none: false
|
|
34
29
|
requirements:
|
|
35
30
|
- - ! '>='
|
|
@@ -37,15 +32,10 @@ dependencies:
|
|
|
37
32
|
version: '0'
|
|
38
33
|
type: :runtime
|
|
39
34
|
prerelease: false
|
|
40
|
-
version_requirements:
|
|
41
|
-
none: false
|
|
42
|
-
requirements:
|
|
43
|
-
- - ! '>='
|
|
44
|
-
- !ruby/object:Gem::Version
|
|
45
|
-
version: '0'
|
|
35
|
+
version_requirements: *70152364714140
|
|
46
36
|
- !ruby/object:Gem::Dependency
|
|
47
37
|
name: certified
|
|
48
|
-
requirement: !ruby/object:Gem::Requirement
|
|
38
|
+
requirement: &70152364713660 !ruby/object:Gem::Requirement
|
|
49
39
|
none: false
|
|
50
40
|
requirements:
|
|
51
41
|
- - ! '>='
|
|
@@ -53,15 +43,10 @@ dependencies:
|
|
|
53
43
|
version: '0'
|
|
54
44
|
type: :runtime
|
|
55
45
|
prerelease: false
|
|
56
|
-
version_requirements:
|
|
57
|
-
none: false
|
|
58
|
-
requirements:
|
|
59
|
-
- - ! '>='
|
|
60
|
-
- !ruby/object:Gem::Version
|
|
61
|
-
version: '0'
|
|
46
|
+
version_requirements: *70152364713660
|
|
62
47
|
- !ruby/object:Gem::Dependency
|
|
63
48
|
name: nokogiri
|
|
64
|
-
requirement: !ruby/object:Gem::Requirement
|
|
49
|
+
requirement: &70152364713220 !ruby/object:Gem::Requirement
|
|
65
50
|
none: false
|
|
66
51
|
requirements:
|
|
67
52
|
- - ! '>='
|
|
@@ -69,14 +54,9 @@ dependencies:
|
|
|
69
54
|
version: '0'
|
|
70
55
|
type: :runtime
|
|
71
56
|
prerelease: false
|
|
72
|
-
version_requirements:
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
- - ! '>='
|
|
76
|
-
- !ruby/object:Gem::Version
|
|
77
|
-
version: '0'
|
|
78
|
-
description: First version of the interface. Searches for a person and returns an
|
|
79
|
-
array of phone numbers
|
|
57
|
+
version_requirements: *70152364713220
|
|
58
|
+
description: Searches for a person over ETV SOAP service and returns an array of phone
|
|
59
|
+
and fax numbers and email addresses
|
|
80
60
|
email:
|
|
81
61
|
- np@impac.ch
|
|
82
62
|
executables: []
|
|
@@ -89,7 +69,6 @@ files:
|
|
|
89
69
|
- lib/directories_interface/xml_parser.rb
|
|
90
70
|
- lib/directories_interface.rb
|
|
91
71
|
- spec/directories_interface/directories_interface_wrapper_spec.rb
|
|
92
|
-
- spec/directories_interface/xml_parser_spec.rb
|
|
93
72
|
- spec/spec_helper.rb
|
|
94
73
|
homepage: ''
|
|
95
74
|
licenses: []
|
|
@@ -111,11 +90,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
111
90
|
version: '0'
|
|
112
91
|
requirements: []
|
|
113
92
|
rubyforge_project: directories_interface
|
|
114
|
-
rubygems_version: 1.8.
|
|
93
|
+
rubygems_version: 1.8.16
|
|
115
94
|
signing_key:
|
|
116
95
|
specification_version: 3
|
|
117
|
-
summary: Interface to
|
|
96
|
+
summary: Interface to ETV SOAP service
|
|
118
97
|
test_files:
|
|
119
98
|
- spec/directories_interface/directories_interface_wrapper_spec.rb
|
|
120
|
-
- spec/directories_interface/xml_parser_spec.rb
|
|
121
99
|
- spec/spec_helper.rb
|