kpi 0.5.5 → 0.5.6

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.
@@ -1,14 +1,19 @@
1
1
  module KPI
2
2
  class Entry
3
- attr_reader :name, :value, :description, :unit
3
+ attr_reader :name, :value, :description, :unit, :important
4
4
  def initialize(*args)
5
5
  options = args.extract_options!
6
6
  raise ArgumentError, "Wrong number of arguments (#{args.count} of 2)" unless args.count == 2
7
7
  @name, @value = args
8
8
  @description = options[:description]
9
+ @important = options[:important] || false
9
10
  @unit = options[:unit]
10
11
  end
11
12
 
13
+ def important?
14
+ !!self.important
15
+ end
16
+
12
17
  def to_a
13
18
  [@title, @value, @description, @unit].compact
14
19
  end
@@ -40,7 +40,8 @@ module KPI
40
40
  KPI::Entry.new(result.name.gsub("$$", orginal.name),
41
41
  result.value,
42
42
  :description => description,
43
- :unit => (result.unit || orginal.unit))
43
+ :unit => (result.unit || orginal.unit),
44
+ :important => (result.important? || orginal.important?))
44
45
  end
45
46
 
46
47
  private
@@ -36,5 +36,31 @@ describe "KPI::Entry" do
36
36
  assert_equal("EUR", @entry.unit)
37
37
  end
38
38
  end
39
+
40
+ describe "when entry is important" do
41
+ before { @entry = KPI::Entry.new "Income", 1294.23, :important => true }
42
+
43
+ it "returns true" do
44
+ assert @entry.important
45
+ end
46
+ end
47
+
48
+ describe :important? do
49
+ describe "when entry is important" do
50
+ before { @entry = KPI::Entry.new "Income", 1294.23, :important => true }
51
+
52
+ it "returns true" do
53
+ assert @entry.important?
54
+ end
55
+ end
56
+
57
+ describe "when entry is not important" do
58
+ before { @entry = KPI::Entry.new "Income", 1294.23 }
59
+
60
+ it "returns false" do
61
+ assert !@entry.important?
62
+ end
63
+ end
64
+ end
39
65
  end
40
66
  end
@@ -14,7 +14,7 @@ describe "KPI::MergedReport" do
14
14
  end
15
15
 
16
16
  def test_kpi_2
17
- result "title 2 ", @return*2, :unit => 'EUR'
17
+ result "title 2 ", @return*2, :unit => 'EUR', :important => true
18
18
  end
19
19
  end
20
20
  class AnotherReport < KPI::Report
@@ -79,11 +79,15 @@ describe "KPI::MergedReport" do
79
79
  it "should change $$ in description to indicator descripiton" do
80
80
  assert_equal "description (average)", @average.test_kpi.description
81
81
  end
82
-
82
+
83
+ it "should return nil description when no description" do
84
+ assert_nil @average.test_kpi_2.description
85
+ end
86
+
83
87
  it "should have unit" do
84
88
  assert_equal "EUR", @average.test_kpi_2.unit
85
89
  end
86
-
90
+
87
91
  it "should allow to override unit" do
88
92
  @merged = KPI::MergedReport.new(@report1, @report2) do |*entries|
89
93
  KPI::Entry.new "merged $$", 1, :unit => "$"
@@ -91,9 +95,17 @@ describe "KPI::MergedReport" do
91
95
  assert_equal '$', @merged.test_kpi.unit
92
96
  assert_equal '$', @merged.test_kpi_2.unit
93
97
  end
94
-
95
- it "should return nil description when no description" do
96
- assert_nil @average.test_kpi_2.description
98
+
99
+ it "should pass important flag" do
100
+ assert @average.test_kpi_2.important?
101
+ end
102
+
103
+ it "should allow to override important flag" do
104
+ @merged = KPI::MergedReport.new(@report1, @report2) do |*entries|
105
+ KPI::Entry.new "merged $$", 1, :important => true
106
+ end
107
+ assert @merged.test_kpi.important?
108
+ assert @merged.test_kpi_2.important?
97
109
  end
98
110
 
99
111
  describe "entries" do
metadata CHANGED
@@ -1,8 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kpi
3
3
  version: !ruby/object:Gem::Version
4
+ hash: 7
4
5
  prerelease:
5
- version: 0.5.5
6
+ segments:
7
+ - 0
8
+ - 5
9
+ - 6
10
+ version: 0.5.6
6
11
  platform: ruby
7
12
  authors:
8
13
  - Artur Roszczyk
@@ -10,75 +15,98 @@ autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
17
 
13
- date: 2011-05-16 00:00:00 +02:00
18
+ date: 2011-05-18 00:00:00 +02:00
14
19
  default_executable:
15
20
  dependencies:
16
21
  - !ruby/object:Gem::Dependency
17
22
  name: actionmailer
18
- requirement: &id001 !ruby/object:Gem::Requirement
23
+ version_requirements: &id001 !ruby/object:Gem::Requirement
19
24
  none: false
20
25
  requirements:
21
26
  - - ">="
22
27
  - !ruby/object:Gem::Version
28
+ hash: 5
29
+ segments:
30
+ - 2
31
+ - 3
23
32
  version: "2.3"
24
- type: :runtime
25
33
  prerelease: false
26
- version_requirements: *id001
34
+ type: :runtime
35
+ requirement: *id001
27
36
  - !ruby/object:Gem::Dependency
28
37
  name: activesupport
29
- requirement: &id002 !ruby/object:Gem::Requirement
38
+ version_requirements: &id002 !ruby/object:Gem::Requirement
30
39
  none: false
31
40
  requirements:
32
41
  - - ">="
33
42
  - !ruby/object:Gem::Version
43
+ hash: 5
44
+ segments:
45
+ - 2
46
+ - 3
34
47
  version: "2.3"
35
- type: :runtime
36
48
  prerelease: false
37
- version_requirements: *id002
49
+ type: :runtime
50
+ requirement: *id002
38
51
  - !ruby/object:Gem::Dependency
39
52
  name: minitest
40
- requirement: &id003 !ruby/object:Gem::Requirement
53
+ version_requirements: &id003 !ruby/object:Gem::Requirement
41
54
  none: false
42
55
  requirements:
43
56
  - - ">="
44
57
  - !ruby/object:Gem::Version
58
+ hash: 3
59
+ segments:
60
+ - 0
45
61
  version: "0"
46
- type: :development
47
62
  prerelease: false
48
- version_requirements: *id003
63
+ type: :development
64
+ requirement: *id003
49
65
  - !ruby/object:Gem::Dependency
50
66
  name: bundler
51
- requirement: &id004 !ruby/object:Gem::Requirement
67
+ version_requirements: &id004 !ruby/object:Gem::Requirement
52
68
  none: false
53
69
  requirements:
54
70
  - - ~>
55
71
  - !ruby/object:Gem::Version
72
+ hash: 15
73
+ segments:
74
+ - 1
75
+ - 0
56
76
  version: "1.0"
57
- type: :development
58
77
  prerelease: false
59
- version_requirements: *id004
78
+ type: :development
79
+ requirement: *id004
60
80
  - !ruby/object:Gem::Dependency
61
81
  name: jeweler
62
- requirement: &id005 !ruby/object:Gem::Requirement
82
+ version_requirements: &id005 !ruby/object:Gem::Requirement
63
83
  none: false
64
84
  requirements:
65
85
  - - ~>
66
86
  - !ruby/object:Gem::Version
87
+ hash: 7
88
+ segments:
89
+ - 1
90
+ - 5
91
+ - 2
67
92
  version: 1.5.2
68
- type: :development
69
93
  prerelease: false
70
- version_requirements: *id005
94
+ type: :development
95
+ requirement: *id005
71
96
  - !ruby/object:Gem::Dependency
72
97
  name: rcov
73
- requirement: &id006 !ruby/object:Gem::Requirement
98
+ version_requirements: &id006 !ruby/object:Gem::Requirement
74
99
  none: false
75
100
  requirements:
76
101
  - - ">="
77
102
  - !ruby/object:Gem::Version
103
+ hash: 3
104
+ segments:
105
+ - 0
78
106
  version: "0"
79
- type: :development
80
107
  prerelease: false
81
- version_requirements: *id006
108
+ type: :development
109
+ requirement: *id006
82
110
  description: This gem helps you to track key indicators in your Rails app.
83
111
  email: artur.roszczyk@gmail.com
84
112
  executables: []
@@ -120,7 +148,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
120
148
  requirements:
121
149
  - - ">="
122
150
  - !ruby/object:Gem::Version
123
- hash: -4102410912308546025
151
+ hash: 3
124
152
  segments:
125
153
  - 0
126
154
  version: "0"
@@ -129,6 +157,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
129
157
  requirements:
130
158
  - - ">="
131
159
  - !ruby/object:Gem::Version
160
+ hash: 3
161
+ segments:
162
+ - 0
132
163
  version: "0"
133
164
  requirements: []
134
165