consumer_score 0.0.1

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.
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: []