punchcard 0.2.9 → 0.3.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/.gitignore +1 -0
- data/README.rdoc +6 -2
- data/Rakefile +3 -48
- data/lib/punchcard.rb +5 -22
- data/lib/punchcard/app.rb +22 -0
- data/lib/punchcard/version.rb +3 -0
- data/punchcard.gemspec +27 -96
- data/test/helper.rb +4 -6
- data/test/test_punchcard.rb +71 -1
- metadata +35 -44
- data/Gemfile.lock +0 -72
- data/VERSION +0 -1
data/.gitignore
CHANGED
data/README.rdoc
CHANGED
@@ -26,11 +26,11 @@ Create a config.ru for rack:
|
|
26
26
|
|
27
27
|
# You'll surely want to secure your punch card from general web access. The simplest way to do so is by
|
28
28
|
# using the rack auth middleware, defining it somewhere in your config.ru:
|
29
|
-
Punchcard.use Rack::Auth::Basic do |username, password|
|
29
|
+
Punchcard::App.use Rack::Auth::Basic do |username, password|
|
30
30
|
[username, password] == ['someuser', 'secret']
|
31
31
|
end
|
32
32
|
|
33
|
-
run Punchcard
|
33
|
+
run Punchcard::App
|
34
34
|
|
35
35
|
To run locally, make sure you have a proper ENV['DATABASE_URL'] configured or the sqlite3 gem installed
|
36
36
|
with your bundle. Then:
|
@@ -41,6 +41,10 @@ with your bundle. Then:
|
|
41
41
|
|
42
42
|
Open http://localhost:9292
|
43
43
|
|
44
|
+
== Supported Ruby versions
|
45
|
+
|
46
|
+
Punchcard is tested against MRI 1.8.7, 1.9.1, 1.9.2 and Ruby Enterprise Edition.
|
47
|
+
|
44
48
|
== Hosting on Heroku
|
45
49
|
|
46
50
|
Starting from the initial bootstrap above, make sure you have the pg gem in your bundle and did run
|
data/Rakefile
CHANGED
@@ -1,32 +1,5 @@
|
|
1
|
-
require '
|
2
|
-
|
3
|
-
|
4
|
-
begin
|
5
|
-
require 'jeweler'
|
6
|
-
Jeweler::Tasks.new do |gem|
|
7
|
-
gem.name = "punchcard"
|
8
|
-
gem.summary = %Q{Simple sinatra/activerecord based app for tracking time when people have been in the office}
|
9
|
-
gem.description = %Q{Simple sinatra/activerecord based app for tracking time when people have been in the office}
|
10
|
-
gem.email = "christoph at olszowka de"
|
11
|
-
gem.homepage = "http://github.com/colszowka/punchcard"
|
12
|
-
gem.authors = ["Christoph Olszowka"]
|
13
|
-
gem.add_dependency 'sinatra', ">= 1.0.0"
|
14
|
-
gem.add_dependency 'bson_ext', '>= 0'
|
15
|
-
gem.add_dependency 'haml', '>= 3.0.24'
|
16
|
-
gem.add_dependency 'sass', '>= 3.0.0'
|
17
|
-
gem.add_dependency 'activerecord', '~> 3.0.0'
|
18
|
-
gem.add_dependency 'gravtastic', '>= 0'
|
19
|
-
gem.add_development_dependency "shoulda", "2.10.3"
|
20
|
-
gem.add_development_dependency "rack-test", ">= 0.5.6"
|
21
|
-
gem.add_development_dependency 'sqlite3', '>= 0'
|
22
|
-
gem.add_development_dependency 'timecop', '>= 0'
|
23
|
-
gem.add_development_dependency 'jeweler', '>= 0'
|
24
|
-
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
25
|
-
end
|
26
|
-
Jeweler::GemcutterTasks.new
|
27
|
-
rescue LoadError
|
28
|
-
puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
|
29
|
-
end
|
1
|
+
require 'bundler'
|
2
|
+
Bundler::GemHelper.install_tasks
|
30
3
|
|
31
4
|
require 'rake/testtask'
|
32
5
|
Rake::TestTask.new(:test) do |test|
|
@@ -35,29 +8,11 @@ Rake::TestTask.new(:test) do |test|
|
|
35
8
|
test.verbose = true
|
36
9
|
end
|
37
10
|
|
38
|
-
begin
|
39
|
-
require 'rcov/rcovtask'
|
40
|
-
Rcov::RcovTask.new do |test|
|
41
|
-
test.libs << 'test'
|
42
|
-
test.pattern = 'test/**/test_*.rb'
|
43
|
-
test.verbose = true
|
44
|
-
end
|
45
|
-
rescue LoadError
|
46
|
-
task :rcov do
|
47
|
-
abort "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
task :test => :check_dependencies
|
52
|
-
|
53
11
|
task :default => :test
|
54
12
|
|
55
13
|
require 'rake/rdoctask'
|
56
14
|
Rake::RDocTask.new do |rdoc|
|
57
|
-
version = File.exist?('VERSION') ? File.read('VERSION') : ""
|
58
|
-
|
59
15
|
rdoc.rdoc_dir = 'rdoc'
|
60
|
-
rdoc.title = "punchcard #{version}"
|
61
16
|
rdoc.rdoc_files.include('README*')
|
62
17
|
rdoc.rdoc_files.include('lib/**/*.rb')
|
63
|
-
end
|
18
|
+
end
|
data/lib/punchcard.rb
CHANGED
@@ -21,25 +21,8 @@ end
|
|
21
21
|
require 'punchcard/person'
|
22
22
|
require 'punchcard/punch'
|
23
23
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
haml :index
|
30
|
-
end
|
31
|
-
|
32
|
-
get '/status.json' do
|
33
|
-
{:people => Person.order('name ASC').map(&:payload)}.to_json
|
34
|
-
end
|
35
|
-
|
36
|
-
post '/punch/:id' do
|
37
|
-
@person = Person.find(params[:id])
|
38
|
-
@person.punch!
|
39
|
-
@person.to_json
|
40
|
-
end
|
41
|
-
|
42
|
-
get '/css/screen.css' do
|
43
|
-
sass :screen
|
44
|
-
end
|
45
|
-
end
|
24
|
+
module Punchcard
|
25
|
+
end
|
26
|
+
|
27
|
+
require 'punchcard/app'
|
28
|
+
require 'punchcard/version'
|
@@ -0,0 +1,22 @@
|
|
1
|
+
class Punchcard::App < Sinatra::Base
|
2
|
+
set :views, File.join(File.dirname(__FILE__), '../views')
|
3
|
+
set :public, File.join(File.dirname(__FILE__), '../public')
|
4
|
+
|
5
|
+
get '/' do
|
6
|
+
haml :index
|
7
|
+
end
|
8
|
+
|
9
|
+
get '/status.json' do
|
10
|
+
{:people => Person.order('name ASC').map(&:payload)}.to_json
|
11
|
+
end
|
12
|
+
|
13
|
+
post '/punch/:id' do
|
14
|
+
@person = Person.find(params[:id])
|
15
|
+
@person.punch!
|
16
|
+
@person.to_json
|
17
|
+
end
|
18
|
+
|
19
|
+
get '/css/screen.css' do
|
20
|
+
sass :screen
|
21
|
+
end
|
22
|
+
end
|
data/punchcard.gemspec
CHANGED
@@ -1,101 +1,32 @@
|
|
1
|
-
# Generated by jeweler
|
2
|
-
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
|
4
1
|
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "punchcard/version"
|
5
4
|
|
6
5
|
Gem::Specification.new do |s|
|
7
|
-
s.name
|
8
|
-
s.version
|
6
|
+
s.name = "punchcard"
|
7
|
+
s.version = Punchcard::VERSION
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.authors = ["Christoph Olszowka"]
|
10
|
+
s.email = ["christoph at olszowka de"]
|
11
|
+
s.homepage = "https://github.com/capita/punchcard"
|
12
|
+
s.summary = %Q{Simple sinatra/activerecord based app for tracking time when people have been in the office}
|
13
|
+
s.description = %Q{Simple sinatra/activerecord based app for tracking time when people have been in the office}
|
9
14
|
|
10
|
-
s.
|
11
|
-
|
12
|
-
s.
|
13
|
-
s.
|
14
|
-
s.
|
15
|
-
s.
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
s.
|
20
|
-
|
21
|
-
|
22
|
-
"Gemfile",
|
23
|
-
"Gemfile.lock",
|
24
|
-
"LICENSE",
|
25
|
-
"README.rdoc",
|
26
|
-
"Rakefile",
|
27
|
-
"VERSION",
|
28
|
-
"lib/db/migrate/01_create_people.rb",
|
29
|
-
"lib/db/migrate/02_create_punches.rb",
|
30
|
-
"lib/db/migrate/03_add_minutes_to_punches.rb",
|
31
|
-
"lib/public/cardbg.png",
|
32
|
-
"lib/public/css/blueprint.css",
|
33
|
-
"lib/public/js/app.js",
|
34
|
-
"lib/public/js/jquery.timeago.js",
|
35
|
-
"lib/punchcard.rb",
|
36
|
-
"lib/punchcard/person.rb",
|
37
|
-
"lib/punchcard/punch.rb",
|
38
|
-
"lib/punchcard/tasks.rb",
|
39
|
-
"lib/views/index.haml",
|
40
|
-
"lib/views/layout.haml",
|
41
|
-
"lib/views/screen.sass",
|
42
|
-
"punchcard.gemspec",
|
43
|
-
"test/helper.rb",
|
44
|
-
"test/test_database.rb",
|
45
|
-
"test/test_punchcard.rb"
|
46
|
-
]
|
47
|
-
s.homepage = %q{http://github.com/colszowka/punchcard}
|
48
|
-
s.rdoc_options = ["--charset=UTF-8"]
|
49
|
-
s.require_paths = ["lib"]
|
50
|
-
s.rubygems_version = %q{1.3.7}
|
51
|
-
s.summary = %q{Simple sinatra/activerecord based app for tracking time when people have been in the office}
|
52
|
-
s.test_files = [
|
53
|
-
"test/helper.rb",
|
54
|
-
"test/test_database.rb",
|
55
|
-
"test/test_punchcard.rb"
|
56
|
-
]
|
57
|
-
|
58
|
-
if s.respond_to? :specification_version then
|
59
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
60
|
-
s.specification_version = 3
|
61
|
-
|
62
|
-
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
63
|
-
s.add_runtime_dependency(%q<sinatra>, [">= 1.0.0"])
|
64
|
-
s.add_runtime_dependency(%q<bson_ext>, [">= 0"])
|
65
|
-
s.add_runtime_dependency(%q<haml>, [">= 3.0.24"])
|
66
|
-
s.add_runtime_dependency(%q<sass>, [">= 3.0.0"])
|
67
|
-
s.add_runtime_dependency(%q<activerecord>, ["~> 3.0.0"])
|
68
|
-
s.add_runtime_dependency(%q<gravtastic>, [">= 0"])
|
69
|
-
s.add_development_dependency(%q<shoulda>, ["= 2.10.3"])
|
70
|
-
s.add_development_dependency(%q<rack-test>, [">= 0.5.6"])
|
71
|
-
s.add_development_dependency(%q<sqlite3>, [">= 0"])
|
72
|
-
s.add_development_dependency(%q<timecop>, [">= 0"])
|
73
|
-
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
74
|
-
else
|
75
|
-
s.add_dependency(%q<sinatra>, [">= 1.0.0"])
|
76
|
-
s.add_dependency(%q<bson_ext>, [">= 0"])
|
77
|
-
s.add_dependency(%q<haml>, [">= 3.0.24"])
|
78
|
-
s.add_dependency(%q<sass>, [">= 3.0.0"])
|
79
|
-
s.add_dependency(%q<activerecord>, ["~> 3.0.0"])
|
80
|
-
s.add_dependency(%q<gravtastic>, [">= 0"])
|
81
|
-
s.add_dependency(%q<shoulda>, ["= 2.10.3"])
|
82
|
-
s.add_dependency(%q<rack-test>, [">= 0.5.6"])
|
83
|
-
s.add_dependency(%q<sqlite3>, [">= 0"])
|
84
|
-
s.add_dependency(%q<timecop>, [">= 0"])
|
85
|
-
s.add_dependency(%q<jeweler>, [">= 0"])
|
86
|
-
end
|
87
|
-
else
|
88
|
-
s.add_dependency(%q<sinatra>, [">= 1.0.0"])
|
89
|
-
s.add_dependency(%q<bson_ext>, [">= 0"])
|
90
|
-
s.add_dependency(%q<haml>, [">= 3.0.24"])
|
91
|
-
s.add_dependency(%q<sass>, [">= 3.0.0"])
|
92
|
-
s.add_dependency(%q<activerecord>, ["~> 3.0.0"])
|
93
|
-
s.add_dependency(%q<gravtastic>, [">= 0"])
|
94
|
-
s.add_dependency(%q<shoulda>, ["= 2.10.3"])
|
95
|
-
s.add_dependency(%q<rack-test>, [">= 0.5.6"])
|
96
|
-
s.add_dependency(%q<sqlite3>, [">= 0"])
|
97
|
-
s.add_dependency(%q<timecop>, [">= 0"])
|
98
|
-
s.add_dependency(%q<jeweler>, [">= 0"])
|
99
|
-
end
|
100
|
-
end
|
15
|
+
s.rubyforge_project = "punchcard"
|
16
|
+
|
17
|
+
s.add_dependency 'sinatra', "~> 1.1.0"
|
18
|
+
s.add_dependency 'haml', '~> 3.0.24'
|
19
|
+
s.add_dependency 'sass', '>= 3.0.0'
|
20
|
+
s.add_dependency 'activerecord', '~> 3.0.0'
|
21
|
+
s.add_dependency 'gravtastic', '~> 3.1.0'
|
22
|
+
s.add_dependency 'json', '~> 1.5.0'
|
23
|
+
s.add_development_dependency "shoulda", "2.10.3"
|
24
|
+
s.add_development_dependency "rack-test", ">= 0.5.6"
|
25
|
+
s.add_development_dependency 'sqlite3', '>= 0'
|
26
|
+
s.add_development_dependency 'timecop', '>= 0'
|
101
27
|
|
28
|
+
s.files = `git ls-files`.split("\n")
|
29
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
30
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
31
|
+
s.require_paths = ["lib"]
|
32
|
+
end
|
data/test/helper.rb
CHANGED
@@ -1,15 +1,13 @@
|
|
1
1
|
ENV['RACK_ENV'] = 'test'
|
2
2
|
require 'rubygems'
|
3
|
-
require 'bundler'
|
4
|
-
|
3
|
+
require 'bundler/setup'
|
4
|
+
require 'punchcard'
|
5
|
+
|
5
6
|
require 'test/unit'
|
6
7
|
require 'shoulda'
|
7
8
|
require 'rack/test'
|
8
9
|
require 'timecop'
|
9
|
-
|
10
|
-
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
11
|
-
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
12
|
-
require 'punchcard'
|
10
|
+
require 'json'
|
13
11
|
|
14
12
|
# DB setup
|
15
13
|
require 'logger'
|
data/test/test_punchcard.rb
CHANGED
@@ -1,5 +1,75 @@
|
|
1
1
|
require 'helper'
|
2
2
|
|
3
3
|
class TestPunchcard < Test::Unit::TestCase
|
4
|
-
|
4
|
+
include Rack::Test::Methods
|
5
|
+
|
6
|
+
def app
|
7
|
+
Punchcard::App
|
8
|
+
end
|
9
|
+
|
10
|
+
context "With 3 users set up" do
|
11
|
+
setup do
|
12
|
+
@people = ["Christoph", "Sebastian", "Andrea"].map {|name| Person.create!(:name => name, :email => name.downcase + '@example.com')}
|
13
|
+
end
|
14
|
+
|
15
|
+
should "GET /" do
|
16
|
+
get '/'
|
17
|
+
assert last_response.ok?
|
18
|
+
assert last_response.body.include?('Punchcard')
|
19
|
+
end
|
20
|
+
|
21
|
+
context "GET /status.json" do
|
22
|
+
setup { get '/status.json' }
|
23
|
+
should("respond with success") { assert last_response.ok? }
|
24
|
+
|
25
|
+
context "the JSON body" do
|
26
|
+
setup { @json = JSON.parse(last_response.body) }
|
27
|
+
should("be a Hash") { assert_equal Hash, @json.class }
|
28
|
+
should("have 3 people") { assert_equal 3, @json["people"].length }
|
29
|
+
should "have all ids, names and emails in people array" do
|
30
|
+
@people.each do |person|
|
31
|
+
assert @json["people"].any? {|p| p["name"] == person.name && p["email"] == person.email && p["_id"] == person.id }
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
should "have all people punched out" do
|
36
|
+
assert @json["people"].all? {|p| @json["checked_in_at"] == nil }
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
context "POST /punch/:id" do
|
42
|
+
setup do
|
43
|
+
post "/punch/#{@people.first.id}"
|
44
|
+
end
|
45
|
+
should("respond with success") { assert last_response.ok? }
|
46
|
+
should "include the person details in response as JSON" do
|
47
|
+
json = JSON.parse(last_response.body)
|
48
|
+
person = @people.first.reload
|
49
|
+
assert_equal person.name, json["name"]
|
50
|
+
assert_equal person.email, json["email"]
|
51
|
+
assert_equal person.id, json["_id"]
|
52
|
+
assert Time.xmlschema(json["checked_in_at"]) > 10.seconds.ago
|
53
|
+
end
|
54
|
+
|
55
|
+
context "GET /status.json" do
|
56
|
+
setup { get '/status.json' }
|
57
|
+
should("respond with success") { assert last_response.ok? }
|
58
|
+
|
59
|
+
context "the JSON body" do
|
60
|
+
setup { @json = JSON.parse(last_response.body) }
|
61
|
+
|
62
|
+
should "have 1 person punched in" do
|
63
|
+
assert_equal 1, @json["people"].reject {|p| p["checked_in_at"] == nil}.count
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
should "GET /css/screen.css" do
|
70
|
+
get '/css/screen.css'
|
71
|
+
assert last_response.ok?
|
72
|
+
assert last_response.body.include?('font-family')
|
73
|
+
end
|
74
|
+
end
|
5
75
|
end
|
metadata
CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
|
|
4
4
|
prerelease: false
|
5
5
|
segments:
|
6
6
|
- 0
|
7
|
-
-
|
8
|
-
-
|
9
|
-
version: 0.
|
7
|
+
- 3
|
8
|
+
- 0
|
9
|
+
version: 0.3.0
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Christoph Olszowka
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date:
|
17
|
+
date: 2011-02-05 00:00:00 +01:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -23,30 +23,32 @@ dependencies:
|
|
23
23
|
requirement: &id001 !ruby/object:Gem::Requirement
|
24
24
|
none: false
|
25
25
|
requirements:
|
26
|
-
- -
|
26
|
+
- - ~>
|
27
27
|
- !ruby/object:Gem::Version
|
28
28
|
segments:
|
29
29
|
- 1
|
30
|
+
- 1
|
30
31
|
- 0
|
31
|
-
|
32
|
-
version: 1.0.0
|
32
|
+
version: 1.1.0
|
33
33
|
type: :runtime
|
34
34
|
version_requirements: *id001
|
35
35
|
- !ruby/object:Gem::Dependency
|
36
|
-
name:
|
36
|
+
name: haml
|
37
37
|
prerelease: false
|
38
38
|
requirement: &id002 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
|
-
- -
|
41
|
+
- - ~>
|
42
42
|
- !ruby/object:Gem::Version
|
43
43
|
segments:
|
44
|
+
- 3
|
44
45
|
- 0
|
45
|
-
|
46
|
+
- 24
|
47
|
+
version: 3.0.24
|
46
48
|
type: :runtime
|
47
49
|
version_requirements: *id002
|
48
50
|
- !ruby/object:Gem::Dependency
|
49
|
-
name:
|
51
|
+
name: sass
|
50
52
|
prerelease: false
|
51
53
|
requirement: &id003 !ruby/object:Gem::Requirement
|
52
54
|
none: false
|
@@ -56,17 +58,17 @@ dependencies:
|
|
56
58
|
segments:
|
57
59
|
- 3
|
58
60
|
- 0
|
59
|
-
-
|
60
|
-
version: 3.0.
|
61
|
+
- 0
|
62
|
+
version: 3.0.0
|
61
63
|
type: :runtime
|
62
64
|
version_requirements: *id003
|
63
65
|
- !ruby/object:Gem::Dependency
|
64
|
-
name:
|
66
|
+
name: activerecord
|
65
67
|
prerelease: false
|
66
68
|
requirement: &id004 !ruby/object:Gem::Requirement
|
67
69
|
none: false
|
68
70
|
requirements:
|
69
|
-
- -
|
71
|
+
- - ~>
|
70
72
|
- !ruby/object:Gem::Version
|
71
73
|
segments:
|
72
74
|
- 3
|
@@ -76,7 +78,7 @@ dependencies:
|
|
76
78
|
type: :runtime
|
77
79
|
version_requirements: *id004
|
78
80
|
- !ruby/object:Gem::Dependency
|
79
|
-
name:
|
81
|
+
name: gravtastic
|
80
82
|
prerelease: false
|
81
83
|
requirement: &id005 !ruby/object:Gem::Requirement
|
82
84
|
none: false
|
@@ -85,22 +87,24 @@ dependencies:
|
|
85
87
|
- !ruby/object:Gem::Version
|
86
88
|
segments:
|
87
89
|
- 3
|
90
|
+
- 1
|
88
91
|
- 0
|
89
|
-
|
90
|
-
version: 3.0.0
|
92
|
+
version: 3.1.0
|
91
93
|
type: :runtime
|
92
94
|
version_requirements: *id005
|
93
95
|
- !ruby/object:Gem::Dependency
|
94
|
-
name:
|
96
|
+
name: json
|
95
97
|
prerelease: false
|
96
98
|
requirement: &id006 !ruby/object:Gem::Requirement
|
97
99
|
none: false
|
98
100
|
requirements:
|
99
|
-
- -
|
101
|
+
- - ~>
|
100
102
|
- !ruby/object:Gem::Version
|
101
103
|
segments:
|
104
|
+
- 1
|
105
|
+
- 5
|
102
106
|
- 0
|
103
|
-
version:
|
107
|
+
version: 1.5.0
|
104
108
|
type: :runtime
|
105
109
|
version_requirements: *id006
|
106
110
|
- !ruby/object:Gem::Dependency
|
@@ -159,37 +163,22 @@ dependencies:
|
|
159
163
|
version: "0"
|
160
164
|
type: :development
|
161
165
|
version_requirements: *id010
|
162
|
-
- !ruby/object:Gem::Dependency
|
163
|
-
name: jeweler
|
164
|
-
prerelease: false
|
165
|
-
requirement: &id011 !ruby/object:Gem::Requirement
|
166
|
-
none: false
|
167
|
-
requirements:
|
168
|
-
- - ">="
|
169
|
-
- !ruby/object:Gem::Version
|
170
|
-
segments:
|
171
|
-
- 0
|
172
|
-
version: "0"
|
173
|
-
type: :development
|
174
|
-
version_requirements: *id011
|
175
166
|
description: Simple sinatra/activerecord based app for tracking time when people have been in the office
|
176
|
-
email:
|
167
|
+
email:
|
168
|
+
- christoph at olszowka de
|
177
169
|
executables: []
|
178
170
|
|
179
171
|
extensions: []
|
180
172
|
|
181
|
-
extra_rdoc_files:
|
182
|
-
|
183
|
-
- README.rdoc
|
173
|
+
extra_rdoc_files: []
|
174
|
+
|
184
175
|
files:
|
185
176
|
- .document
|
186
177
|
- .gitignore
|
187
178
|
- Gemfile
|
188
|
-
- Gemfile.lock
|
189
179
|
- LICENSE
|
190
180
|
- README.rdoc
|
191
181
|
- Rakefile
|
192
|
-
- VERSION
|
193
182
|
- lib/db/migrate/01_create_people.rb
|
194
183
|
- lib/db/migrate/02_create_punches.rb
|
195
184
|
- lib/db/migrate/03_add_minutes_to_punches.rb
|
@@ -198,9 +187,11 @@ files:
|
|
198
187
|
- lib/public/js/app.js
|
199
188
|
- lib/public/js/jquery.timeago.js
|
200
189
|
- lib/punchcard.rb
|
190
|
+
- lib/punchcard/app.rb
|
201
191
|
- lib/punchcard/person.rb
|
202
192
|
- lib/punchcard/punch.rb
|
203
193
|
- lib/punchcard/tasks.rb
|
194
|
+
- lib/punchcard/version.rb
|
204
195
|
- lib/views/index.haml
|
205
196
|
- lib/views/layout.haml
|
206
197
|
- lib/views/screen.sass
|
@@ -209,12 +200,12 @@ files:
|
|
209
200
|
- test/test_database.rb
|
210
201
|
- test/test_punchcard.rb
|
211
202
|
has_rdoc: true
|
212
|
-
homepage:
|
203
|
+
homepage: https://github.com/capita/punchcard
|
213
204
|
licenses: []
|
214
205
|
|
215
206
|
post_install_message:
|
216
|
-
rdoc_options:
|
217
|
-
|
207
|
+
rdoc_options: []
|
208
|
+
|
218
209
|
require_paths:
|
219
210
|
- lib
|
220
211
|
required_ruby_version: !ruby/object:Gem::Requirement
|
@@ -235,7 +226,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
235
226
|
version: "0"
|
236
227
|
requirements: []
|
237
228
|
|
238
|
-
rubyforge_project:
|
229
|
+
rubyforge_project: punchcard
|
239
230
|
rubygems_version: 1.3.7
|
240
231
|
signing_key:
|
241
232
|
specification_version: 3
|
data/Gemfile.lock
DELETED
@@ -1,72 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
punchcard (0.2.5)
|
5
|
-
activerecord (~> 3.0.0)
|
6
|
-
bson_ext
|
7
|
-
gravtastic
|
8
|
-
haml (>= 3.0.24)
|
9
|
-
sass (>= 3.0.0)
|
10
|
-
sinatra (>= 1.0.0)
|
11
|
-
|
12
|
-
GEM
|
13
|
-
remote: http://rubygems.org/
|
14
|
-
specs:
|
15
|
-
activemodel (3.0.3)
|
16
|
-
activesupport (= 3.0.3)
|
17
|
-
builder (~> 2.1.2)
|
18
|
-
i18n (~> 0.4)
|
19
|
-
activerecord (3.0.3)
|
20
|
-
activemodel (= 3.0.3)
|
21
|
-
activesupport (= 3.0.3)
|
22
|
-
arel (~> 2.0.2)
|
23
|
-
tzinfo (~> 0.3.23)
|
24
|
-
activesupport (3.0.3)
|
25
|
-
arel (2.0.6)
|
26
|
-
bson_ext (1.1.4)
|
27
|
-
builder (2.1.2)
|
28
|
-
ffi (1.0.1)
|
29
|
-
rake (>= 0.8.7)
|
30
|
-
gemcutter (0.6.1)
|
31
|
-
git (1.2.5)
|
32
|
-
gravtastic (3.1.0)
|
33
|
-
haml (3.0.24)
|
34
|
-
i18n (0.5.0)
|
35
|
-
jeweler (1.4.0)
|
36
|
-
gemcutter (>= 0.1.0)
|
37
|
-
git (>= 1.2.5)
|
38
|
-
rubyforge (>= 2.0.0)
|
39
|
-
json_pure (1.4.6)
|
40
|
-
rack (1.2.1)
|
41
|
-
rack-test (0.5.6)
|
42
|
-
rack (>= 1.0)
|
43
|
-
rake (0.8.7)
|
44
|
-
rubyforge (2.0.4)
|
45
|
-
json_pure (>= 1.1.7)
|
46
|
-
sass (3.1.0.alpha.200)
|
47
|
-
shoulda (2.10.3)
|
48
|
-
sinatra (1.1.0)
|
49
|
-
rack (~> 1.1)
|
50
|
-
tilt (~> 1.1)
|
51
|
-
sqlite3 (0.1.1)
|
52
|
-
ffi (>= 0.6.3)
|
53
|
-
tilt (1.1)
|
54
|
-
timecop (0.3.5)
|
55
|
-
tzinfo (0.3.23)
|
56
|
-
|
57
|
-
PLATFORMS
|
58
|
-
ruby
|
59
|
-
|
60
|
-
DEPENDENCIES
|
61
|
-
activerecord (~> 3.0.0)
|
62
|
-
bson_ext
|
63
|
-
gravtastic
|
64
|
-
haml (>= 3.0.24)
|
65
|
-
jeweler
|
66
|
-
punchcard!
|
67
|
-
rack-test (>= 0.5.6)
|
68
|
-
sass (>= 3.0.0)
|
69
|
-
shoulda (= 2.10.3)
|
70
|
-
sinatra (>= 1.0.0)
|
71
|
-
sqlite3
|
72
|
-
timecop
|
data/VERSION
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
0.2.9
|