visitors 0.0.1 → 0.0.2
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/config.ru +2 -0
- data/lib/visitors/cli.rb +2 -1
- data/lib/visitors/server/public/images/email.png +0 -0
- data/lib/visitors/server/public/images/phone.png +0 -0
- data/lib/visitors/server/public/images/search.png +0 -0
- data/lib/visitors/server/public/images/show.png +0 -0
- data/lib/visitors/server/public/images/website.png +0 -0
- data/lib/visitors/server/views/_form.haml +3 -0
- data/lib/visitors/server/views/home.haml +1 -0
- data/lib/visitors/server/views/layout.haml +20 -0
- data/lib/visitors/server/views/show.haml +13 -0
- data/lib/visitors/server/views/stats.sass +113 -0
- data/lib/visitors/server.rb +49 -0
- data/lib/visitors/version.rb +1 -1
- data/lib/visitors.rb +1 -0
- data/visitors.gemspec +5 -2
- metadata +52 -7
data/config.ru
ADDED
data/lib/visitors/cli.rb
CHANGED
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1 @@
|
|
1
|
+
= haml :_form
|
@@ -0,0 +1,20 @@
|
|
1
|
+
%html
|
2
|
+
%head
|
3
|
+
%title Stats
|
4
|
+
|
5
|
+
%link{ :rel => 'stylesheet', :href => '/stylesheets/stats.css' }
|
6
|
+
%script{ :src => 'https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js', :type => 'text/javascript' }
|
7
|
+
%body
|
8
|
+
#container
|
9
|
+
%h1
|
10
|
+
%a{ :href => '/' } Stats
|
11
|
+
= yield
|
12
|
+
|
13
|
+
:javascript
|
14
|
+
$(function() {
|
15
|
+
$('#lookup').submit(function(e) {
|
16
|
+
e.preventDefault();
|
17
|
+
location.href = '/' + $('#resource_id').val();
|
18
|
+
return false;
|
19
|
+
});
|
20
|
+
});
|
@@ -0,0 +1,113 @@
|
|
1
|
+
body
|
2
|
+
font: 12px/14px 'helvetica neue', sans-serif
|
3
|
+
color: #444
|
4
|
+
background-color: #eee
|
5
|
+
|
6
|
+
h1
|
7
|
+
text-transform: uppercase
|
8
|
+
font-size: 48px
|
9
|
+
letter-spacing: -0.05em
|
10
|
+
|
11
|
+
a
|
12
|
+
color: #444
|
13
|
+
text-decoration: none
|
14
|
+
|
15
|
+
&:hover
|
16
|
+
color: #b30000
|
17
|
+
|
18
|
+
#container
|
19
|
+
width: 800px
|
20
|
+
margin: 0 auto
|
21
|
+
padding: 20px
|
22
|
+
background-color: #fff
|
23
|
+
border: 1px solid #ccc
|
24
|
+
box-shadow: 0 1px 3px rgba(#000, 0.2)
|
25
|
+
|
26
|
+
#lookup
|
27
|
+
input[type="text"]
|
28
|
+
border: 1px solid #ccc
|
29
|
+
width: 710px
|
30
|
+
margin: 0
|
31
|
+
padding: 5px
|
32
|
+
font: 20px 'helvetica neue', sans-serif
|
33
|
+
|
34
|
+
input[type="submit"]
|
35
|
+
width: 85px
|
36
|
+
margin: 0
|
37
|
+
padding: 5px
|
38
|
+
background-color: #eee
|
39
|
+
border: 1px solid #ccc
|
40
|
+
border-radius: 5px
|
41
|
+
font: 20px 'helvetica neue', sans-serif
|
42
|
+
|
43
|
+
&:hover
|
44
|
+
background-color: #444
|
45
|
+
color: #fff
|
46
|
+
cursor: pointer
|
47
|
+
border-color: #444
|
48
|
+
|
49
|
+
#stats
|
50
|
+
margin-top: 20px
|
51
|
+
|
52
|
+
.month
|
53
|
+
padding: 0 0 10px
|
54
|
+
margin: 0 0 10px
|
55
|
+
overflow: hidden
|
56
|
+
border-bottom: 1px solid #eee
|
57
|
+
|
58
|
+
&:last-child
|
59
|
+
border-bottom: 0 none
|
60
|
+
margin-bottom: 0
|
61
|
+
padding-bottom: 0
|
62
|
+
|
63
|
+
.name
|
64
|
+
float: left
|
65
|
+
width: 150px
|
66
|
+
font-size: 14px
|
67
|
+
font-weight: bold
|
68
|
+
line-height: 26px
|
69
|
+
|
70
|
+
ul.hits
|
71
|
+
float: left
|
72
|
+
margin: 0
|
73
|
+
padding: 0
|
74
|
+
|
75
|
+
li
|
76
|
+
float: left
|
77
|
+
margin-right: 30px
|
78
|
+
background: url(/images/show.png) no-repeat 75px center
|
79
|
+
width: 70px
|
80
|
+
padding: 2px 25px 2px 5px
|
81
|
+
border: 1px solid #eee
|
82
|
+
background-color: #f9f9f9
|
83
|
+
border-radius: 3px
|
84
|
+
|
85
|
+
&.email
|
86
|
+
background-image: url(/images/email.png)
|
87
|
+
|
88
|
+
&.website
|
89
|
+
background-image: url(/images/website.png)
|
90
|
+
|
91
|
+
&.search
|
92
|
+
background-image: url(/images/search.png)
|
93
|
+
|
94
|
+
&:last-child
|
95
|
+
margin-right: 0
|
96
|
+
|
97
|
+
span
|
98
|
+
float: left
|
99
|
+
display: inline-block
|
100
|
+
|
101
|
+
span.key
|
102
|
+
line-height: 20px
|
103
|
+
color: #ccc
|
104
|
+
padding-right: 5px
|
105
|
+
width: 30px
|
106
|
+
overflow: ellipsis
|
107
|
+
|
108
|
+
span.value
|
109
|
+
font-size: 16px
|
110
|
+
line-height: 20px
|
111
|
+
font-weight: bold
|
112
|
+
text-align: right
|
113
|
+
width: 30px
|
@@ -0,0 +1,49 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'bundler/setup'
|
3
|
+
|
4
|
+
require 'sinatra'
|
5
|
+
require 'haml'
|
6
|
+
require File.expand_path('../../visitors', __FILE__)
|
7
|
+
|
8
|
+
class Visitors::Server < Sinatra::Base
|
9
|
+
MONTHS = %w[
|
10
|
+
January
|
11
|
+
February
|
12
|
+
March
|
13
|
+
April
|
14
|
+
May
|
15
|
+
June
|
16
|
+
July
|
17
|
+
August
|
18
|
+
September
|
19
|
+
October
|
20
|
+
November
|
21
|
+
December
|
22
|
+
]
|
23
|
+
|
24
|
+
FIELDS = Visitors::Resource.fields
|
25
|
+
|
26
|
+
dir = File.expand_path('..', __FILE__)
|
27
|
+
|
28
|
+
set :views, "#{dir}/server/views"
|
29
|
+
set :public, "#{dir}/server/public"
|
30
|
+
set :static, true
|
31
|
+
|
32
|
+
get '/' do
|
33
|
+
haml :home
|
34
|
+
end
|
35
|
+
|
36
|
+
post '/' do
|
37
|
+
redirect params[:resource_id]
|
38
|
+
end
|
39
|
+
|
40
|
+
get '/:id' do
|
41
|
+
@resource_id = params[:id]
|
42
|
+
@visits = Visitors::Resource.find(params[:id])
|
43
|
+
haml :show
|
44
|
+
end
|
45
|
+
|
46
|
+
get '/stylesheets/stats.css' do
|
47
|
+
sass :stats
|
48
|
+
end
|
49
|
+
end
|
data/lib/visitors/version.rb
CHANGED
data/lib/visitors.rb
CHANGED
data/visitors.gemspec
CHANGED
@@ -26,12 +26,15 @@ Gem::Specification.new do |s|
|
|
26
26
|
'dm-migrations' => '1.0.2',
|
27
27
|
'dm-postgres-adapter' => '1.0.2',
|
28
28
|
'sinatra' => '1.1.3',
|
29
|
-
'thor' => '0.14.6'
|
29
|
+
'thor' => '0.14.6',
|
30
|
+
'haml' => '3.0.25',
|
31
|
+
'vegas' => '0.1.8'
|
30
32
|
}.each { |gem, version| s.add_dependency gem, "~> #{version}" }
|
31
33
|
|
32
34
|
{
|
33
35
|
'rspec' => '2.5.0',
|
34
36
|
'guard-rspec' => '0.1.9',
|
35
|
-
'rb-fsevent' => '0.3.10'
|
37
|
+
'rb-fsevent' => '0.3.10',
|
38
|
+
'shotgun' => '0.9'
|
36
39
|
}.each { |gem, version| s.add_development_dependency gem, "~> #{version}" }
|
37
40
|
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: visitors
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.0.
|
5
|
+
version: 0.0.2
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- James Conroy-Finn
|
@@ -91,38 +91,71 @@ dependencies:
|
|
91
91
|
type: :runtime
|
92
92
|
version_requirements: *id007
|
93
93
|
- !ruby/object:Gem::Dependency
|
94
|
-
name:
|
94
|
+
name: haml
|
95
95
|
prerelease: false
|
96
96
|
requirement: &id008 !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
98
|
+
requirements:
|
99
|
+
- - ~>
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: 3.0.25
|
102
|
+
type: :runtime
|
103
|
+
version_requirements: *id008
|
104
|
+
- !ruby/object:Gem::Dependency
|
105
|
+
name: vegas
|
106
|
+
prerelease: false
|
107
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
108
|
+
none: false
|
109
|
+
requirements:
|
110
|
+
- - ~>
|
111
|
+
- !ruby/object:Gem::Version
|
112
|
+
version: 0.1.8
|
113
|
+
type: :runtime
|
114
|
+
version_requirements: *id009
|
115
|
+
- !ruby/object:Gem::Dependency
|
116
|
+
name: rspec
|
117
|
+
prerelease: false
|
118
|
+
requirement: &id010 !ruby/object:Gem::Requirement
|
97
119
|
none: false
|
98
120
|
requirements:
|
99
121
|
- - ~>
|
100
122
|
- !ruby/object:Gem::Version
|
101
123
|
version: 2.5.0
|
102
124
|
type: :development
|
103
|
-
version_requirements: *
|
125
|
+
version_requirements: *id010
|
104
126
|
- !ruby/object:Gem::Dependency
|
105
127
|
name: guard-rspec
|
106
128
|
prerelease: false
|
107
|
-
requirement: &
|
129
|
+
requirement: &id011 !ruby/object:Gem::Requirement
|
108
130
|
none: false
|
109
131
|
requirements:
|
110
132
|
- - ~>
|
111
133
|
- !ruby/object:Gem::Version
|
112
134
|
version: 0.1.9
|
113
135
|
type: :development
|
114
|
-
version_requirements: *
|
136
|
+
version_requirements: *id011
|
115
137
|
- !ruby/object:Gem::Dependency
|
116
138
|
name: rb-fsevent
|
117
139
|
prerelease: false
|
118
|
-
requirement: &
|
140
|
+
requirement: &id012 !ruby/object:Gem::Requirement
|
119
141
|
none: false
|
120
142
|
requirements:
|
121
143
|
- - ~>
|
122
144
|
- !ruby/object:Gem::Version
|
123
145
|
version: 0.3.10
|
124
146
|
type: :development
|
125
|
-
version_requirements: *
|
147
|
+
version_requirements: *id012
|
148
|
+
- !ruby/object:Gem::Dependency
|
149
|
+
name: shotgun
|
150
|
+
prerelease: false
|
151
|
+
requirement: &id013 !ruby/object:Gem::Requirement
|
152
|
+
none: false
|
153
|
+
requirements:
|
154
|
+
- - ~>
|
155
|
+
- !ruby/object:Gem::Version
|
156
|
+
version: "0.9"
|
157
|
+
type: :development
|
158
|
+
version_requirements: *id013
|
126
159
|
description: Redis-backed activity storage to track visits to different parts of your Ruby web app in real-time.
|
127
160
|
email:
|
128
161
|
- james@logi.cl
|
@@ -141,6 +174,7 @@ files:
|
|
141
174
|
- README.md
|
142
175
|
- Rakefile
|
143
176
|
- bin/visitors
|
177
|
+
- config.ru
|
144
178
|
- config.yml
|
145
179
|
- lib/visitors.rb
|
146
180
|
- lib/visitors/archiver.rb
|
@@ -149,6 +183,17 @@ files:
|
|
149
183
|
- lib/visitors/helpers.rb
|
150
184
|
- lib/visitors/models.rb
|
151
185
|
- lib/visitors/resource.rb
|
186
|
+
- lib/visitors/server.rb
|
187
|
+
- lib/visitors/server/public/images/email.png
|
188
|
+
- lib/visitors/server/public/images/phone.png
|
189
|
+
- lib/visitors/server/public/images/search.png
|
190
|
+
- lib/visitors/server/public/images/show.png
|
191
|
+
- lib/visitors/server/public/images/website.png
|
192
|
+
- lib/visitors/server/views/_form.haml
|
193
|
+
- lib/visitors/server/views/home.haml
|
194
|
+
- lib/visitors/server/views/layout.haml
|
195
|
+
- lib/visitors/server/views/show.haml
|
196
|
+
- lib/visitors/server/views/stats.sass
|
152
197
|
- lib/visitors/version.rb
|
153
198
|
- spec/spec_helper.rb
|
154
199
|
- spec/visitors/config_spec.rb
|