consumer_score 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/lib/consumer_score.rb +41 -0
  2. metadata +78 -0
@@ -0,0 +1,41 @@
1
+ require 'net/http'
2
+ require 'json'
3
+ require 'fakeweb'
4
+
5
+ FakeWeb.register_uri(:get, "http://internal.leapfrogonline.com/customer_scoring?income=50000&zipcode=60201&age=35",
6
+ :body => {'propensity' => 0.26532, 'ranking' => 'C' }.to_json,
7
+ :status => ["200", "OK"])
8
+
9
+ class ConsumerScore
10
+ attr_accessor :propensity, :ranking
11
+ attr_reader :income, :zip_code, :age, :request_uri
12
+
13
+ def initialize(income, zip_code, age)
14
+ @income = income
15
+ @zip_code = zip_code
16
+ @age = age
17
+ @propensity = nil
18
+ @ranking = nil
19
+ end
20
+
21
+ def build_request
22
+ URI("http://internal.leapfrogonline.com/customer_scoring?income=#{income}&zipcode=#{zip_code}&age=#{age}")
23
+ end
24
+
25
+ def update_self(score_data)
26
+ self.propensity = score_data["propensity"]
27
+ self.ranking = score_data["ranking"]
28
+ end
29
+
30
+ def get_score
31
+ response = Net::HTTP.get_response(build_request)
32
+ p response
33
+ case response.code
34
+ when "200" then
35
+ score = JSON.parse(response.body)
36
+ update_self(score)
37
+ score
38
+ else response.code + ": " + response.message
39
+ end
40
+ end
41
+ end
metadata ADDED
@@ -0,0 +1,78 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: consumer_score
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Johnathon Francis
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-11-14 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: fakeweb
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: webmock
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ description: API integration with LeapFrog service to obtain consumer score based
47
+ on income, zip code, and age
48
+ email: johnathon.t.francis@gmail.com
49
+ executables: []
50
+ extensions: []
51
+ extra_rdoc_files: []
52
+ files:
53
+ - lib/consumer_score.rb
54
+ homepage:
55
+ licenses: []
56
+ post_install_message:
57
+ rdoc_options: []
58
+ require_paths:
59
+ - lib
60
+ required_ruby_version: !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ required_rubygems_version: !ruby/object:Gem::Requirement
67
+ none: false
68
+ requirements:
69
+ - - ! '>='
70
+ - !ruby/object:Gem::Version
71
+ version: '0'
72
+ requirements: []
73
+ rubyforge_project:
74
+ rubygems_version: 1.8.25
75
+ signing_key:
76
+ specification_version: 3
77
+ summary: LeapFrog Online Challenge
78
+ test_files: []