punchcard 0.2.9 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -1,6 +1,7 @@
1
1
  .DS_Store
2
2
 
3
3
  .bundle
4
+ Gemfile.lock
4
5
  .sass-cache
5
6
  *.sqlite*
6
7
 
@@ -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 'rubygems'
2
- require 'rake'
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
@@ -21,25 +21,8 @@ end
21
21
  require 'punchcard/person'
22
22
  require 'punchcard/punch'
23
23
 
24
- class Punchcard < Sinatra::Base
25
- set :views, File.join(File.dirname(__FILE__), 'views')
26
- set :public, File.join(File.dirname(__FILE__), 'public')
27
-
28
- get '/' do
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
@@ -0,0 +1,3 @@
1
+ module Punchcard
2
+ VERSION = '0.3.0'
3
+ end
@@ -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 = %q{punchcard}
8
- s.version = "0.2.9"
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.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["Christoph Olszowka"]
12
- s.date = %q{2010-12-10}
13
- s.description = %q{Simple sinatra/activerecord based app for tracking time when people have been in the office}
14
- s.email = %q{christoph at olszowka de}
15
- s.extra_rdoc_files = [
16
- "LICENSE",
17
- "README.rdoc"
18
- ]
19
- s.files = [
20
- ".document",
21
- ".gitignore",
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
@@ -1,15 +1,13 @@
1
1
  ENV['RACK_ENV'] = 'test'
2
2
  require 'rubygems'
3
- require 'bundler'
4
- Bundler.require
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'
@@ -1,5 +1,75 @@
1
1
  require 'helper'
2
2
 
3
3
  class TestPunchcard < Test::Unit::TestCase
4
- # TODO
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
- - 2
8
- - 9
9
- version: 0.2.9
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: 2010-12-10 00:00:00 +01:00
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
- - 0
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: bson_ext
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
- version: "0"
46
+ - 24
47
+ version: 3.0.24
46
48
  type: :runtime
47
49
  version_requirements: *id002
48
50
  - !ruby/object:Gem::Dependency
49
- name: haml
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
- - 24
60
- version: 3.0.24
61
+ - 0
62
+ version: 3.0.0
61
63
  type: :runtime
62
64
  version_requirements: *id003
63
65
  - !ruby/object:Gem::Dependency
64
- name: sass
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: activerecord
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
- - 0
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: gravtastic
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: "0"
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: christoph at olszowka de
167
+ email:
168
+ - christoph at olszowka de
177
169
  executables: []
178
170
 
179
171
  extensions: []
180
172
 
181
- extra_rdoc_files:
182
- - LICENSE
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: http://github.com/colszowka/punchcard
203
+ homepage: https://github.com/capita/punchcard
213
204
  licenses: []
214
205
 
215
206
  post_install_message:
216
- rdoc_options:
217
- - --charset=UTF-8
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
@@ -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