leapfrog 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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9cd50da2392d3cc40bc83c5f873310f7b40fa01e
4
- data.tar.gz: bcb01bb8c88f70c1c8451b2c3b347a909ea042c6
3
+ metadata.gz: f7a03d7772abda72869d489f86723be7f422e938
4
+ data.tar.gz: 288cdcfe8b4642c6081733a3fc004ed2c0601f20
5
5
  SHA512:
6
- metadata.gz: fcba0610400882342300ab73f80e6ddf6403ba9ad38477896552a0714865406545c8d0dfc372b7b807f5e5b7e5f75ab3171444bcc9eaf1dea4977a96f284d485
7
- data.tar.gz: 3820d78adc5b6911dbbcfcf81260127646b00f6a72e6e5693a3e70eb3dfdfe9daff3d00ee118627871fe17c776465f0d2a7b86b5bf8d928e5714807e9b9540e7
6
+ metadata.gz: baa95ef099e564bc8d7554a654993893eb31cff598a3fd65836f2ca6177a69e09ee2d1731037377847211798627258b12a4f3069cc0e20828f2e7c06463ecaa7
7
+ data.tar.gz: 318c5bee8a13b45158c6ac0d7a84778ad1879bb0d7129ceb79c2370288bb226c8729611420d2e88e33fb7831f2a26eef17d2968f271658a972e6c5b5ea9077ba
@@ -1,8 +1,10 @@
1
- class Advice
2
- attr_reader :propensity, :ranking
1
+ module Leapfrog
2
+ class Advice
3
+ attr_reader :propensity, :ranking
3
4
 
4
- def initialize(propensity: nil, ranking: nil)
5
- @propensity = propensity
6
- @ranking = ranking
5
+ def initialize(propensity: nil, ranking: nil)
6
+ @propensity = propensity
7
+ @ranking = ranking
8
+ end
7
9
  end
8
10
  end
@@ -1,9 +1,11 @@
1
- class Customer
2
- attr_reader :income, :zipcode, :age
1
+ module Leapfrog
2
+ class Customer
3
+ attr_reader :income, :zipcode, :age
3
4
 
4
- def initialize(income, zipcode, age)
5
- @income = income
6
- @zipcode = zipcode
7
- @age = age
5
+ def initialize(income, zipcode, age)
6
+ @income = income
7
+ @zipcode = zipcode
8
+ @age = age
9
+ end
8
10
  end
9
11
  end
@@ -1,32 +1,34 @@
1
- class ScoringClient
2
- @@API_URL = "http://internal.leapfrogonline.com/customer_scoring"
1
+ module Leapfrog
2
+ class ScoringClient
3
+ @@API_URL = "http://internal.leapfrogonline.com/customer_scoring"
3
4
 
4
- def score(customer)
5
- raise ArgumentError, "income cannot be nil" if customer.income.nil?
6
- raise ArgumentError, "zipcode cannot be nil" if customer.zipcode.nil?
7
- raise ArgumentError, "age cannot be nil" if customer.age.nil?
5
+ def score(customer)
6
+ raise ArgumentError, "income cannot be nil" if customer.income.nil?
7
+ raise ArgumentError, "zipcode cannot be nil" if customer.zipcode.nil?
8
+ raise ArgumentError, "age cannot be nil" if customer.age.nil?
8
9
 
9
- begin
10
- response = RestClient.get(@@API_URL, {params: customer_to_query_params(customer), accept: :json})
11
- rescue RestClient::InternalServerError => error
12
- raise "Scoring Advice Internal Error"
13
- rescue RestClient::Forbidden => error
14
- if error.response.code == 403
15
- raise ArgumentError, "request parameters invalid"
10
+ begin
11
+ response = RestClient.get(@@API_URL, {params: customer_to_query_params(customer), accept: :json})
12
+ rescue RestClient::InternalServerError => error
13
+ raise "Scoring Advice Internal Error"
14
+ rescue RestClient::Forbidden => error
15
+ if error.response.code == 403
16
+ raise ArgumentError, "request parameters invalid"
17
+ end
16
18
  end
19
+
20
+ response_to_advice(response)
17
21
  end
18
-
19
- response_to_advice(response)
20
- end
21
22
 
22
- private
23
+ private
23
24
 
24
- def customer_to_query_params(customer)
25
- {income: customer.income, zipcode: customer.zipcode, age: customer.age}
26
- end
25
+ def customer_to_query_params(customer)
26
+ {income: customer.income, zipcode: customer.zipcode, age: customer.age}
27
+ end
27
28
 
28
- def response_to_advice(response)
29
- data = JSON.parse(response.body, {symbolize_names: true})
30
- return Advice.new(data)
29
+ def response_to_advice(response)
30
+ data = JSON.parse(response.body, {symbolize_names: true})
31
+ return Advice.new(data)
32
+ end
31
33
  end
32
34
  end
@@ -1,3 +1,3 @@
1
1
  module Leapfrog
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -5,23 +5,23 @@ class ScoringClientTest < MiniTest::Unit::TestCase
5
5
  WebMock.reset!
6
6
  @api_url = "http://internal.leapfrogonline.com/customer_scoring"
7
7
  @valid_query_params = {income: 50000, zipcode: 60201, age: 35}
8
- @valid_customer = Customer.new(50000, 60201, 35)
9
- @score_client = ScoringClient.new
8
+ @valid_customer = Leapfrog::Customer.new(50000, 60201, 35)
9
+ @score_client = Leapfrog::ScoringClient.new
10
10
  end
11
11
 
12
12
  def test_required_customer_attributes
13
13
  assert_raises ArgumentError, "Customer income cannot be nil" do
14
- customer = Customer.new(nil, 60657, 21)
14
+ customer = Leapfrog::Customer.new(nil, 60657, 21)
15
15
  @score_client.score(customer)
16
16
  end
17
17
 
18
18
  assert_raises ArgumentError, "Customer zipcode cannot be nil" do
19
- customer = Customer.new(10000, nil, 21)
19
+ customer = Leapfrog::Customer.new(10000, nil, 21)
20
20
  @score_client.score(customer)
21
21
  end
22
22
 
23
23
  assert_raises ArgumentError, "Customer age cannot be nil" do
24
- customer = Customer.new(10000, 60657, nil)
24
+ customer = Leapfrog::Customer.new(10000, 60657, nil)
25
25
  @score_client.score(customer)
26
26
  end
27
27
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: leapfrog
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vince Cima