medivo 0.2.15 → 0.2.16

Sign up to get free protection for your applications and to get access to all the features.
@@ -22,12 +22,12 @@ module Medivo
22
22
  if real_data?
23
23
  data = resource.get :params=>{:labcorp_id=>lab_code, :appointment_date=>date}
24
24
  # data is json encoded hash: { :times => ['time1', 'time2'] }
25
- data = JSON.parse(data)
25
+ data = JSON.parse(data)['times']
26
26
  else
27
27
  data = build_fake_data(date)
28
28
  end
29
29
  # filter the hash before returning
30
- filter_data(data, am_pm)
30
+ {'times'=> filter_data(data, am_pm)}
31
31
  end
32
32
 
33
33
  ##
@@ -46,8 +46,7 @@ module Medivo
46
46
  if real_data?
47
47
  data = resource.post :labcorp_id=>lab_code, :time_id=>time_id, :user=>user
48
48
  # data is json { :confimation => ( 'real number' or nil if no appointment made ) }
49
- data = JSON.parse(data)
50
- data['confirmation']
49
+ JSON.parse(data)['confirmation']
51
50
  else
52
51
  nil
53
52
  end
@@ -70,22 +69,21 @@ module Medivo
70
69
  true unless !Rails.env.test? and @config.real_data == false
71
70
  end
72
71
 
73
- def filter_data(hash, am_pm)
72
+ def filter_data(times, am_pm)
74
73
  now = Time.now
75
- hash['times'].reject! do |time_string|
76
- time = Time.strptime(time_string, LABCORP_FORMAT) rescue nil
77
- !time or !time_string.match(/#{am_pm}/) or (time < now)
78
- end
79
- hash
74
+ times.collect! { |time| OpenStruct.new(time: (Time.strptime(time, LABCORP_FORMAT) rescue nil), time_str: time) }
75
+ times.reject! { |o| !o.time or !o.time_str.match(/#{am_pm}/) or (o.time < now) }
76
+ times.sort_by! {|o| o.time }
77
+ times.collect! { |o| o.time_str }
80
78
  end
81
79
 
82
80
  def build_fake_data(date)
83
81
  date = date.is_a?(String) ? Date.strptime(date, MDY_FORMAT) : date
84
- {'times'=> [
85
- build_date(date, "08:30 AM"), build_date(date, "10:30 AM"),
86
- build_date((date + 1), "03:30 PM"), build_date((date+1), "01:30 PM"),
87
- build_date((date + 2), "10:30 AM"), build_date((date+1), "03:00 PM"),
88
- ]}
82
+ [
83
+ build_date(date, "08:30 AM"), build_date(date, "10:30 AM"),
84
+ build_date((date + 1), "03:30 PM"), build_date((date+1), "01:30 PM"),
85
+ build_date((date + 2), "10:30 AM"), build_date((date+1), "03:00 PM"),
86
+ ]
89
87
  end
90
88
 
91
89
  def build_date(date, time)
@@ -1,3 +1,3 @@
1
1
  module Medivo
2
- VERSION = "0.2.15"
2
+ VERSION = "0.2.16"
3
3
  end
@@ -7,7 +7,7 @@ describe Medivo::Appointment do
7
7
 
8
8
  describe "with valid data" do
9
9
  before do
10
- @all_times = ["11/03/2011|08:30 AM", "11/04/2011|08:30 AM", "11/04/2011|08:30 PM"]
10
+ @all_times = ["11/03/2011|08:30 AM", "11/04/2011|08:30 PM", "11/04/2011|08:30 AM"]
11
11
  end
12
12
 
13
13
  let(:body) { {'times'=> @all_times} }
@@ -21,11 +21,11 @@ describe Medivo::Appointment do
21
21
  end
22
22
 
23
23
  it "returns times" do
24
- returned_times('11/01/2011', '').should == @all_times
24
+ returned_times('11/01/2011', '').should == @all_times.sort
25
25
  end
26
26
 
27
27
  it "filters out past date times" do
28
- returned_times('11/04/2011', '').should == @all_times.slice(1, 2)
28
+ returned_times('11/04/2011', '').should == @all_times.slice(1, 2).sort
29
29
  end
30
30
 
31
31
  it "filters out past or pm times" do
@@ -40,6 +40,10 @@ describe Medivo::Appointment do
40
40
  @all_times = ["11/02011|08:30 AM", "11/04/2011|11:30 AM"]
41
41
  returned_times('11/04/2011', '').should == ["11/04/2011|11:30 AM"]
42
42
  end
43
+
44
+ it "orders the time strings" do
45
+ returned_times('11/04/2011', '').should == ["11/04/2011|08:30 AM", "11/04/2011|08:30 PM"]
46
+ end
43
47
  end
44
48
 
45
49
  describe "with invalid request returns error message" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: medivo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.15
4
+ version: 0.2.16
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -14,7 +14,7 @@ default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rails
17
- requirement: &2165114340 !ruby/object:Gem::Requirement
17
+ requirement: &2152994980 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ~>
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: 3.1.0
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *2165114340
25
+ version_requirements: *2152994980
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: jquery-rails
28
- requirement: &2165113900 !ruby/object:Gem::Requirement
28
+ requirement: &2152994560 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ! '>='
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
- version_requirements: *2165113900
36
+ version_requirements: *2152994560
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: coffee-script
39
- requirement: &2165113440 !ruby/object:Gem::Requirement
39
+ requirement: &2152994100 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ! '>='
@@ -44,10 +44,10 @@ dependencies:
44
44
  version: '0'
45
45
  type: :runtime
46
46
  prerelease: false
47
- version_requirements: *2165113440
47
+ version_requirements: *2152994100
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: haml-rails
50
- requirement: &2165113020 !ruby/object:Gem::Requirement
50
+ requirement: &2152993680 !ruby/object:Gem::Requirement
51
51
  none: false
52
52
  requirements:
53
53
  - - ! '>='
@@ -55,10 +55,10 @@ dependencies:
55
55
  version: '0'
56
56
  type: :runtime
57
57
  prerelease: false
58
- version_requirements: *2165113020
58
+ version_requirements: *2152993680
59
59
  - !ruby/object:Gem::Dependency
60
60
  name: geocoder
61
- requirement: &2165112600 !ruby/object:Gem::Requirement
61
+ requirement: &2152993260 !ruby/object:Gem::Requirement
62
62
  none: false
63
63
  requirements:
64
64
  - - ! '>='
@@ -66,10 +66,10 @@ dependencies:
66
66
  version: '0'
67
67
  type: :runtime
68
68
  prerelease: false
69
- version_requirements: *2165112600
69
+ version_requirements: *2152993260
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: rest-client
72
- requirement: &2165112180 !ruby/object:Gem::Requirement
72
+ requirement: &2152992840 !ruby/object:Gem::Requirement
73
73
  none: false
74
74
  requirements:
75
75
  - - ! '>='
@@ -77,10 +77,10 @@ dependencies:
77
77
  version: '0'
78
78
  type: :runtime
79
79
  prerelease: false
80
- version_requirements: *2165112180
80
+ version_requirements: *2152992840
81
81
  - !ruby/object:Gem::Dependency
82
82
  name: pdfkit
83
- requirement: &2165111740 !ruby/object:Gem::Requirement
83
+ requirement: &2152992420 !ruby/object:Gem::Requirement
84
84
  none: false
85
85
  requirements:
86
86
  - - ! '>='
@@ -88,10 +88,10 @@ dependencies:
88
88
  version: '0'
89
89
  type: :runtime
90
90
  prerelease: false
91
- version_requirements: *2165111740
91
+ version_requirements: *2152992420
92
92
  - !ruby/object:Gem::Dependency
93
93
  name: prawn
94
- requirement: &2165111320 !ruby/object:Gem::Requirement
94
+ requirement: &2152992000 !ruby/object:Gem::Requirement
95
95
  none: false
96
96
  requirements:
97
97
  - - ! '>='
@@ -99,7 +99,7 @@ dependencies:
99
99
  version: '0'
100
100
  type: :runtime
101
101
  prerelease: false
102
- version_requirements: *2165111320
102
+ version_requirements: *2152992000
103
103
  description: Use the medivo platform to find lab locations, make labcorp appointments,
104
104
  place lab orders
105
105
  email:
@@ -312,7 +312,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
312
312
  version: '0'
313
313
  segments:
314
314
  - 0
315
- hash: 883431128477834155
315
+ hash: -273585973971509204
316
316
  required_rubygems_version: !ruby/object:Gem::Requirement
317
317
  none: false
318
318
  requirements:
@@ -321,7 +321,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
321
321
  version: '0'
322
322
  segments:
323
323
  - 0
324
- hash: 883431128477834155
324
+ hash: -273585973971509204
325
325
  requirements: []
326
326
  rubyforge_project:
327
327
  rubygems_version: 1.6.2