leapfrog 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
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