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.
Files changed (25) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +18 -0
  3. data/lib/queri/stats/call_distribution_by_day/answered_call_distribution_per_day.rb +28 -0
  4. data/lib/queri/stats/call_distribution_by_day/answered_call_wait_time_per_day.rb +28 -0
  5. data/lib/queri/stats/call_distribution_by_day/inclusive_service_level_agreement_per_day.rb +36 -0
  6. data/lib/queri/stats/call_distribution_by_day/queue_length_per_day.rb +29 -0
  7. data/lib/queri/stats/call_distribution_by_day/sales_per_day.rb +30 -0
  8. data/lib/queri/stats/call_distribution_by_day/schedule_adherence_per_day.rb +24 -0
  9. data/lib/queri/stats/call_distribution_by_day/traffic_analysis_by_period_per_day.rb +39 -0
  10. data/lib/queri/stats/call_distribution_by_day/unanswered_call_wait_time_per_day.rb +28 -0
  11. data/lib/queri/stats/call_distribution_by_day.rb +11 -0
  12. data/lib/queri/stats/unanswered_calls/all_calls.rb +2 -50
  13. data/lib/queri/stats/unanswered_calls/calls_fully_within_the_given_time_interval.rb +2 -51
  14. data/lib/queri/version.rb +1 -1
  15. data/spec/stats/call_distribution_by_day/answered_call_distribution_per_day_spec.rb +20 -0
  16. data/spec/stats/call_distribution_by_day/answered_call_wait_time_per_day_spec.rb +20 -0
  17. data/spec/stats/call_distribution_by_day/call_distribution_by_day_spec.rb +7 -0
  18. data/spec/stats/call_distribution_by_day/inclusive_service_level_agreement_per_day_spec.rb +20 -0
  19. data/spec/stats/call_distribution_by_day/queue_length_per_day_spec.rb +20 -0
  20. data/spec/stats/call_distribution_by_day/sales_per_day_spec.rb +20 -0
  21. data/spec/stats/call_distribution_by_day/schedule_adherence_per_day_spec.rb +20 -0
  22. data/spec/stats/call_distribution_by_day/traffic_analysis_by_period_per_day_spec.rb +20 -0
  23. data/spec/stats/call_distribution_by_day/unanswered_call_wait_time_per_day_spec.rb +20 -0
  24. data/spec/stats/unanswered_calls/all_calls_spec.rb +1 -1
  25. metadata +29 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: cb616a6c90427ff7c15dc01e4561c0f818ba5864
4
- data.tar.gz: b48087e47fbfc68cd0099c8185af258dd98b2e66
3
+ metadata.gz: 553891ce756e39dd91f174f9dc9c912110d176c2
4
+ data.tar.gz: 396b6795ed23a54762e3e08908fba1d57bf022f4
5
5
  SHA512:
6
- metadata.gz: e18faa24b9b4b53c497bfb99649695cc3239820cfcae3bc827fb327a7df1c93d9a60ba5ed8ec17d2cddb4b9edf94c05c9c592752aae1d405bda2f62b10ea3f57
7
- data.tar.gz: 808db2b1aa8d157c03fc6bd8298ef2cca3bf8a76f6a06fbc02af71f966a47cf155a00a5e63924ff4ede0f834d45ad1c5e15c07618c3ab4d274f0715bd0ca87d9
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, "&nbsp;",
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, "&nbsp;",
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, "&lt; 10",
19
+ :percentage_of_calls_answered_under_20_sec, "&lt; 20",
20
+ :percentage_of_calls_answered_under_30_sec, "&lt; 30",
21
+ :percentage_of_calls_answered_under_40_sec, "&lt; 40",
22
+ :percentage_of_calls_answered_under_50_sec, "&lt; 50",
23
+ :percentage_of_calls_answered_under_60_sec, "&lt; 60",
24
+ :percentage_of_calls_answered_under_70_sec, "&lt; 70",
25
+ :percentage_of_calls_answered_under_80_sec, "&lt; 80",
26
+ :percentage_of_calls_answered_under_90_sec, "&lt; 90",
27
+ :percentage_of_calls_answered_under_100_sec, "&lt; 100",
28
+ :percentage_of_calls_answered_under_110_sec, "&lt; 110",
29
+ :percentage_of_calls_answered_under_120_sec, "&lt; 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, "&nbsp;",
17
+ :minimum_queue_length, "Min",
18
+ :maximum_queue_length, "Max",
19
+ :another_bar_graph, "&nbsp;",
20
+ :coverage_percentage, "Cover.",
21
+ :rate_of_throughput_per_hour, "Steps",
22
+ :empty, "&nbsp;"
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, "&nbsp;",
19
+ :placeholder_for_sales_bar_graph, "&nbsp;",
20
+ :qcont, "QCont.",
21
+ :contacts, "Contacts",
22
+ :contacts_percentage, "&nbsp;",
23
+ :placeholder_for_contacts_bar_graph, "&nbsp;"
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, "&nbsp;",
17
+ :placeholder_for_bar_graph, "&nbsp;"
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, "&nbsp;",
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
@@ -0,0 +1,11 @@
1
+ module Queri
2
+ class Stats
3
+ class CallDistributionByDay
4
+ @@xml_code = "CallDistrDO"
5
+
6
+ def self.xml_code
7
+ @@xml_code
8
+ end
9
+ end
10
+ end
11
+ end
@@ -1,18 +1,14 @@
1
1
  module Queri
2
2
  class Stats
3
3
  class UnansweredCalls
4
- class AllCalls
5
- attr_reader :response
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
- attr_reader :response
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
@@ -1,3 +1,3 @@
1
1
  module Queri
2
- VERSION = "0.0.6"
2
+ VERSION = "0.0.7"
3
3
  end
@@ -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,7 @@
1
+ require 'spec_helper'
2
+
3
+ describe Queri::Stats::CallDistributionByDay do
4
+ let(:report_class) { Queri::Stats::CallDistributionByDay }
5
+
6
+ it_behaves_like "a report class"
7
+ 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
@@ -1,4 +1,4 @@
1
- require File.join( File.dirname(__FILE__), '..', '..', 'spec_helper' )
1
+ require 'spec_helper'
2
2
 
3
3
  describe Queri::Stats::UnansweredCalls::AllCalls do
4
4
  let(:report_class) { Queri::Stats::UnansweredCalls::AllCalls }
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.6
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-01 00:00:00.000000000 Z
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