whitepages_pro 0.1.0
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.
- checksums.yaml +15 -0
- data/LICENSE.txt +24 -0
- data/README.rdoc +32 -0
- data/Rakefile +19 -0
- data/lib/whitepages_pro/match_score.rb +65 -0
- data/lib/whitepages_pro/version.rb +4 -0
- data/lib/whitepages_pro/whitepages_pro.rb +73 -0
- data/lib/whitepages_pro.rb +8 -0
- data/spec/match_score_spec.rb +81 -0
- data/spec/spec_helper.rb +25 -0
- data/spec/whitepages_pro_spec.rb +35 -0
- metadata +57 -0
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
ZjU5N2QzZTBkOWUyYjJjY2Y1MmYxNjc0YTNlYTQ5ZjBhOTkzOWJkZA==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
Y2I3NjA5YTg1NmU3ZDJiMjU4MDdlOGNkNjFlNmNiM2RmNzRmZWNkYQ==
|
7
|
+
!binary "U0hBNTEy":
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
Yzk2M2YwMDEzN2IyZjhiZGY4ZDQ5Y2RiMDc0YWJiNmIxNzkyNTU2MmE5Mjlh
|
10
|
+
MmM3NGUwNDMzNTIzZmQ2Mzc0ZTlmMTQ1Y2YzZjdmNDgwY2ZmM2RjNGMxOWM1
|
11
|
+
MjJhNWQyZDRhZTQ2M2YxOWFjNGNhNTM1ZDEzYzExYjUzYjdmZjc=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
Y2NjNDMxMTcxMzM0MGEyZWU0ODIwOWY0ZDhhYWFlM2RmMjQ5MWZmNDcxNjRi
|
14
|
+
ZTQzNmVjNjcwZGZlYjA0ZDI5OTYzYjkzMTAxNTQ1ZDg3YWQzYWEzNmVkMmVk
|
15
|
+
ZGFjOWIzNzMyNWQxNjdlZDFkOWQxNzVjNmQ3NGU3ODYzOGNkYzU=
|
data/LICENSE.txt
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
Copyright (c) 2013, WhitePages, Inc.
|
2
|
+
All rights reserved.
|
3
|
+
|
4
|
+
Redistribution and use in source and binary forms, with or without
|
5
|
+
modification, are permitted provided that the following conditions are met:
|
6
|
+
* Redistributions of source code must retain the above copyright
|
7
|
+
notice, this list of conditions and the following disclaimer.
|
8
|
+
* Redistributions in binary form must reproduce the above copyright
|
9
|
+
notice, this list of conditions and the following disclaimer in the
|
10
|
+
documentation and/or other materials provided with the distribution.
|
11
|
+
* Neither the name of the company nor the
|
12
|
+
names of its contributors may be used to endorse or promote products
|
13
|
+
derived from this software without specific prior written permission.
|
14
|
+
|
15
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
16
|
+
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
17
|
+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
18
|
+
DISCLAIMED. IN NO EVENT SHALL WHITEPAGES, INC. BE LIABLE FOR ANY
|
19
|
+
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
20
|
+
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
21
|
+
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
22
|
+
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
23
|
+
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
24
|
+
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
data/README.rdoc
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
= Overview
|
2
|
+
|
3
|
+
= History
|
4
|
+
|
5
|
+
[0.1.0 - 2013-Apr-25] Initial Release.
|
6
|
+
|
7
|
+
= License
|
8
|
+
|
9
|
+
Copyright (c) 2013, WhitePages, Inc.
|
10
|
+
All rights reserved.
|
11
|
+
|
12
|
+
Redistribution and use in source and binary forms, with or without
|
13
|
+
modification, are permitted provided that the following conditions are met:
|
14
|
+
* Redistributions of source code must retain the above copyright
|
15
|
+
notice, this list of conditions and the following disclaimer.
|
16
|
+
* Redistributions in binary form must reproduce the above copyright
|
17
|
+
notice, this list of conditions and the following disclaimer in the
|
18
|
+
documentation and/or other materials provided with the distribution.
|
19
|
+
* Neither the name of the company nor the
|
20
|
+
names of its contributors may be used to endorse or promote products
|
21
|
+
derived from this software without specific prior written permission.
|
22
|
+
|
23
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
24
|
+
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
25
|
+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
26
|
+
DISCLAIMED. IN NO EVENT SHALL WHITEPAGES, INC. BE LIABLE FOR ANY
|
27
|
+
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
28
|
+
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
29
|
+
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
30
|
+
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
31
|
+
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
32
|
+
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
data/Rakefile
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'pathname'
|
2
|
+
ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../Gemfile", Pathname.new(__FILE__).realpath)
|
3
|
+
require 'rubygems'
|
4
|
+
require 'bundler/setup'
|
5
|
+
|
6
|
+
require "rspec/core/rake_task"
|
7
|
+
|
8
|
+
RSpec::Core::RakeTask.new(:spec) do |spec|
|
9
|
+
spec.rspec_opts = ['--backtrace']
|
10
|
+
end
|
11
|
+
|
12
|
+
require 'rdoc/task'
|
13
|
+
|
14
|
+
RDoc::Task.new do |rdoc|
|
15
|
+
rdoc.rdoc_dir = "rdoc"
|
16
|
+
rdoc.rdoc_files.add "lib/**/*.rb", "README.rdoc"
|
17
|
+
rdoc.options << "--all"
|
18
|
+
#rdoc.options << "--coverage-report" # Useful for finding something undocumented, but won't generate output when this is selected!
|
19
|
+
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
require 'httparty'
|
2
|
+
require 'whitepages_pro'
|
3
|
+
|
4
|
+
module WhitepagesPro
|
5
|
+
module MatchScore
|
6
|
+
def api_key(api_key)
|
7
|
+
WhitepagesPro.api_key(api_key)
|
8
|
+
end
|
9
|
+
|
10
|
+
# ActiveMerchant has definition
|
11
|
+
|
12
|
+
# :order_id - The order number
|
13
|
+
# :ip - The IP address of the customer making the purchase
|
14
|
+
# :customer - The name, customer number, or other information that identifies the customer
|
15
|
+
# :invoice - The invoice number
|
16
|
+
# :merchant - The name or description of the merchant offering the product
|
17
|
+
# :description - A description of the transaction
|
18
|
+
# :email - The email address of the customer
|
19
|
+
# :currency - The currency of the transaction. Only important when you are using a currency that is not the default with a gateway that supports multiple currencies.
|
20
|
+
# :billing_address - A hash containing the billing address of the customer.
|
21
|
+
# :shipping_address - A hash containing the shipping address of the customer.
|
22
|
+
|
23
|
+
# The :billing_address, and :shipping_address hashes can have the following keys:
|
24
|
+
|
25
|
+
# :name - The full name of the customer.
|
26
|
+
# :company - The company name of the customer.
|
27
|
+
# :address1 - The primary street address of the customer.
|
28
|
+
# :address2 - Additional line of address information.
|
29
|
+
# :city - The city of the customer.
|
30
|
+
# :state - The state of the customer. The 2 digit code for US and Canadian addresses. The full name of the state or province for foreign addresses.
|
31
|
+
# :country - The [ISO 3166-1-alpha-2 code](www.iso.org/iso/country_codes/iso_3166_code_lists/english_country_names_and_code_elements.htm) for the customer.
|
32
|
+
# :zip - The zip or postal code of the customer.
|
33
|
+
# :phone - The phone number of the customer.
|
34
|
+
|
35
|
+
def match_score(money, creditcard, options)
|
36
|
+
name = (options[:billing_address] && options[:billing_address][:name]) ||
|
37
|
+
(options[:shipping_address] && options[:shipping_address][:name])
|
38
|
+
|
39
|
+
billing_address_street = get_street options[:billing_address]
|
40
|
+
billing_address_zip = get_zip options[:billing_address]
|
41
|
+
billing_phone = get_phone options[:shipping_address]
|
42
|
+
|
43
|
+
shipping_address_street = get_street options[:shipping_address]
|
44
|
+
shipping_address_zip = get_zip options[:shipping_address]
|
45
|
+
shipping_phone = get_phone options[:shipping_address]
|
46
|
+
|
47
|
+
WhitepagesPro.match_score(name, billing_address_street, billing_address_zip, billing_phone,
|
48
|
+
shipping_address_street, shipping_address_zip, shipping_phone)
|
49
|
+
end
|
50
|
+
|
51
|
+
def get_street(address_info)
|
52
|
+
return nil unless address_info
|
53
|
+
"#{address_info[:address1]} #{address_info[:address2]}"
|
54
|
+
end
|
55
|
+
|
56
|
+
def get_zip(address_info)
|
57
|
+
return address_info[:zip] if address_info[:zip]
|
58
|
+
return "#{address_info[:city]} #{address_info[:state]}"
|
59
|
+
end
|
60
|
+
|
61
|
+
def get_phone(address_info)
|
62
|
+
address_info[:phone]
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
@@ -0,0 +1,73 @@
|
|
1
|
+
require 'httparty'
|
2
|
+
require 'json'
|
3
|
+
|
4
|
+
module WhitepagesPro
|
5
|
+
|
6
|
+
class WhitepagesPro
|
7
|
+
include HTTParty
|
8
|
+
base_uri 'https://proapi.whitepages.com'
|
9
|
+
# debug_output
|
10
|
+
|
11
|
+
def WhitepagesPro.api_key(api_key)
|
12
|
+
@@api_key = api_key
|
13
|
+
end
|
14
|
+
|
15
|
+
def WhitepagesPro.get_default_options
|
16
|
+
{}.tap do | options |
|
17
|
+
options["api_key"] = @@api_key
|
18
|
+
options["outputtype"] = "JSON"
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def WhitepagesPro.result(response)
|
23
|
+
return nil unless response.code == 200
|
24
|
+
JSON.parse response.body
|
25
|
+
end
|
26
|
+
|
27
|
+
|
28
|
+
def WhitepagesPro.match_score(name = nil, billing_address_street = nil, billing_address_zip = nil, billing_phone = nil, shipping_address_street = nil, shipping_address_zip = nil, shipping_phone = nil)
|
29
|
+
query = get_default_options
|
30
|
+
query["name"] = name if name
|
31
|
+
query["billing_address_street"] = billing_address_street if billing_address_street
|
32
|
+
query["billing_address_zip"] = billing_address_zip if billing_address_zip
|
33
|
+
query["billing_phone"] = billing_phone if billing_phone
|
34
|
+
query["shipping_address_street"] = shipping_address_street if shipping_address_street
|
35
|
+
query["shipping_address_zip"] = shipping_address_zip if shipping_address_zip
|
36
|
+
query["shipping_phone"] = shipping_phone if shipping_phone
|
37
|
+
|
38
|
+
result get("/match_score/1.1/", :query => query)
|
39
|
+
|
40
|
+
end
|
41
|
+
|
42
|
+
def WhitepagesPro.reverse_address(street, where)
|
43
|
+
query = get_default_options
|
44
|
+
query["street"] = street
|
45
|
+
query["where"] = where
|
46
|
+
|
47
|
+
result get("/reverse_address/1.1", :query => query)
|
48
|
+
end
|
49
|
+
|
50
|
+
def WhitepagesPro.reverse_phone(phone)
|
51
|
+
query = get_default_options
|
52
|
+
query["phone"] = phone
|
53
|
+
result get("/reverse_phone/1.1", :query => query)
|
54
|
+
end
|
55
|
+
|
56
|
+
def WhitepagesPro.find_person(name, where, metro = true)
|
57
|
+
query = get_default_options
|
58
|
+
query["metro"] = metro ? 1 : 0
|
59
|
+
query["name"] = name
|
60
|
+
query["where"] = where
|
61
|
+
|
62
|
+
result get("/find_person/1.1", :query => query)
|
63
|
+
end
|
64
|
+
|
65
|
+
def WhitepagesPro.find_business(keywords, where)
|
66
|
+
query = get_default_options
|
67
|
+
query["keywords"] = keywords
|
68
|
+
query["location"] = where
|
69
|
+
|
70
|
+
result get("/find_business/1.1", :query => query)
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
@@ -0,0 +1,81 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'activemerchant'
|
3
|
+
|
4
|
+
describe WhitepagesPro::MatchScore do
|
5
|
+
describe 'requests' do
|
6
|
+
it 'should return a payload for match score' do
|
7
|
+
# test gateway
|
8
|
+
ActiveMerchant::Billing::Base.mode = :test
|
9
|
+
|
10
|
+
credit_card = ActiveMerchant::Billing::CreditCard.new(
|
11
|
+
:number => '4111111111111111',
|
12
|
+
:month => '8',
|
13
|
+
:year => '2015',
|
14
|
+
:first_name => 'Matt',
|
15
|
+
:last_name => 'Woodward',
|
16
|
+
:verification_value => '123'
|
17
|
+
)
|
18
|
+
expect(credit_card.valid?).to eq(true)
|
19
|
+
|
20
|
+
# Create a gateway object to the TrustCommerce service
|
21
|
+
gateway = ActiveMerchant::Billing::TrustCommerceGateway.new(
|
22
|
+
:login => 'TestMerchant',
|
23
|
+
:password => 'password'
|
24
|
+
)
|
25
|
+
|
26
|
+
billing_address = {
|
27
|
+
:name => 'Matt Woodward',
|
28
|
+
:address1 => '1835 73rd Ave NE',
|
29
|
+
:city => 'Medina',
|
30
|
+
:state => 'WA',
|
31
|
+
:zip => '98039',
|
32
|
+
:phone => '4254138445',
|
33
|
+
}
|
34
|
+
|
35
|
+
shipping_address = {
|
36
|
+
:name => 'Matt Woodward',
|
37
|
+
:address1 => '1301 5th Ave',
|
38
|
+
:address2 => 'Suite 1600',
|
39
|
+
:city => 'Seattle',
|
40
|
+
:state => 'WA',
|
41
|
+
:zip => '98101',
|
42
|
+
:phone => '2069735100',
|
43
|
+
}
|
44
|
+
|
45
|
+
order = {
|
46
|
+
:order_id => '1234',
|
47
|
+
:ip => '192.168.1.1',
|
48
|
+
:customer => 'c118e792',
|
49
|
+
:invoice => '230',
|
50
|
+
:merchant => 'SuperTrain, Inc.',
|
51
|
+
:description => 'ticket purchase',
|
52
|
+
:email => 'mwoodward@whitepages.com',
|
53
|
+
:currency => 'USD',
|
54
|
+
:billing_address => billing_address,
|
55
|
+
:shipping_address => shipping_address,
|
56
|
+
}
|
57
|
+
|
58
|
+
gateway.extend(WhitepagesPro::MatchScore)
|
59
|
+
|
60
|
+
gateway.api_key APIKey.get_api_key
|
61
|
+
|
62
|
+
ms_response = gateway.match_score(1000, credit_card, order)
|
63
|
+
|
64
|
+
expect(ms_response).not_to eq(nil)
|
65
|
+
|
66
|
+
|
67
|
+
# authorize for $10
|
68
|
+
|
69
|
+
response = gateway.authorize(1000, credit_card, order)
|
70
|
+
|
71
|
+
if response.success?
|
72
|
+
# capture
|
73
|
+
gateway.capture(1000, response.authorization, order)
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
it 'should not return a payload outside of the US' do
|
78
|
+
end
|
79
|
+
|
80
|
+
end
|
81
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'simplecov'
|
2
|
+
require 'yaml'
|
3
|
+
|
4
|
+
SimpleCov.start do
|
5
|
+
add_filter {|sf| sf.filename !~ /\/lib\//}
|
6
|
+
end
|
7
|
+
|
8
|
+
require 'whitepages_pro'
|
9
|
+
|
10
|
+
# Require the debugger, if present.
|
11
|
+
begin
|
12
|
+
require 'debugger'
|
13
|
+
rescue LoadError
|
14
|
+
module Kernel
|
15
|
+
def debugger(*args, &block)
|
16
|
+
STDERR.puts "*** Debugger not available."
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
class APIKey
|
22
|
+
def APIKey.get_api_key
|
23
|
+
YAML.load_file('apikey.yml')["whitepages_api_key"]
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe WhitepagesPro::WhitepagesPro do
|
4
|
+
describe 'requests' do
|
5
|
+
it 'should return a json payload for reverse_phone' do
|
6
|
+
WhitepagesPro::WhitepagesPro.api_key APIKey.get_api_key
|
7
|
+
rev_phone_data = WhitepagesPro::WhitepagesPro.reverse_phone("2069735100")
|
8
|
+
expect(rev_phone_data).not_to eq(nil)
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'should return a json payload for find_person' do
|
12
|
+
WhitepagesPro::WhitepagesPro.api_key APIKey.get_api_key
|
13
|
+
find_person_data = WhitepagesPro::WhitepagesPro.find_person("bill gates", "seattle, wa")
|
14
|
+
expect(find_person_data).not_to eq(nil)
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'should return a json payload for match_score' do
|
18
|
+
WhitepagesPro::WhitepagesPro.api_key APIKey.get_api_key
|
19
|
+
match_score_data = WhitepagesPro::WhitepagesPro.match_score("Matthew Woodward", "12234 10th ave s", "98168", "2062444545", "12234 10th ave s", "98168", "2062444724")
|
20
|
+
expect(match_score_data).not_to eq(nil)
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'should return a json payload reverse_address' do
|
24
|
+
WhitepagesPro::WhitepagesPro.api_key APIKey.get_api_key
|
25
|
+
rev_address_data = WhitepagesPro::WhitepagesPro.reverse_address("1301 5th Ave", "seattle, wa")
|
26
|
+
expect(rev_address_data).not_to eq(nil)
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'should return a json payload for find_business' do
|
30
|
+
WhitepagesPro::WhitepagesPro.api_key APIKey.get_api_key
|
31
|
+
find_business_data = WhitepagesPro::WhitepagesPro.find_business("starbucks", "seattle, wa")
|
32
|
+
expect(find_business_data).not_to eq(nil)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
metadata
ADDED
@@ -0,0 +1,57 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: whitepages_pro
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Matt Woodward
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2013-04-28 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: WhitePagesPRO provides lookup and anti-fraud APIs. For access, please
|
14
|
+
contact pro-sales@whitepages.com
|
15
|
+
email:
|
16
|
+
- mwoodward@whitepages.com
|
17
|
+
executables: []
|
18
|
+
extensions: []
|
19
|
+
extra_rdoc_files:
|
20
|
+
- README.rdoc
|
21
|
+
files:
|
22
|
+
- lib/whitepages_pro/match_score.rb
|
23
|
+
- lib/whitepages_pro/version.rb
|
24
|
+
- lib/whitepages_pro/whitepages_pro.rb
|
25
|
+
- lib/whitepages_pro.rb
|
26
|
+
- spec/match_score_spec.rb
|
27
|
+
- spec/spec_helper.rb
|
28
|
+
- spec/whitepages_pro_spec.rb
|
29
|
+
- README.rdoc
|
30
|
+
- LICENSE.txt
|
31
|
+
- Rakefile
|
32
|
+
homepage: https://github.com/whitepages/whitepages_pro
|
33
|
+
licenses:
|
34
|
+
- BSD
|
35
|
+
metadata: {}
|
36
|
+
post_install_message:
|
37
|
+
rdoc_options: []
|
38
|
+
require_paths:
|
39
|
+
- lib
|
40
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
41
|
+
requirements:
|
42
|
+
- - ! '>='
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
version: '0'
|
45
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- - ! '>='
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: '0'
|
50
|
+
requirements: []
|
51
|
+
rubyforge_project:
|
52
|
+
rubygems_version: 2.0.3
|
53
|
+
signing_key:
|
54
|
+
specification_version: 4
|
55
|
+
summary: Ruby interfaces for WhitePagesPRO web services.
|
56
|
+
test_files: []
|
57
|
+
has_rdoc: true
|