queri 0.0.6 → 0.0.7
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.
- checksums.yaml +4 -4
- data/README.md +18 -0
- data/lib/queri/stats/call_distribution_by_day/answered_call_distribution_per_day.rb +28 -0
- data/lib/queri/stats/call_distribution_by_day/answered_call_wait_time_per_day.rb +28 -0
- data/lib/queri/stats/call_distribution_by_day/inclusive_service_level_agreement_per_day.rb +36 -0
- data/lib/queri/stats/call_distribution_by_day/queue_length_per_day.rb +29 -0
- data/lib/queri/stats/call_distribution_by_day/sales_per_day.rb +30 -0
- data/lib/queri/stats/call_distribution_by_day/schedule_adherence_per_day.rb +24 -0
- data/lib/queri/stats/call_distribution_by_day/traffic_analysis_by_period_per_day.rb +39 -0
- data/lib/queri/stats/call_distribution_by_day/unanswered_call_wait_time_per_day.rb +28 -0
- data/lib/queri/stats/call_distribution_by_day.rb +11 -0
- data/lib/queri/stats/unanswered_calls/all_calls.rb +2 -50
- data/lib/queri/stats/unanswered_calls/calls_fully_within_the_given_time_interval.rb +2 -51
- data/lib/queri/version.rb +1 -1
- data/spec/stats/call_distribution_by_day/answered_call_distribution_per_day_spec.rb +20 -0
- data/spec/stats/call_distribution_by_day/answered_call_wait_time_per_day_spec.rb +20 -0
- data/spec/stats/call_distribution_by_day/call_distribution_by_day_spec.rb +7 -0
- data/spec/stats/call_distribution_by_day/inclusive_service_level_agreement_per_day_spec.rb +20 -0
- data/spec/stats/call_distribution_by_day/queue_length_per_day_spec.rb +20 -0
- data/spec/stats/call_distribution_by_day/sales_per_day_spec.rb +20 -0
- data/spec/stats/call_distribution_by_day/schedule_adherence_per_day_spec.rb +20 -0
- data/spec/stats/call_distribution_by_day/traffic_analysis_by_period_per_day_spec.rb +20 -0
- data/spec/stats/call_distribution_by_day/unanswered_call_wait_time_per_day_spec.rb +20 -0
- data/spec/stats/unanswered_calls/all_calls_spec.rb +1 -1
- metadata +29 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 553891ce756e39dd91f174f9dc9c912110d176c2
|
4
|
+
data.tar.gz: 396b6795ed23a54762e3e08908fba1d57bf022f4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 089b9f30832189f5d0efbf8d0b530984874230fe39b4fc9bb123a32b62d04ea6d7ec1a7db41aa4f39e38041133d94cd08ae5c3a93326c3e0eaed353144ef84ef
|
7
|
+
data.tar.gz: d862a733683950091997c0731c86961b5ac009380be92413f4768950b46d6f52fcff3c65294340c2471c28f9f7ea2c9020aef80c1243b4f25e66363278ec2fd7
|
data/README.md
CHANGED
@@ -63,6 +63,15 @@ Currently returns analyses from two methods: QM.stats and QM.realtime.
|
|
63
63
|
* QueuePosition
|
64
64
|
* ServiceLevelAgreement
|
65
65
|
* Transfers
|
66
|
+
* CallDistributionByDay
|
67
|
+
* AnsweredCallDistributionPerDay
|
68
|
+
* AnsweredCallWaitTimePerDay
|
69
|
+
* InclusiveServiceLevelAgreementPerDay
|
70
|
+
* QueueLengthPerDay
|
71
|
+
* SalesPerDay
|
72
|
+
* ScheduleAdherencePerDay
|
73
|
+
* TrafficAnalysisByPeriodPerDay
|
74
|
+
* UnansweredCallWaitTimePerDay
|
66
75
|
* DetailsOfAgentSessionsAndPauses
|
67
76
|
* DetailOfAgentSessions
|
68
77
|
* DetailOfAgentPauses
|
@@ -156,6 +165,15 @@ Composite aggregate reports return an Array of Hashes, each Hash corresponding t
|
|
156
165
|
* QueuePosition
|
157
166
|
* ServiceLevelAgreement
|
158
167
|
* Transfers
|
168
|
+
* CallDistributionByDay
|
169
|
+
* AnsweredCallDistributionPerDay
|
170
|
+
* AnsweredCallWaitTimePerDay
|
171
|
+
* InclusiveServiceLevelAgreementPerDay
|
172
|
+
* QueueLengthPerDay
|
173
|
+
* SalesPerDay
|
174
|
+
* ScheduleAdherencePerDay
|
175
|
+
* TrafficAnalysisByPeriodPerDay
|
176
|
+
* UnansweredCallWaitTimePerDay
|
159
177
|
* Distributions
|
160
178
|
* AcdAttemptsByQueue
|
161
179
|
* AcdAttemptsByTerminal
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Queri
|
2
|
+
class Stats
|
3
|
+
class CallDistributionByDay
|
4
|
+
class AnsweredCallDistributionPerDay < Queri::Stats
|
5
|
+
include CompositeReportHelpers
|
6
|
+
|
7
|
+
class << self
|
8
|
+
def xml_code
|
9
|
+
CallDistributionByDay.xml_code + ".AnsDistrPerDay"
|
10
|
+
end
|
11
|
+
|
12
|
+
def key_translations
|
13
|
+
ActiveSupport::OrderedHash[
|
14
|
+
:day, "Day",
|
15
|
+
:number_of_calls, "Num",
|
16
|
+
:percentage_of_answered_calls_within_period, " ",
|
17
|
+
:placeholder_for_num_calls_bar_graph, "Answered calls",
|
18
|
+
:average_call_duration, "Avg",
|
19
|
+
:minimum_call_duration, "Min",
|
20
|
+
:maximum_call_duration, "Max",
|
21
|
+
:placeholder_for_call_duration_bar_graph, "Avg duration"
|
22
|
+
]
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Queri
|
2
|
+
class Stats
|
3
|
+
class CallDistributionByDay
|
4
|
+
class AnsweredCallWaitTimePerDay < Queri::Stats
|
5
|
+
include CompositeReportHelpers
|
6
|
+
|
7
|
+
class << self
|
8
|
+
def xml_code
|
9
|
+
CallDistributionByDay.xml_code + ".AnsWaitPerDay"
|
10
|
+
end
|
11
|
+
|
12
|
+
def key_translations
|
13
|
+
ActiveSupport::OrderedHash[
|
14
|
+
:day, "Day",
|
15
|
+
:number_of_calls, "Num",
|
16
|
+
:percentage_of_answered_calls_within_period, " ",
|
17
|
+
:placeholder_for_num_calls_bar_graph, "Answered calls",
|
18
|
+
:average_call_wait_time, "Avg",
|
19
|
+
:minimum_call_wait_time, "Min",
|
20
|
+
:maximum_call_wait_time, "Max",
|
21
|
+
:placeholder_for_avg_wait_bar_graph, "Avg wait"
|
22
|
+
]
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
module Queri
|
2
|
+
class Stats
|
3
|
+
class CallDistributionByDay
|
4
|
+
class InclusiveServiceLevelAgreementPerDay < Queri::Stats
|
5
|
+
include CompositeReportHelpers
|
6
|
+
|
7
|
+
class << self
|
8
|
+
def xml_code
|
9
|
+
CallDistributionByDay.xml_code + ".InclSlaPerDay"
|
10
|
+
end
|
11
|
+
|
12
|
+
def key_translations
|
13
|
+
ActiveSupport::OrderedHash[
|
14
|
+
:day, "Day",
|
15
|
+
:number_of_answered_calls, "Ans.",
|
16
|
+
:number_of_unanswered_calls, "Unans.",
|
17
|
+
:number_of_processed_calls, "Num",
|
18
|
+
:percentage_of_calls_answered_under_10_sec, "< 10",
|
19
|
+
:percentage_of_calls_answered_under_20_sec, "< 20",
|
20
|
+
:percentage_of_calls_answered_under_30_sec, "< 30",
|
21
|
+
:percentage_of_calls_answered_under_40_sec, "< 40",
|
22
|
+
:percentage_of_calls_answered_under_50_sec, "< 50",
|
23
|
+
:percentage_of_calls_answered_under_60_sec, "< 60",
|
24
|
+
:percentage_of_calls_answered_under_70_sec, "< 70",
|
25
|
+
:percentage_of_calls_answered_under_80_sec, "< 80",
|
26
|
+
:percentage_of_calls_answered_under_90_sec, "< 90",
|
27
|
+
:percentage_of_calls_answered_under_100_sec, "< 100",
|
28
|
+
:percentage_of_calls_answered_under_110_sec, "< 110",
|
29
|
+
:percentage_of_calls_answered_under_120_sec, "< 120"
|
30
|
+
]
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module Queri
|
2
|
+
class Stats
|
3
|
+
class CallDistributionByDay
|
4
|
+
class QueueLengthPerDay < Queri::Stats
|
5
|
+
include CompositeReportHelpers
|
6
|
+
|
7
|
+
class << self
|
8
|
+
def xml_code
|
9
|
+
CallDistributionByDay.xml_code + ".QPosPerDay"
|
10
|
+
end
|
11
|
+
|
12
|
+
def key_translations
|
13
|
+
ActiveSupport::OrderedHash[
|
14
|
+
:day, "Day",
|
15
|
+
:average_queue_length_during_period, "Avg",
|
16
|
+
:placeholder_for_length_avg_bar_graph, " ",
|
17
|
+
:minimum_queue_length, "Min",
|
18
|
+
:maximum_queue_length, "Max",
|
19
|
+
:another_bar_graph, " ",
|
20
|
+
:coverage_percentage, "Cover.",
|
21
|
+
:rate_of_throughput_per_hour, "Steps",
|
22
|
+
:empty, " "
|
23
|
+
]
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module Queri
|
2
|
+
class Stats
|
3
|
+
class CallDistributionByDay
|
4
|
+
class SalesPerDay < Queri::Stats
|
5
|
+
include CompositeReportHelpers
|
6
|
+
|
7
|
+
class << self
|
8
|
+
def xml_code
|
9
|
+
CallDistributionByDay.xml_code + ".SalesPerDay"
|
10
|
+
end
|
11
|
+
|
12
|
+
def key_translations
|
13
|
+
ActiveSupport::OrderedHash[
|
14
|
+
:day, "Day",
|
15
|
+
:conv, "Conv.",
|
16
|
+
:qconv, "QConv.",
|
17
|
+
:sales, "Sales",
|
18
|
+
:sales_percentage, " ",
|
19
|
+
:placeholder_for_sales_bar_graph, " ",
|
20
|
+
:qcont, "QCont.",
|
21
|
+
:contacts, "Contacts",
|
22
|
+
:contacts_percentage, " ",
|
23
|
+
:placeholder_for_contacts_bar_graph, " "
|
24
|
+
]
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module Queri
|
2
|
+
class Stats
|
3
|
+
class CallDistributionByDay
|
4
|
+
class ScheduleAdherencePerDay < Queri::Stats
|
5
|
+
include CompositeReportHelpers
|
6
|
+
|
7
|
+
class << self
|
8
|
+
def xml_code
|
9
|
+
CallDistributionByDay.xml_code + ".StaffPerDay"
|
10
|
+
end
|
11
|
+
|
12
|
+
def key_translations
|
13
|
+
ActiveSupport::OrderedHash[
|
14
|
+
:day, "Day",
|
15
|
+
:number_of_agents, "Agents",
|
16
|
+
:percentage_of_all_agents_detected_within_period, " ",
|
17
|
+
:placeholder_for_bar_graph, " "
|
18
|
+
]
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
module Queri
|
2
|
+
class Stats
|
3
|
+
class CallDistributionByDay
|
4
|
+
class TrafficAnalysisByPeriodPerDay < Queri::Stats
|
5
|
+
include CompositeReportHelpers
|
6
|
+
|
7
|
+
class << self
|
8
|
+
def xml_code
|
9
|
+
CallDistributionByDay.xml_code + ".TrafficAnPerDay"
|
10
|
+
end
|
11
|
+
|
12
|
+
def key_translations
|
13
|
+
ActiveSupport::OrderedHash[
|
14
|
+
:day, "Day",
|
15
|
+
:average_agents_logged_in_per_period_vs_total_period, "Avg ag",
|
16
|
+
:number_of_incoming_calls_per_period_vs_available_agents, "Calls/Ag",
|
17
|
+
:incoming_calls_sla, "Svc Lvl",
|
18
|
+
:number_of_lost_calls, "Unans",
|
19
|
+
:percentage_of_lost_calls_below_x_seconds, "Unans short",
|
20
|
+
:number_of_outgoing_calls_per_period_vs_available_agents, "Avg out",
|
21
|
+
:outbound_to_inbound_ratio, "Out/in",
|
22
|
+
:average_incoming_call_wait_time, "Avg ans",
|
23
|
+
:average_incoming_call_talk_time, "Avg talk",
|
24
|
+
:maximum_answered_incoming_call_wait_time, "Max wait ans",
|
25
|
+
:maximum_lost_incoming_call_wait_time, "Max wait lost",
|
26
|
+
:maximum_incoming_call_talk_time, "Max dur",
|
27
|
+
:maximum_outgoing_call_talk_time, "Max dur out",
|
28
|
+
:number_of_incoming_calls, "Off.",
|
29
|
+
:number_of_answered_incoming_calls, "Ans.",
|
30
|
+
:number_of_answered_outgoing_calls, "Ans. out",
|
31
|
+
:minimum_logged_on_agents_for_period, "Min Ag.",
|
32
|
+
:maximum_logged_on_agents_for_period, "Max Ag."
|
33
|
+
]
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Queri
|
2
|
+
class Stats
|
3
|
+
class CallDistributionByDay
|
4
|
+
class UnansweredCallWaitTimePerDay < Queri::Stats
|
5
|
+
include CompositeReportHelpers
|
6
|
+
|
7
|
+
class << self
|
8
|
+
def xml_code
|
9
|
+
CallDistributionByDay.xml_code + ".UnansWaitPerDay"
|
10
|
+
end
|
11
|
+
|
12
|
+
def key_translations
|
13
|
+
ActiveSupport::OrderedHash[
|
14
|
+
:day, "Day",
|
15
|
+
:number_of_calls, "Num",
|
16
|
+
:percentage_of_unanswered_calls_within_period, " ",
|
17
|
+
:placeholder_for_num_calls_bar_graph, "Unanswered calls",
|
18
|
+
:average_call_wait_time, "Avg",
|
19
|
+
:minimum_call_wait_time, "Min",
|
20
|
+
:maximum_call_wait_time, "Max",
|
21
|
+
:placeholder_for_avg_wait_bar_graph, "Avg wait"
|
22
|
+
]
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -1,18 +1,14 @@
|
|
1
1
|
module Queri
|
2
2
|
class Stats
|
3
3
|
class UnansweredCalls
|
4
|
-
class AllCalls
|
5
|
-
|
4
|
+
class AllCalls < Queri::Stats
|
5
|
+
include AggregateReportHelpers
|
6
6
|
|
7
7
|
class << self
|
8
8
|
def xml_code
|
9
9
|
UnansweredCalls.xml_code + ".ReportKoAll"
|
10
10
|
end
|
11
11
|
|
12
|
-
def query_method
|
13
|
-
Stats.query_method
|
14
|
-
end
|
15
|
-
|
16
12
|
def key_translations
|
17
13
|
ActiveSupport::OrderedHash[
|
18
14
|
:calls_unanswered, "N.of unanswered calls:",
|
@@ -29,51 +25,7 @@ module Queri
|
|
29
25
|
:maximum_queue_position_at_disconnect, "Max queue position at disconnection:"
|
30
26
|
]
|
31
27
|
end
|
32
|
-
|
33
|
-
def keys
|
34
|
-
key_translations.keys
|
35
|
-
end
|
36
28
|
end
|
37
|
-
|
38
|
-
def initialize *args
|
39
|
-
raise ArgumentError, "expected arguments: queues(Array), period_start(Time), period_end(Time)" unless valid_args?(args)
|
40
|
-
@queues, @period_start, @period_end = normalize_times(*args)
|
41
|
-
@response = parse_response
|
42
|
-
end
|
43
|
-
|
44
|
-
private
|
45
|
-
|
46
|
-
def valid_args? args
|
47
|
-
valid = true
|
48
|
-
valid = false if args[0].class != Array
|
49
|
-
valid = false if args[1].class != Time
|
50
|
-
valid = false if args[2].class != Time
|
51
|
-
if valid and args[0].empty?
|
52
|
-
raise ArgumentError, "queues array cannot be empty"
|
53
|
-
end
|
54
|
-
return valid
|
55
|
-
end
|
56
|
-
|
57
|
-
def normalize_times queues, period_start, period_end
|
58
|
-
if period_start > period_end
|
59
|
-
tmp = period_start
|
60
|
-
period_start = period_end
|
61
|
-
period_end = tmp
|
62
|
-
end
|
63
|
-
return [queues, period_start, period_end]
|
64
|
-
end
|
65
|
-
|
66
|
-
def parse_response
|
67
|
-
r = Queri.send_request(@queues, self, @period_start, @period_end)
|
68
|
-
xml_keys_to_human_readable_keys = self.class.key_translations.invert
|
69
|
-
r.each_with_index do |metric,i|
|
70
|
-
if i > 0
|
71
|
-
metric[0] = xml_keys_to_human_readable_keys[ metric[0] ]
|
72
|
-
end
|
73
|
-
end
|
74
|
-
r.shift
|
75
|
-
Hash[*r.flatten]
|
76
|
-
end
|
77
29
|
end
|
78
30
|
end
|
79
31
|
end
|
@@ -1,18 +1,14 @@
|
|
1
1
|
module Queri
|
2
2
|
class Stats
|
3
3
|
class UnansweredCalls
|
4
|
-
class CallsFullyWithinTheGivenTimeInterval
|
5
|
-
|
4
|
+
class CallsFullyWithinTheGivenTimeInterval < Queri::Stats
|
5
|
+
include AggregateReportHelpers
|
6
6
|
|
7
7
|
class << self
|
8
8
|
def xml_code
|
9
9
|
UnansweredCalls.xml_code + ".ReportKoFully"
|
10
10
|
end
|
11
11
|
|
12
|
-
def query_method
|
13
|
-
Stats.query_method
|
14
|
-
end
|
15
|
-
|
16
12
|
def key_translations
|
17
13
|
ActiveSupport::OrderedHash[
|
18
14
|
:calls_fully_within_the_given_time_interval, "Calls fully within the given time interval:",
|
@@ -30,52 +26,7 @@ module Queri
|
|
30
26
|
:maximum_final_queue_position, "Max queue position at disconnection:"
|
31
27
|
]
|
32
28
|
end
|
33
|
-
|
34
|
-
def keys
|
35
|
-
key_translations.keys
|
36
|
-
end
|
37
29
|
end
|
38
|
-
|
39
|
-
def initialize *args
|
40
|
-
raise ArgumentError, "expected arguments: queues(Array), period_start(Time), period_end(Time)" unless valid_args?(args)
|
41
|
-
@queues, @period_start, @period_end = normalize_times(*args)
|
42
|
-
@response = parse_response
|
43
|
-
end
|
44
|
-
|
45
|
-
private
|
46
|
-
|
47
|
-
def valid_args? args
|
48
|
-
valid = true
|
49
|
-
valid = false if args[0].class != Array
|
50
|
-
valid = false if args[1].class != Time
|
51
|
-
valid = false if args[2].class != Time
|
52
|
-
if valid and args[0].empty?
|
53
|
-
raise ArgumentError, "queues array cannot be empty"
|
54
|
-
end
|
55
|
-
return valid
|
56
|
-
end
|
57
|
-
|
58
|
-
def normalize_times queues, period_start, period_end
|
59
|
-
if period_start > period_end
|
60
|
-
tmp = period_start
|
61
|
-
period_start = period_end
|
62
|
-
period_end = tmp
|
63
|
-
end
|
64
|
-
return [queues, period_start, period_end]
|
65
|
-
end
|
66
|
-
|
67
|
-
def parse_response
|
68
|
-
r = Queri.send_request(@queues, self, @period_start, @period_end)
|
69
|
-
xml_keys_to_human_readable_keys = self.class.key_translations.invert
|
70
|
-
r.each_with_index do |metric,i|
|
71
|
-
if i > 0
|
72
|
-
metric[0] = xml_keys_to_human_readable_keys[ metric[0] ]
|
73
|
-
end
|
74
|
-
end
|
75
|
-
r.shift
|
76
|
-
Hash[*r.flatten]
|
77
|
-
end
|
78
|
-
|
79
30
|
end
|
80
31
|
end
|
81
32
|
end
|
data/lib/queri/version.rb
CHANGED
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Queri::Stats::CallDistributionByDay::AnsweredCallDistributionPerDay do
|
4
|
+
let(:report_class) { Queri::Stats::CallDistributionByDay::AnsweredCallDistributionPerDay }
|
5
|
+
let(:xml_code) { report_class.xml_code }
|
6
|
+
|
7
|
+
before { Queri.configure_with(File.join(File.dirname(__FILE__), '..', '..', 'config.yml')) }
|
8
|
+
|
9
|
+
it_behaves_like "a report class"
|
10
|
+
|
11
|
+
it_behaves_like "a report method"
|
12
|
+
|
13
|
+
it_behaves_like "a queuemetrics report"
|
14
|
+
|
15
|
+
it_behaves_like "a stats report"
|
16
|
+
|
17
|
+
describe "An instance of", Queri::Stats::CallDistributionByDay::AnsweredCallDistributionPerDay do
|
18
|
+
it_behaves_like "a composite aggregate report instance"
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Queri::Stats::CallDistributionByDay::AnsweredCallWaitTimePerDay do
|
4
|
+
let(:report_class) { Queri::Stats::CallDistributionByDay::AnsweredCallWaitTimePerDay }
|
5
|
+
let(:xml_code) { report_class.xml_code }
|
6
|
+
|
7
|
+
before { Queri.configure_with(File.join(File.dirname(__FILE__), '..', '..', 'config.yml')) }
|
8
|
+
|
9
|
+
it_behaves_like "a report class"
|
10
|
+
|
11
|
+
it_behaves_like "a report method"
|
12
|
+
|
13
|
+
it_behaves_like "a queuemetrics report"
|
14
|
+
|
15
|
+
it_behaves_like "a stats report"
|
16
|
+
|
17
|
+
describe "An instance of", Queri::Stats::CallDistributionByDay::AnsweredCallWaitTimePerDay do
|
18
|
+
it_behaves_like "a composite aggregate report instance"
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Queri::Stats::CallDistributionByDay::InclusiveServiceLevelAgreementPerDay do
|
4
|
+
let(:report_class) { Queri::Stats::CallDistributionByDay::InclusiveServiceLevelAgreementPerDay }
|
5
|
+
let(:xml_code) { report_class.xml_code }
|
6
|
+
|
7
|
+
before { Queri.configure_with(File.join(File.dirname(__FILE__), '..', '..', 'config.yml')) }
|
8
|
+
|
9
|
+
it_behaves_like "a report class"
|
10
|
+
|
11
|
+
it_behaves_like "a report method"
|
12
|
+
|
13
|
+
it_behaves_like "a queuemetrics report"
|
14
|
+
|
15
|
+
it_behaves_like "a stats report"
|
16
|
+
|
17
|
+
describe "An instance of", Queri::Stats::CallDistributionByDay::InclusiveServiceLevelAgreementPerDay do
|
18
|
+
it_behaves_like "a composite aggregate report instance"
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Queri::Stats::CallDistributionByDay::QueueLengthPerDay do
|
4
|
+
let(:report_class) { Queri::Stats::CallDistributionByDay::QueueLengthPerDay }
|
5
|
+
let(:xml_code) { report_class.xml_code }
|
6
|
+
|
7
|
+
before { Queri.configure_with(File.join(File.dirname(__FILE__), '..', '..', 'config.yml')) }
|
8
|
+
|
9
|
+
it_behaves_like "a report class"
|
10
|
+
|
11
|
+
it_behaves_like "a report method"
|
12
|
+
|
13
|
+
it_behaves_like "a queuemetrics report"
|
14
|
+
|
15
|
+
it_behaves_like "a stats report"
|
16
|
+
|
17
|
+
describe "An instance of", Queri::Stats::CallDistributionByDay::QueueLengthPerDay do
|
18
|
+
it_behaves_like "a composite aggregate report instance"
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Queri::Stats::CallDistributionByDay::SalesPerDay do
|
4
|
+
let(:report_class) { Queri::Stats::CallDistributionByDay::SalesPerDay }
|
5
|
+
let(:xml_code) { report_class.xml_code }
|
6
|
+
|
7
|
+
before { Queri.configure_with(File.join(File.dirname(__FILE__), '..', '..', 'config.yml')) }
|
8
|
+
|
9
|
+
it_behaves_like "a report class"
|
10
|
+
|
11
|
+
it_behaves_like "a report method"
|
12
|
+
|
13
|
+
it_behaves_like "a queuemetrics report"
|
14
|
+
|
15
|
+
it_behaves_like "a stats report"
|
16
|
+
|
17
|
+
describe "An instance of", Queri::Stats::CallDistributionByDay::SalesPerDay do
|
18
|
+
it_behaves_like "a composite aggregate report instance"
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Queri::Stats::CallDistributionByDay::ScheduleAdherencePerDay do
|
4
|
+
let(:report_class) { Queri::Stats::CallDistributionByDay::ScheduleAdherencePerDay }
|
5
|
+
let(:xml_code) { report_class.xml_code }
|
6
|
+
|
7
|
+
before { Queri.configure_with(File.join(File.dirname(__FILE__), '..', '..', 'config.yml')) }
|
8
|
+
|
9
|
+
it_behaves_like "a report class"
|
10
|
+
|
11
|
+
it_behaves_like "a report method"
|
12
|
+
|
13
|
+
it_behaves_like "a queuemetrics report"
|
14
|
+
|
15
|
+
it_behaves_like "a stats report"
|
16
|
+
|
17
|
+
describe "An instance of", Queri::Stats::CallDistributionByDay::ScheduleAdherencePerDay do
|
18
|
+
it_behaves_like "a composite aggregate report instance"
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Queri::Stats::CallDistributionByDay::TrafficAnalysisByPeriodPerDay do
|
4
|
+
let(:report_class) { Queri::Stats::CallDistributionByDay::TrafficAnalysisByPeriodPerDay }
|
5
|
+
let(:xml_code) { report_class.xml_code }
|
6
|
+
|
7
|
+
before { Queri.configure_with(File.join(File.dirname(__FILE__), '..', '..', 'config.yml')) }
|
8
|
+
|
9
|
+
it_behaves_like "a report class"
|
10
|
+
|
11
|
+
it_behaves_like "a report method"
|
12
|
+
|
13
|
+
it_behaves_like "a queuemetrics report"
|
14
|
+
|
15
|
+
it_behaves_like "a stats report"
|
16
|
+
|
17
|
+
describe "An instance of", Queri::Stats::CallDistributionByDay::TrafficAnalysisByPeriodPerDay do
|
18
|
+
it_behaves_like "a composite aggregate report instance"
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Queri::Stats::CallDistributionByDay::UnansweredCallWaitTimePerDay do
|
4
|
+
let(:report_class) { Queri::Stats::CallDistributionByDay::UnansweredCallWaitTimePerDay }
|
5
|
+
let(:xml_code) { report_class.xml_code }
|
6
|
+
|
7
|
+
before { Queri.configure_with(File.join(File.dirname(__FILE__), '..', '..', 'config.yml')) }
|
8
|
+
|
9
|
+
it_behaves_like "a report class"
|
10
|
+
|
11
|
+
it_behaves_like "a report method"
|
12
|
+
|
13
|
+
it_behaves_like "a queuemetrics report"
|
14
|
+
|
15
|
+
it_behaves_like "a stats report"
|
16
|
+
|
17
|
+
describe "An instance of", Queri::Stats::CallDistributionByDay::UnansweredCallWaitTimePerDay do
|
18
|
+
it_behaves_like "a composite aggregate report instance"
|
19
|
+
end
|
20
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: queri
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brad Rice
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-02-
|
11
|
+
date: 2014-02-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -104,6 +104,15 @@ files:
|
|
104
104
|
- lib/queri/stats/answered_calls/queue_position.rb
|
105
105
|
- lib/queri/stats/answered_calls/service_level_agreement.rb
|
106
106
|
- lib/queri/stats/answered_calls/transfers.rb
|
107
|
+
- lib/queri/stats/call_distribution_by_day.rb
|
108
|
+
- lib/queri/stats/call_distribution_by_day/answered_call_distribution_per_day.rb
|
109
|
+
- lib/queri/stats/call_distribution_by_day/answered_call_wait_time_per_day.rb
|
110
|
+
- lib/queri/stats/call_distribution_by_day/inclusive_service_level_agreement_per_day.rb
|
111
|
+
- lib/queri/stats/call_distribution_by_day/queue_length_per_day.rb
|
112
|
+
- lib/queri/stats/call_distribution_by_day/sales_per_day.rb
|
113
|
+
- lib/queri/stats/call_distribution_by_day/schedule_adherence_per_day.rb
|
114
|
+
- lib/queri/stats/call_distribution_by_day/traffic_analysis_by_period_per_day.rb
|
115
|
+
- lib/queri/stats/call_distribution_by_day/unanswered_call_wait_time_per_day.rb
|
107
116
|
- lib/queri/stats/details_of_agent_sessions_and_pauses.rb
|
108
117
|
- lib/queri/stats/details_of_agent_sessions_and_pauses/detail_of_agent_pauses.rb
|
109
118
|
- lib/queri/stats/details_of_agent_sessions_and_pauses/detail_of_agent_sessions.rb
|
@@ -157,6 +166,15 @@ files:
|
|
157
166
|
- spec/stats/answered_calls/queue_position_spec.rb
|
158
167
|
- spec/stats/answered_calls/service_level_agreement_spec.rb
|
159
168
|
- spec/stats/answered_calls/transfers_spec.rb
|
169
|
+
- spec/stats/call_distribution_by_day/answered_call_distribution_per_day_spec.rb
|
170
|
+
- spec/stats/call_distribution_by_day/answered_call_wait_time_per_day_spec.rb
|
171
|
+
- spec/stats/call_distribution_by_day/call_distribution_by_day_spec.rb
|
172
|
+
- spec/stats/call_distribution_by_day/inclusive_service_level_agreement_per_day_spec.rb
|
173
|
+
- spec/stats/call_distribution_by_day/queue_length_per_day_spec.rb
|
174
|
+
- spec/stats/call_distribution_by_day/sales_per_day_spec.rb
|
175
|
+
- spec/stats/call_distribution_by_day/schedule_adherence_per_day_spec.rb
|
176
|
+
- spec/stats/call_distribution_by_day/traffic_analysis_by_period_per_day_spec.rb
|
177
|
+
- spec/stats/call_distribution_by_day/unanswered_call_wait_time_per_day_spec.rb
|
160
178
|
- spec/stats/details_of_agent_sessions_and_pauses/detail_of_agent_pauses_spec.rb
|
161
179
|
- spec/stats/details_of_agent_sessions_and_pauses/detail_of_agent_sessions_spec.rb
|
162
180
|
- spec/stats/details_of_agent_sessions_and_pauses/details_of_agent_sessions_and_pauses_spec.rb
|
@@ -246,6 +264,15 @@ test_files:
|
|
246
264
|
- spec/stats/answered_calls/queue_position_spec.rb
|
247
265
|
- spec/stats/answered_calls/service_level_agreement_spec.rb
|
248
266
|
- spec/stats/answered_calls/transfers_spec.rb
|
267
|
+
- spec/stats/call_distribution_by_day/answered_call_distribution_per_day_spec.rb
|
268
|
+
- spec/stats/call_distribution_by_day/answered_call_wait_time_per_day_spec.rb
|
269
|
+
- spec/stats/call_distribution_by_day/call_distribution_by_day_spec.rb
|
270
|
+
- spec/stats/call_distribution_by_day/inclusive_service_level_agreement_per_day_spec.rb
|
271
|
+
- spec/stats/call_distribution_by_day/queue_length_per_day_spec.rb
|
272
|
+
- spec/stats/call_distribution_by_day/sales_per_day_spec.rb
|
273
|
+
- spec/stats/call_distribution_by_day/schedule_adherence_per_day_spec.rb
|
274
|
+
- spec/stats/call_distribution_by_day/traffic_analysis_by_period_per_day_spec.rb
|
275
|
+
- spec/stats/call_distribution_by_day/unanswered_call_wait_time_per_day_spec.rb
|
249
276
|
- spec/stats/details_of_agent_sessions_and_pauses/detail_of_agent_pauses_spec.rb
|
250
277
|
- spec/stats/details_of_agent_sessions_and_pauses/detail_of_agent_sessions_spec.rb
|
251
278
|
- spec/stats/details_of_agent_sessions_and_pauses/details_of_agent_sessions_and_pauses_spec.rb
|