stat_board 0.1.2 → 0.1.3
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/README.markdown +9 -0
- data/app/controllers/stat_board/application_controller.rb +35 -0
- data/app/views/layouts/stat_board/application.html.erb +2 -0
- data/app/views/stat_board/stats/_graph.html.erb +32 -0
- data/app/views/stat_board/stats/index.html.erb +3 -0
- data/lib/stat_board/engine.rb +0 -6
- data/lib/stat_board/reports/monthly_report.rb +2 -2
- data/lib/stat_board/reports/weekly_report.rb +1 -1
- data/lib/stat_board/version.rb +1 -1
- metadata +85 -4
data/README.markdown
CHANGED
@@ -35,10 +35,19 @@ In `config/initializers/stat_board.rb`:
|
|
35
35
|
StatBoard.username = "user"
|
36
36
|
StatBoard.password = "pass"
|
37
37
|
|
38
|
+
## Issues
|
39
|
+
|
40
|
+
* Models can be specified as strings rather than constants
|
41
|
+
if you encounter loading order issues.
|
42
|
+
* If you're using the Asset Pipeline, you'll need to add
|
43
|
+
`stat_board/bootstrap.css` to your precompile paths.
|
44
|
+
|
38
45
|
## Contributing
|
39
46
|
|
40
47
|
Happily accepting contributions to improve StatBoard. To contribute, fork, add your thing, add some specs, and send a pleasantly worded pull request.
|
41
48
|
|
49
|
+
In order to setup the databases locally, you'll need to: `bundle exec rake db:migrate app:db:test:prepare`
|
50
|
+
|
42
51
|
* * *
|
43
52
|
|
44
53
|
StatBoard is released under the [MIT License][mit]. See MIT-LICENSE for further details.
|
@@ -1,4 +1,39 @@
|
|
1
1
|
module StatBoard
|
2
2
|
class ApplicationController < ActionController::Base
|
3
|
+
|
4
|
+
private
|
5
|
+
|
6
|
+
helper_method :date_steps, :first_day_ever, :resources_by_date
|
7
|
+
|
8
|
+
def date_steps
|
9
|
+
@date_steps ||= date_range.count / [date_range.count, 50].min
|
10
|
+
end
|
11
|
+
|
12
|
+
def first_day_ever
|
13
|
+
@first_day_ever ||= first_day_of_each_model.sort.first
|
14
|
+
end
|
15
|
+
|
16
|
+
def resources_by_date(klass_name)
|
17
|
+
klass = klass_name.to_s.constantize
|
18
|
+
created_ats = klass.pluck(:created_at).map(&:to_date)
|
19
|
+
|
20
|
+
date_range.step(date_steps).map do |date|
|
21
|
+
created_ats.count{|c_a| c_a < date}
|
22
|
+
end.to_s
|
23
|
+
end
|
24
|
+
|
25
|
+
def first_day_of_each_model
|
26
|
+
StatBoard.models.map { |m| first_day_of(m) }
|
27
|
+
end
|
28
|
+
|
29
|
+
def first_day_of(klass_name)
|
30
|
+
klass = klass_name.to_s.constantize
|
31
|
+
klass.order("created_at ASC").first.try(:created_at) || Time.now
|
32
|
+
end
|
33
|
+
|
34
|
+
def date_range
|
35
|
+
@date_range ||= first_day_ever.to_date..Date.today
|
36
|
+
end
|
37
|
+
|
3
38
|
end
|
4
39
|
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
<div id="container"></div>
|
2
|
+
|
3
|
+
<%= javascript_include_tag "highcharts" %>
|
4
|
+
<script>
|
5
|
+
var $container = $("#container")
|
6
|
+
var pointInterval = <%= date_steps.days * 1000 %>;
|
7
|
+
var pointStart = <%= first_day_ever.to_i * 1000 %>;
|
8
|
+
|
9
|
+
new Highcharts.Chart({
|
10
|
+
chart: {
|
11
|
+
backgroundColor: '#FFEFD5',
|
12
|
+
height: 500,
|
13
|
+
renderTo: 'container'
|
14
|
+
},
|
15
|
+
title: { text: '' },
|
16
|
+
xAxis: { type: 'datetime' },
|
17
|
+
yAxis: {
|
18
|
+
title: { text: 'Count' },
|
19
|
+
min: 0
|
20
|
+
},
|
21
|
+
series: [
|
22
|
+
<% StatBoard.models.each do |model| %>
|
23
|
+
{
|
24
|
+
name: "<%= model.to_s.pluralize %>",
|
25
|
+
pointInterval: pointInterval,
|
26
|
+
pointStart: pointStart,
|
27
|
+
data: <%= resources_by_date(model.to_s) %>
|
28
|
+
},
|
29
|
+
<% end %>
|
30
|
+
]
|
31
|
+
});
|
32
|
+
</script>
|
@@ -2,6 +2,9 @@
|
|
2
2
|
<div class="row">
|
3
3
|
<%= render :partial => "chart", :collection => @reports, :as => :report %>
|
4
4
|
</div>
|
5
|
+
|
6
|
+
<%= render "graph" %>
|
7
|
+
|
5
8
|
<% else %>
|
6
9
|
Please specify some models by setting <code>StatBoard.models</code>
|
7
10
|
(in <code>config/initializers/stat_board.rb</code>, for example).
|
data/lib/stat_board/engine.rb
CHANGED
data/lib/stat_board/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stat_board
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2013-11-07 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
@@ -27,6 +27,22 @@ dependencies:
|
|
27
27
|
- - ~>
|
28
28
|
- !ruby/object:Gem::Version
|
29
29
|
version: '3.2'
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: highcharts-rails
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ~>
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: 3.0.0
|
38
|
+
type: :runtime
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 3.0.0
|
30
46
|
- !ruby/object:Gem::Dependency
|
31
47
|
name: sqlite3
|
32
48
|
requirement: !ruby/object:Gem::Requirement
|
@@ -60,7 +76,7 @@ dependencies:
|
|
60
76
|
- !ruby/object:Gem::Version
|
61
77
|
version: '0'
|
62
78
|
- !ruby/object:Gem::Dependency
|
63
|
-
name:
|
79
|
+
name: pry
|
64
80
|
requirement: !ruby/object:Gem::Requirement
|
65
81
|
none: false
|
66
82
|
requirements:
|
@@ -75,6 +91,70 @@ dependencies:
|
|
75
91
|
- - ! '>='
|
76
92
|
- !ruby/object:Gem::Version
|
77
93
|
version: '0'
|
94
|
+
- !ruby/object:Gem::Dependency
|
95
|
+
name: launchy
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
98
|
+
requirements:
|
99
|
+
- - ! '>='
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: '0'
|
102
|
+
type: :development
|
103
|
+
prerelease: false
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
110
|
+
- !ruby/object:Gem::Dependency
|
111
|
+
name: capybara
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
113
|
+
none: false
|
114
|
+
requirements:
|
115
|
+
- - ~>
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: 1.1.4
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
122
|
+
requirements:
|
123
|
+
- - ~>
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: 1.1.4
|
126
|
+
- !ruby/object:Gem::Dependency
|
127
|
+
name: capybara-webkit
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
129
|
+
none: false
|
130
|
+
requirements:
|
131
|
+
- - ~>
|
132
|
+
- !ruby/object:Gem::Version
|
133
|
+
version: 0.13.0
|
134
|
+
type: :development
|
135
|
+
prerelease: false
|
136
|
+
version_requirements: !ruby/object:Gem::Requirement
|
137
|
+
none: false
|
138
|
+
requirements:
|
139
|
+
- - ~>
|
140
|
+
- !ruby/object:Gem::Version
|
141
|
+
version: 0.13.0
|
142
|
+
- !ruby/object:Gem::Dependency
|
143
|
+
name: database_cleaner
|
144
|
+
requirement: !ruby/object:Gem::Requirement
|
145
|
+
none: false
|
146
|
+
requirements:
|
147
|
+
- - ~>
|
148
|
+
- !ruby/object:Gem::Version
|
149
|
+
version: 0.9.1
|
150
|
+
type: :development
|
151
|
+
prerelease: false
|
152
|
+
version_requirements: !ruby/object:Gem::Requirement
|
153
|
+
none: false
|
154
|
+
requirements:
|
155
|
+
- - ~>
|
156
|
+
- !ruby/object:Gem::Version
|
157
|
+
version: 0.9.1
|
78
158
|
description: Simple dashboard of records created this week, this month, and all time,
|
79
159
|
mountable as a Rails Engine.
|
80
160
|
email:
|
@@ -88,6 +168,7 @@ files:
|
|
88
168
|
- app/controllers/stat_board/stats_controller.rb
|
89
169
|
- app/views/layouts/stat_board/application.html.erb
|
90
170
|
- app/views/stat_board/stats/_chart.html.erb
|
171
|
+
- app/views/stat_board/stats/_graph.html.erb
|
91
172
|
- app/views/stat_board/stats/index.html.erb
|
92
173
|
- config/routes.rb
|
93
174
|
- lib/stat_board/engine.rb
|
@@ -122,7 +203,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
122
203
|
version: '0'
|
123
204
|
requirements: []
|
124
205
|
rubyforge_project:
|
125
|
-
rubygems_version: 1.8.
|
206
|
+
rubygems_version: 1.8.25
|
126
207
|
signing_key:
|
127
208
|
specification_version: 3
|
128
209
|
summary: Simple dashboard of records created this week, this month, and all time,
|