kpi 0.3.3 → 0.4.0
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.
- data/app/models/kpi/report/base.rb +0 -1
- data/lib/kpi/18compatibility.rb +5 -0
- data/lib/kpi.rb +1 -0
- data/{spec/spec_helper.rb → test/test_helper.rb} +3 -6
- data/test/unit/kpi/report/base_test.rb +54 -0
- metadata +15 -19
- data/app/mailers/kpi/mailer.rb +0 -12
- data/app/models/kpi/report/mail_delivery.rb +0 -15
- data/app/views/kpi/mailer/report.html.erb +0 -32
- data/lib/generators/kpi/install_generator.rb +0 -14
- data/lib/generators/kpi/templates/initializer.rb +0 -11
- data/spec/models/kpi/report/base_spec.rb +0 -59
data/lib/kpi.rb
CHANGED
@@ -1,13 +1,14 @@
|
|
1
1
|
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
2
2
|
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
3
|
+
require 'minitest/autorun'
|
4
|
+
|
3
5
|
require 'active_support'
|
4
6
|
require 'action_mailer'
|
5
|
-
require 'rspec'
|
6
7
|
require 'kpi'
|
7
8
|
|
8
9
|
# Requires supporting files with custom matchers and macros, etc,
|
9
10
|
# in ./support/ and its subdirectories.
|
10
|
-
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
|
11
|
+
# Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
|
11
12
|
|
12
13
|
require File.join(File.dirname(__FILE__), '..', 'lib/kpi/configuration')
|
13
14
|
require File.join(File.dirname(__FILE__), '..', 'app/models/kpi/entry')
|
@@ -17,7 +18,3 @@ require File.join(File.dirname(__FILE__), '..', 'app/models/kpi/report/mail_deli
|
|
17
18
|
require File.join(File.dirname(__FILE__), '..', 'app/models/kpi/report/base')
|
18
19
|
require File.join(File.dirname(__FILE__), '..', 'app/mailers/kpi/mailer')
|
19
20
|
|
20
|
-
|
21
|
-
RSpec.configure do |config|
|
22
|
-
|
23
|
-
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../../../test_helper')
|
2
|
+
|
3
|
+
class TestKpi < KPI::Report::Base
|
4
|
+
def test_kpi
|
5
|
+
return ["title", 1, "description"]
|
6
|
+
end
|
7
|
+
|
8
|
+
def another_kpi
|
9
|
+
return ["another title", 0]
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
describe "KPI::Report::Base" do
|
14
|
+
it "should define indicators" do
|
15
|
+
assert_equal [:test_kpi, :another_kpi], TestKpi.defined_kpis
|
16
|
+
end
|
17
|
+
|
18
|
+
describe :collect! do
|
19
|
+
before { @kpi = TestKpi.new }
|
20
|
+
it "should collect all KPIs" do
|
21
|
+
assert_equal 2, @kpi.collect!.entries.count
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
describe :entries do
|
26
|
+
before { @kpi = TestKpi.new }
|
27
|
+
|
28
|
+
it "should return enumerator" do
|
29
|
+
assert @kpi.entries.kind_of?(Enumerable)
|
30
|
+
end
|
31
|
+
|
32
|
+
it "should return enumerator with entries" do
|
33
|
+
assert @kpi.entries.first.kind_of?(KPI::Entry)
|
34
|
+
end
|
35
|
+
|
36
|
+
it "should fill entries with names" do
|
37
|
+
assert_equal ["title", "another title"], @kpi.entries.map(&:name)
|
38
|
+
end
|
39
|
+
|
40
|
+
it "should fill entries with values" do
|
41
|
+
assert_equal [1, 0], @kpi.entries.map(&:value)
|
42
|
+
end
|
43
|
+
|
44
|
+
it "should fill entries with descriptions" do
|
45
|
+
assert_equal ["description", nil], @kpi.entries.map(&:description)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
describe :title do
|
50
|
+
it "should return class name by default" do
|
51
|
+
assert_equal "TestKpi", TestKpi.new.title
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: kpi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.
|
5
|
+
version: 0.4.0
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Artur Roszczyk
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-
|
13
|
+
date: 2011-05-13 00:00:00 +02:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -18,9 +18,9 @@ dependencies:
|
|
18
18
|
requirement: &id001 !ruby/object:Gem::Requirement
|
19
19
|
none: false
|
20
20
|
requirements:
|
21
|
-
- -
|
21
|
+
- - ">="
|
22
22
|
- !ruby/object:Gem::Version
|
23
|
-
version: "3
|
23
|
+
version: "2.3"
|
24
24
|
type: :runtime
|
25
25
|
prerelease: false
|
26
26
|
version_requirements: *id001
|
@@ -29,20 +29,20 @@ dependencies:
|
|
29
29
|
requirement: &id002 !ruby/object:Gem::Requirement
|
30
30
|
none: false
|
31
31
|
requirements:
|
32
|
-
- -
|
32
|
+
- - ">="
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version: "3
|
34
|
+
version: "2.3"
|
35
35
|
type: :runtime
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: *id002
|
38
38
|
- !ruby/object:Gem::Dependency
|
39
|
-
name:
|
39
|
+
name: minitest
|
40
40
|
requirement: &id003 !ruby/object:Gem::Requirement
|
41
41
|
none: false
|
42
42
|
requirements:
|
43
|
-
- -
|
43
|
+
- - ">="
|
44
44
|
- !ruby/object:Gem::Version
|
45
|
-
version:
|
45
|
+
version: "0"
|
46
46
|
type: :development
|
47
47
|
prerelease: false
|
48
48
|
version_requirements: *id003
|
@@ -89,24 +89,20 @@ extra_rdoc_files:
|
|
89
89
|
- LICENSE.txt
|
90
90
|
- README.rdoc
|
91
91
|
files:
|
92
|
-
- app/mailers/kpi/mailer.rb
|
93
92
|
- app/models/kpi/entry.rb
|
94
93
|
- app/models/kpi/report/base.rb
|
95
94
|
- app/models/kpi/report/dynamic_definitions.rb
|
96
|
-
- app/models/kpi/report/mail_delivery.rb
|
97
95
|
- app/models/kpi/report/suppress_memoization.rb
|
98
|
-
- app/views/kpi/mailer/report.html.erb
|
99
96
|
- lib/engine.rb
|
100
97
|
- lib/generators/kpi/USAGE
|
101
|
-
- lib/generators/kpi/install_generator.rb
|
102
98
|
- lib/generators/kpi/kpi_generator.rb
|
103
|
-
- lib/generators/kpi/templates/initializer.rb
|
104
99
|
- lib/kpi.rb
|
100
|
+
- lib/kpi/18compatibility.rb
|
105
101
|
- lib/kpi/configuration.rb
|
106
102
|
- LICENSE.txt
|
107
103
|
- README.rdoc
|
108
|
-
-
|
109
|
-
-
|
104
|
+
- test/test_helper.rb
|
105
|
+
- test/unit/kpi/report/base_test.rb
|
110
106
|
has_rdoc: true
|
111
107
|
homepage: http://github.com/sevos/kpi
|
112
108
|
licenses:
|
@@ -121,7 +117,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
121
117
|
requirements:
|
122
118
|
- - ">="
|
123
119
|
- !ruby/object:Gem::Version
|
124
|
-
hash:
|
120
|
+
hash: 2602198996799805107
|
125
121
|
segments:
|
126
122
|
- 0
|
127
123
|
version: "0"
|
@@ -139,5 +135,5 @@ signing_key:
|
|
139
135
|
specification_version: 3
|
140
136
|
summary: Key Performance Indicators for Rails 3.x
|
141
137
|
test_files:
|
142
|
-
-
|
143
|
-
-
|
138
|
+
- test/test_helper.rb
|
139
|
+
- test/unit/kpi/report/base_test.rb
|
data/app/mailers/kpi/mailer.rb
DELETED
@@ -1,12 +0,0 @@
|
|
1
|
-
class KPI::Mailer < ActionMailer::Base
|
2
|
-
default :from => KPI.mail_from
|
3
|
-
default :to => KPI.mail_to
|
4
|
-
|
5
|
-
def report(kpi_report)
|
6
|
-
@entries = kpi_report.entries
|
7
|
-
@time = kpi_report.time
|
8
|
-
@title = kpi_report.title
|
9
|
-
|
10
|
-
mail :subject => "[#{KPI.app_name} KPI][#{@time.to_date.to_s(:db)}] #{@title}"
|
11
|
-
end
|
12
|
-
end
|
@@ -1,32 +0,0 @@
|
|
1
|
-
<!DOCTYPE html>
|
2
|
-
<html>
|
3
|
-
<head>
|
4
|
-
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
5
|
-
</head>
|
6
|
-
|
7
|
-
<body>
|
8
|
-
<h1><%= KPI.app_name %> KPI Report</h1>
|
9
|
-
<h2><%= @title %></h2>
|
10
|
-
<p>Created at: <%= @time.to_s(:db) %></p>
|
11
|
-
<table style="border-collapse: collapse;width: 100%;" width="100%">
|
12
|
-
<tr style="border-bottom: 1px solid black;">
|
13
|
-
<td>KPI</td>
|
14
|
-
<td>Value</td>
|
15
|
-
</tr>
|
16
|
-
<% for entry in @entries %>
|
17
|
-
<tr style="border-bottom: 1px solid black;">
|
18
|
-
<td>
|
19
|
-
<strong><%= entry.name %></strong>
|
20
|
-
<% unless entry.description.blank? %>
|
21
|
-
<br />
|
22
|
-
<span style="color: grey; font-size: smaller;">
|
23
|
-
<%= entry.description %>
|
24
|
-
</span>
|
25
|
-
<% end %>
|
26
|
-
</td>
|
27
|
-
<td style="text-align: center;"><%= entry.value %></td>
|
28
|
-
</tr>
|
29
|
-
<% end %>
|
30
|
-
</table>
|
31
|
-
</body>
|
32
|
-
</html>
|
@@ -1,14 +0,0 @@
|
|
1
|
-
module KPI
|
2
|
-
module Generators
|
3
|
-
class InstallGenerator < Rails::Generators::Base
|
4
|
-
namespace "kpi:install"
|
5
|
-
source_root File.expand_path('../templates', __FILE__)
|
6
|
-
desc "Creates a KPI initializer."
|
7
|
-
|
8
|
-
def copy_initializer
|
9
|
-
template "initializer.rb", "config/initializers/kpi.rb"
|
10
|
-
end
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
@@ -1,11 +0,0 @@
|
|
1
|
-
KPI.configure do |c|
|
2
|
-
# Your application name
|
3
|
-
# It appears in email subjects and inside email body
|
4
|
-
c.app_name = "Your app name"
|
5
|
-
|
6
|
-
# "from" field of KPI emails
|
7
|
-
c.mail_from = "kpi@yourapp.com"
|
8
|
-
|
9
|
-
# "to" field of KPI emails
|
10
|
-
c.mail_to = "example@example.com"
|
11
|
-
end
|
@@ -1,59 +0,0 @@
|
|
1
|
-
require File.expand_path(File.dirname(__FILE__) + '/../../../spec_helper')
|
2
|
-
|
3
|
-
describe "KPI::Report::Base" do
|
4
|
-
before(:all) do
|
5
|
-
class TestKpi < KPI::Report::Base
|
6
|
-
def test_kpi
|
7
|
-
return ["title", 1, "description"]
|
8
|
-
end
|
9
|
-
|
10
|
-
def another_kpi
|
11
|
-
return ["another title", 0]
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
it "should define indicators" do
|
17
|
-
TestKpi.defined_kpis.should == [:test_kpi, :another_kpi]
|
18
|
-
end
|
19
|
-
|
20
|
-
describe :collect! do
|
21
|
-
before { @kpi = TestKpi.new }
|
22
|
-
it "should call all KPIs" do
|
23
|
-
TestKpi.defined_kpis.each do |kpi_method|
|
24
|
-
@kpi.should_receive(kpi_method)
|
25
|
-
end
|
26
|
-
@kpi.collect!
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
describe :entries do
|
31
|
-
before { @kpi = TestKpi.new }
|
32
|
-
|
33
|
-
it "should return enumerator" do
|
34
|
-
@kpi.entries.should be_kind_of(Enumerable)
|
35
|
-
end
|
36
|
-
|
37
|
-
it "should return enumerator with entries" do
|
38
|
-
@kpi.entries.first.should be_kind_of(KPI::Entry)
|
39
|
-
end
|
40
|
-
|
41
|
-
it "should fill entries with names" do
|
42
|
-
@kpi.entries.map(&:name).should == ["title", "another title"]
|
43
|
-
end
|
44
|
-
|
45
|
-
it "should fill entries with values" do
|
46
|
-
@kpi.entries.map(&:value).should == [1, 0]
|
47
|
-
end
|
48
|
-
|
49
|
-
it "should fill entries with descriptions" do
|
50
|
-
@kpi.entries.map(&:description).should == ["description", nil]
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
describe :title do
|
55
|
-
it "should return class name by default" do
|
56
|
-
TestKpi.new.title.should == "TestKpi"
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|