glide 0.0.4 → 0.0.5

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.
@@ -15,7 +15,6 @@ Gem::Specification.new do |s|
15
15
 
16
16
  s.files = `git ls-files`.split("\n")
17
17
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
- s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
18
  s.require_paths = ["lib"]
20
19
 
21
20
  # specify any dependencies here; for example:
@@ -1,47 +1,44 @@
1
- require "glide/version"
2
1
  require 'timeout'
3
2
  require 'httparty'
4
3
  require 'json'
5
4
 
5
+ require "glide/version"
6
+
6
7
  module Glide
7
- HUMAN_NAME = {"elec" => "Electricity", "tv_license" => "TV License"}
8
+ GLIDE_HUMAN_NAME = {"elec" => "Electricity", "tv_license" => "TV License"}
8
9
 
9
- def self.api_key
10
- @@api_key ||= ""
11
- end
12
10
 
13
- def self.api_key=(key)
14
- @@api_key = key
15
- end
11
+ class << self
12
+ attr_accessor :api_key
16
13
 
17
- def self.get_quote(services = ['elec'], extra = {}, period = 6, tenants = 1)
18
- quotes = {}
19
- services.each do |service|
20
- quotes[service] = get_service_quote(service, extra[service], period, tenants)
21
- quotes[service]["human_name"] = insert_human_name(service)
14
+ def get_quote(services = ['elec'], extra = {}, period = 6, tenants = 1)
15
+ quotes = {}
16
+ services.each do |service|
17
+ quotes[service] = get_service_quote(service, extra[service], period, tenants)
18
+ quotes[service]["human_name"] = insert_human_name(service)
19
+ end
20
+ calculate_totals(quotes)
22
21
  end
23
- calculate_totals(quotes)
24
- end
25
22
 
26
- def self.get_service_quote(service, extra, period, tenants)
27
- res = Timeout::timeout(5) { HTTParty.get("https://api.glide.uk.com/signup/servicePrice.json", :query => {:service => service, :period => period, :extra => extra, :tenants => tenants, :key => api_key}) }
28
- JSON.parse(res.body)["results"]
29
- rescue Timeout::Error => e
30
- {"message" => "A timeout error has occured", "error" => 2}
31
- rescue
32
- {"message" => "An error has occured", "error" => 3}
33
- end
34
-
35
- def self.insert_human_name(service)
36
- HUMAN_NAME[service] || service.capitalize
37
- end
23
+ def get_service_quote(service, extra, period, tenants)
24
+ res = Timeout::timeout(5) { HTTParty.get("https://api.glide.uk.com/signup/servicePrice.json", :query => {:service => service, :period => period, :extra => extra, :tenants => tenants, :key => api_key}) }
25
+ JSON.parse(res.body)["results"]
26
+ rescue Timeout::Error => e
27
+ {"message" => "A timeout error has occured", "error" => 2}
28
+ rescue
29
+ {"message" => "An error has occured", "error" => 3}
30
+ end
38
31
 
39
- def self.calculate_totals(quotes)
40
- quotes["total"] = {}
41
- ["tenant_week", "tenant_month", "monthly_fee"].each do |k|
42
- quotes["total"][k] = "%.2f" % quotes.map { |e| e[1][k].to_f }.reduce(:+)
32
+ def insert_human_name(service)
33
+ GLIDE_HUMAN_NAME[service] || service.capitalize
43
34
  end
44
35
 
45
- quotes
36
+ def calculate_totals(quotes)
37
+ quotes["total"] = {}
38
+ ["tenant_week", "tenant_month", "monthly_fee"].each do |k|
39
+ quotes["total"][k] = "%.2f" % quotes.map { |e| e[1][k].to_f }.reduce(:+)
40
+ end
41
+ quotes
42
+ end
46
43
  end
47
44
  end
@@ -1,3 +1,3 @@
1
1
  module Glide
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
@@ -26,7 +26,7 @@ describe Glide do
26
26
  end
27
27
 
28
28
  describe "get_service_quote" do
29
-
29
+
30
30
  it 'should respond with HTTParty response and convert to json' do
31
31
  HTTParty.should_receive(:get).and_return(response_elec)
32
32
  # HTTParty.should_receive(:get) do |args|
@@ -55,6 +55,14 @@ describe Glide do
55
55
  rt["total"]["tenant_week"].should eql("13.94")
56
56
  rt["total"]["tenant_month"].should eql("60.40")
57
57
  end
58
+
59
+ it "should return 0.00 when nil values are summed" do
60
+ quotes = {"elec" => {"message" => "A timeout error has occured", "error" => 2}, "water" => {"message" => "An error has occured", "error" => 3}}
61
+ rt = Glide.calculate_totals(quotes)
62
+ rt["total"]["monthly_fee"].should eql("0.00")
63
+ rt["total"]["tenant_week"].should eql("0.00")
64
+ rt["total"]["tenant_month"].should eql("0.00")
65
+ end
58
66
  end
59
67
 
60
68
  describe "insert_human_name" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: glide
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-05-09 00:00:00.000000000 Z
12
+ date: 2012-05-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: httparty
16
- requirement: &16452180 !ruby/object:Gem::Requirement
16
+ requirement: &5590320 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *16452180
24
+ version_requirements: *5590320
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: json
27
- requirement: &16451340 !ruby/object:Gem::Requirement
27
+ requirement: &5589620 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *16451340
35
+ version_requirements: *5589620
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rake
38
- requirement: &16450440 !ruby/object:Gem::Requirement
38
+ requirement: &5588400 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *16450440
46
+ version_requirements: *5588400
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rspec
49
- requirement: &16449960 !ruby/object:Gem::Requirement
49
+ requirement: &5613340 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,7 +54,7 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *16449960
57
+ version_requirements: *5613340
58
58
  description: allows you to get quotes from the glide api for the services required
59
59
  in one go and sum up the totals
60
60
  email:
@@ -88,7 +88,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
88
88
  version: '0'
89
89
  segments:
90
90
  - 0
91
- hash: 2390579026065632148
91
+ hash: 4300868938252812644
92
92
  required_rubygems_version: !ruby/object:Gem::Requirement
93
93
  none: false
94
94
  requirements:
@@ -97,7 +97,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
97
97
  version: '0'
98
98
  segments:
99
99
  - 0
100
- hash: 2390579026065632148
100
+ hash: 4300868938252812644
101
101
  requirements: []
102
102
  rubyforge_project: glide
103
103
  rubygems_version: 1.8.15