maxmind 0.4.5 → 0.4.7

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 86e1f00f56877745ccb1a9abb4def3a574ab5e39
4
- data.tar.gz: 6cb391c94e902c903a4231c3760e49e0c1e45fe3
3
+ metadata.gz: 4608e9c60c8244b7b82c9a95add791a1b0d4f718
4
+ data.tar.gz: 7e2da7ff1682d4db6c238b0a56480b3014265fdb
5
5
  SHA512:
6
- metadata.gz: fa6c8d0f6338fdf40e435fad867ac08d882bc96cdc547a25f393f59ffdf5359df1a5677c0eea7b53b8e51640b169afd953abbfbefda1264db6d3c301f3496930
7
- data.tar.gz: 1ceffa7a4b3c2bac93c89f36a8912a85e39c2290cda325cc4438b6f3ca0033a1379924e2bbfe630e42c9f80182575cc1998f7a31933db2fbc4225621200c4c94
6
+ metadata.gz: 7a9e248e97806a9391aa3e25d3c5c68e323d08b3ba28525bcf9da55fd2b0eecafe01c7ba071ff0db5ad9c0f1a13e66d4e0afce2e7db14abe7427f7ae7912a939
7
+ data.tar.gz: 17a3e05790a99d970ec19b08b0b932f5798bd4be29f47fc595c8437a33245c60540b71cdc5b2a18e2afe04f6440ff219df61c9009e1aea92d2cfc8d015a86b07
data/.travis.yml CHANGED
@@ -1,6 +1,5 @@
1
1
  language: ruby
2
- rvm:
3
- - '1.8.7'
4
- - '1.9.2'
2
+ rvm:
5
3
  - '1.9.3'
6
-
4
+ - '2.1.3'
5
+ - '2.2.0'
data/README.md CHANGED
@@ -1,8 +1,9 @@
1
1
  maxmind
2
2
  ==========
3
3
 
4
- A wrapper around MaxMind's minFraud anti-fraud service.
4
+ An unofficial wrapper around MaxMind's minFraud anti-fraud service.
5
5
 
6
+ For MaxMind's Proxy Detection Service, see this gem: [https://github.com/eric-smartlove/maxmind\_proxy\_detection](https://github.com/eric-smartlove/maxmind_proxy_detection)
6
7
 
7
8
  Installation
8
9
  ------------
@@ -38,11 +39,7 @@ These are the only required fields to acquire a response from MaxMind.
38
39
  require 'maxmind'
39
40
  Maxmind.license_key = 'LICENSE_KEY'
40
41
  request = Maxmind::Request.new(
41
- :client_ip => '24.24.24.24',
42
- :city => 'New York',
43
- :region => 'NY',
44
- :postal => '11434',
45
- :country => 'US'
42
+ :client_ip => '24.24.24.24'
46
43
  )
47
44
 
48
45
  response = request.process!
@@ -164,6 +161,8 @@ Contributors
164
161
  * Thomas Morgan
165
162
  * Tinu Cleatus <tinu.cleatus@me.com>
166
163
  * Don Pflaster <dpflaster@gmail.com>
164
+ * Igor Pstyga
165
+ * Jack Kelly <jack@trikeapps.com>
167
166
 
168
167
  Thanks to all :)
169
168
 
@@ -105,7 +105,8 @@ module Maxmind
105
105
  :avs_result => @avs_result,
106
106
  :cvv_result => @cvv_result,
107
107
  :txn_type => @txn_type,
108
- :order_amount => @order_amount
108
+ :order_amount => @order_amount,
109
+ :order_currency => @order_currency
109
110
  }
110
111
 
111
112
  field_set = required_fields.merge(optional_fields)
@@ -120,14 +121,14 @@ module Maxmind
120
121
  def post(query_params)
121
122
  servers ||= SERVERS.map{|hostname| "https://#{hostname}/app/ccv2r"}
122
123
  url = URI.parse(servers.shift)
123
-
124
+
124
125
  req = Net::HTTP::Post.new(url.path)
125
126
  req.set_form_data(query_params)
126
127
 
127
128
  h = Net::HTTP.new(url.host, url.port)
128
129
  h.use_ssl = true
129
130
  h.verify_mode = OpenSSL::SSL::VERIFY_NONE
130
-
131
+
131
132
  # set some timeouts
132
133
  h.open_timeout = 60 # this blocks forever by default, lets be a bit less crazy.
133
134
  h.read_timeout = self.class.timeout || DefaultTimeout
@@ -147,15 +148,11 @@ module Maxmind
147
148
  Digest::MD5.hexdigest(value.downcase)
148
149
  end
149
150
  end
150
-
151
+
151
152
  protected
152
153
  def validate
153
154
  raise ArgumentError, 'License key is required' unless Maxmind::license_key
154
155
  raise ArgumentError, 'IP address is required' unless client_ip
155
- raise ArgumentError, 'City is required' unless city
156
- raise ArgumentError, 'Region is required' unless region
157
- raise ArgumentError, 'Postal code is required' unless postal
158
- raise ArgumentError, 'Country is required' unless country
159
156
  end
160
157
  end
161
158
  end
@@ -1,3 +1,3 @@
1
1
  module Maxmind
2
- VERSION = '0.4.5'
2
+ VERSION = '0.4.7'
3
3
  end
@@ -14,57 +14,72 @@ describe Maxmind::Request do
14
14
  end
15
15
 
16
16
  it "requires client IP" do
17
- expect { @request.client_ip = nil; @request.send(:validate) }.to raise_exception(ArgumentError)
17
+ expect {
18
+ @request.client_ip = nil; @request.send(:validate)
19
+ }.to raise_exception(ArgumentError)
18
20
  end
19
21
 
20
- it "requires city" do
21
- expect { @request.city = nil; @request.send(:validate) }.to raise_exception(ArgumentError)
22
+ it "doesn't require city" do
23
+ expect {
24
+ @request.city = nil; @request.send(:validate)
25
+ }.not_to raise_error
22
26
  end
23
27
 
24
- it "requires region" do
25
- expect { @request.region = nil; @request.send(:validate) }.to raise_exception(ArgumentError)
28
+ it "doesn't require region" do
29
+ expect {
30
+ @request.region = nil; @request.send(:validate)
31
+ }.not_to raise_error
26
32
  end
27
33
 
28
- it "requires postal" do
29
- expect { @request.postal = nil; @request.send(:validate) }.to raise_exception(ArgumentError)
34
+ it "doesn't require postal" do
35
+ expect {
36
+ @request.postal = nil; @request.send(:validate)
37
+ }.not_to raise_error
30
38
  end
31
39
 
32
- it "requires country" do
33
- expect { @request.country = nil; @request.send(:validate) }.to raise_exception(ArgumentError)
40
+ it "doesn't require country" do
41
+ expect {
42
+ @request.country = nil; @request.send(:validate)
43
+ }.not_to raise_error
44
+ end
45
+
46
+ it "saves order currency" do
47
+ @request.order_currency = 'GBP'
48
+ expect(@request.query[:order_currency]).to eq 'GBP'
34
49
  end
35
50
 
36
51
  it "converts username to MD5" do
37
52
  @request.username = 'testuser'
38
- @request.username.should == '5d9c68c6c50ed3d02a2fcf54f63993b6'
53
+ expect(@request.username).to eq '5d9c68c6c50ed3d02a2fcf54f63993b6'
39
54
  end
40
55
 
41
56
  it "converts password to MD5" do
42
57
  @request.password = 'testpassword'
43
- @request.password.should == 'e16b2ab8d12314bf4efbd6203906ea6c'
58
+ expect(@request.password).to eq 'e16b2ab8d12314bf4efbd6203906ea6c'
44
59
  end
45
60
 
46
61
  it "converts email to MD5" do
47
62
  @request.email = 'test@test.com'
48
- @request.email.should == 'b642b4217b34b1e8d3bd915fc65c4452'
63
+ expect(@request.email).to eq 'b642b4217b34b1e8d3bd915fc65c4452'
49
64
  end
50
65
 
51
66
  it "does not double convert an md5 username" do
52
67
  @request.username = 'b642b4217b34b1e8d3bd915fc65c4452'
53
- @request.username.should == 'b642b4217b34b1e8d3bd915fc65c4452'
68
+ expect(@request.username).to eq 'b642b4217b34b1e8d3bd915fc65c4452'
54
69
  end
55
70
 
56
71
  it "does not double convert an md5 password" do
57
72
  @request.password = 'b642b4217b34b1e8d3bd915fc65c4452'
58
- @request.password.should == 'b642b4217b34b1e8d3bd915fc65c4452'
73
+ expect(@request.password).to eq 'b642b4217b34b1e8d3bd915fc65c4452'
59
74
  end
60
75
 
61
76
  it "does not double convert an md5 email" do
62
77
  @request.email = 'b642b4217b34b1e8d3bd915fc65c4452'
63
- @request.email.should == 'b642b4217b34b1e8d3bd915fc65c4452'
78
+ expect(@request.email).to eq 'b642b4217b34b1e8d3bd915fc65c4452'
64
79
  end
65
80
 
66
81
  it "exposes the query parameters" do
67
- @request.query.should be_a Hash
82
+ expect(@request.query).to be_a Hash
68
83
  end
69
84
 
70
85
  end
@@ -22,59 +22,59 @@ describe Maxmind::Response do
22
22
  end
23
23
 
24
24
  it "exposes its attributes" do
25
- @response.attributes.should be_a Hash
25
+ expect(@response.attributes).to be_a Hash
26
26
  end
27
-
27
+
28
28
  it "exposes the raw response body" do
29
- @response.body.should == @response_body
29
+ expect(@response.body).to eq @response_body
30
30
  end
31
31
 
32
32
  it "exposes the http response code" do
33
- @response.http_code.should == 200
33
+ expect(@response.http_code).to eq 200
34
34
  end
35
35
 
36
36
  it "has a distance" do
37
- @response.distance.should == 329
37
+ expect(@response.distance).to eq 329
38
38
  end
39
39
 
40
40
  it "has a maxmind ID" do
41
- @response.maxmind_id.should == '9VSOSDE2'
41
+ expect(@response.maxmind_id).to eq '9VSOSDE2'
42
42
  end
43
43
 
44
44
  it "has a risk score" do
45
- @response.risk_score.should == 2.0
45
+ expect(@response.risk_score).to eq 2.0
46
46
  end
47
47
 
48
48
  it "has a score" do
49
- @response.score.should == 7.66
49
+ expect(@response.score).to eq 7.66
50
50
  end
51
51
 
52
52
  it "has queries remaining" do
53
- @response.queries_remaining.should == 955
53
+ expect(@response.queries_remaining).to eq 955
54
54
  end
55
55
 
56
56
  it "has an explanation" do
57
- @response.explanation.should be_a String
57
+ expect(@response.explanation).to be_a String
58
58
  end
59
59
 
60
60
  it "has a country match" do
61
- @response.country_match.should_not == nil
61
+ expect(@response.country_match).not_to be_nil
62
62
  end
63
63
 
64
64
  it "has a boolean country match" do
65
- @response.country_match.should_not == "Yes"
66
- @response.country_match.should == true
65
+ expect(@response.country_match).not_to eq "Yes"
66
+ expect(@response.country_match).to be_truthy
67
67
  end
68
68
 
69
69
  it "has a phone in billing location" do
70
- @response.phone_in_billing_location.should == false
70
+ expect(@response.phone_in_billing_location).to be_falsey
71
71
  end
72
72
 
73
73
  it "has a phone in billing location ? method" do
74
- @response.phone_in_billing_location?.should == false
74
+ expect(@response.phone_in_billing_location?).to be_falsey
75
75
  end
76
76
 
77
77
  it "has a high risk email" do
78
- @response.high_risk_email.should == true
78
+ expect(@response.high_risk_email).to be_truthy
79
79
  end
80
80
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: maxmind
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.5
4
+ version: 0.4.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adam Daniels
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-09-27 00:00:00.000000000 Z
11
+ date: 2015-10-22 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: "A wrapper around MaxMind's minFraud anti-fraud service. \n\nhttp://www.maxmind.com/app/ccv_overview\n"
14
14
  email: adam@mediadrive.ca
@@ -18,8 +18,8 @@ extra_rdoc_files:
18
18
  - LICENSE
19
19
  - README.md
20
20
  files:
21
- - .gitignore
22
- - .travis.yml
21
+ - ".gitignore"
22
+ - ".travis.yml"
23
23
  - Gemfile
24
24
  - Guardfile
25
25
  - LICENSE
@@ -53,17 +53,17 @@ require_paths:
53
53
  - lib
54
54
  required_ruby_version: !ruby/object:Gem::Requirement
55
55
  requirements:
56
- - - '>='
56
+ - - ">="
57
57
  - !ruby/object:Gem::Version
58
58
  version: '0'
59
59
  required_rubygems_version: !ruby/object:Gem::Requirement
60
60
  requirements:
61
- - - '>='
61
+ - - ">="
62
62
  - !ruby/object:Gem::Version
63
63
  version: '0'
64
64
  requirements: []
65
65
  rubyforge_project:
66
- rubygems_version: 2.0.7
66
+ rubygems_version: 2.4.8
67
67
  signing_key:
68
68
  specification_version: 4
69
69
  summary: Wrapper for MaxMind's minFraud service