blamestamp 0.9.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/MIT-LICENSE +20 -0
- data/README.md +137 -0
- data/Rakefile +38 -0
- data/lib/blamestamp/action_controller.rb +24 -0
- data/lib/blamestamp/active_record.rb +84 -0
- data/lib/blamestamp/schema.rb +37 -0
- data/lib/blamestamp/version.rb +3 -0
- data/lib/blamestamp.rb +26 -0
- data/lib/tasks/blamestamp_tasks.rake +4 -0
- data/test/alligators_controller_test.rb +60 -0
- data/test/blameable_test.rb +114 -0
- data/test/blamestamp_test.rb +7 -0
- data/test/devise_works_test.rb +20 -0
- data/test/dummy/README.rdoc +261 -0
- data/test/dummy/Rakefile +7 -0
- data/test/dummy/app/assets/javascripts/application.js +13 -0
- data/test/dummy/app/assets/javascripts/home.js +2 -0
- data/test/dummy/app/assets/stylesheets/application.css +13 -0
- data/test/dummy/app/assets/stylesheets/home.css +4 -0
- data/test/dummy/app/controllers/alligators_controller.rb +83 -0
- data/test/dummy/app/controllers/application_controller.rb +3 -0
- data/test/dummy/app/controllers/flags_controller.rb +83 -0
- data/test/dummy/app/controllers/home_controller.rb +4 -0
- data/test/dummy/app/controllers/projects_controller.rb +83 -0
- data/test/dummy/app/helpers/alligators_helper.rb +2 -0
- data/test/dummy/app/helpers/application_helper.rb +2 -0
- data/test/dummy/app/helpers/flags_helper.rb +2 -0
- data/test/dummy/app/helpers/home_helper.rb +2 -0
- data/test/dummy/app/helpers/projects_helper.rb +2 -0
- data/test/dummy/app/models/alligator.rb +6 -0
- data/test/dummy/app/models/flag.rb +12 -0
- data/test/dummy/app/models/project.rb +6 -0
- data/test/dummy/app/models/user.rb +10 -0
- data/test/dummy/app/views/alligators/_form.html.erb +17 -0
- data/test/dummy/app/views/alligators/edit.html.erb +6 -0
- data/test/dummy/app/views/alligators/index.html.erb +21 -0
- data/test/dummy/app/views/alligators/new.html.erb +5 -0
- data/test/dummy/app/views/alligators/show.html.erb +5 -0
- data/test/dummy/app/views/devise/_links.erb +25 -0
- data/test/dummy/app/views/devise/confirmations/new.html.erb +12 -0
- data/test/dummy/app/views/devise/mailer/confirmation_instructions.html.erb +5 -0
- data/test/dummy/app/views/devise/mailer/reset_password_instructions.html.erb +8 -0
- data/test/dummy/app/views/devise/mailer/unlock_instructions.html.erb +7 -0
- data/test/dummy/app/views/devise/passwords/edit.html.erb +16 -0
- data/test/dummy/app/views/devise/passwords/new.html.erb +12 -0
- data/test/dummy/app/views/devise/registrations/edit.html.erb +25 -0
- data/test/dummy/app/views/devise/registrations/new.html.erb +18 -0
- data/test/dummy/app/views/devise/sessions/new.html.erb +17 -0
- data/test/dummy/app/views/devise/unlocks/new.html.erb +12 -0
- data/test/dummy/app/views/flags/_form.html.erb +17 -0
- data/test/dummy/app/views/flags/edit.html.erb +6 -0
- data/test/dummy/app/views/flags/index.html.erb +21 -0
- data/test/dummy/app/views/flags/new.html.erb +5 -0
- data/test/dummy/app/views/flags/show.html.erb +5 -0
- data/test/dummy/app/views/home/index.html.erb +8 -0
- data/test/dummy/app/views/layouts/application.html.erb +17 -0
- data/test/dummy/app/views/projects/_form.html.erb +17 -0
- data/test/dummy/app/views/projects/edit.html.erb +6 -0
- data/test/dummy/app/views/projects/index.html.erb +21 -0
- data/test/dummy/app/views/projects/new.html.erb +5 -0
- data/test/dummy/app/views/projects/show.html.erb +5 -0
- data/test/dummy/config/application.rb +57 -0
- data/test/dummy/config/boot.rb +10 -0
- data/test/dummy/config/database.yml +25 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +37 -0
- data/test/dummy/config/environments/production.rb +67 -0
- data/test/dummy/config/environments/test.rb +38 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/devise.rb +223 -0
- data/test/dummy/config/initializers/inflections.rb +15 -0
- data/test/dummy/config/initializers/mime_types.rb +5 -0
- data/test/dummy/config/initializers/secret_token.rb +7 -0
- data/test/dummy/config/initializers/session_store.rb +8 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/test/dummy/config/locales/devise.en.yml +57 -0
- data/test/dummy/config/locales/en.yml +5 -0
- data/test/dummy/config/routes.rb +14 -0
- data/test/dummy/config.ru +4 -0
- data/test/dummy/db/development.sqlite3 +0 -0
- data/test/dummy/db/migrate/20120420004117_devise_create_users.rb +49 -0
- data/test/dummy/db/migrate/20120420005606_create_projects.rb +10 -0
- data/test/dummy/db/migrate/20120504022124_create_alligators.rb +11 -0
- data/test/dummy/db/migrate/20120504025050_create_flags.rb +15 -0
- data/test/dummy/db/schema.rb +62 -0
- data/test/dummy/db/test.sqlite3 +0 -0
- data/test/dummy/log/development.log +780 -0
- data/test/dummy/log/test.log +32640 -0
- data/test/dummy/public/404.html +26 -0
- data/test/dummy/public/422.html +26 -0
- data/test/dummy/public/500.html +25 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/dummy/script/rails +6 -0
- data/test/fixtures/alligators.yml +9 -0
- data/test/fixtures/flags.yml +12 -0
- data/test/fixtures/projects.yml +9 -0
- data/test/fixtures/users.yml +6 -0
- data/test/flags_controller_test.rb +72 -0
- data/test/migration_test.rb +24 -0
- data/test/projects_controller_test.rb +65 -0
- data/test/test_helper.rb +23 -0
- metadata +318 -0
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<title>The page you were looking for doesn't exist (404)</title>
|
|
5
|
+
<style type="text/css">
|
|
6
|
+
body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
|
|
7
|
+
div.dialog {
|
|
8
|
+
width: 25em;
|
|
9
|
+
padding: 0 4em;
|
|
10
|
+
margin: 4em auto 0 auto;
|
|
11
|
+
border: 1px solid #ccc;
|
|
12
|
+
border-right-color: #999;
|
|
13
|
+
border-bottom-color: #999;
|
|
14
|
+
}
|
|
15
|
+
h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
|
|
16
|
+
</style>
|
|
17
|
+
</head>
|
|
18
|
+
|
|
19
|
+
<body>
|
|
20
|
+
<!-- This file lives in public/404.html -->
|
|
21
|
+
<div class="dialog">
|
|
22
|
+
<h1>The page you were looking for doesn't exist.</h1>
|
|
23
|
+
<p>You may have mistyped the address or the page may have moved.</p>
|
|
24
|
+
</div>
|
|
25
|
+
</body>
|
|
26
|
+
</html>
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<title>The change you wanted was rejected (422)</title>
|
|
5
|
+
<style type="text/css">
|
|
6
|
+
body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
|
|
7
|
+
div.dialog {
|
|
8
|
+
width: 25em;
|
|
9
|
+
padding: 0 4em;
|
|
10
|
+
margin: 4em auto 0 auto;
|
|
11
|
+
border: 1px solid #ccc;
|
|
12
|
+
border-right-color: #999;
|
|
13
|
+
border-bottom-color: #999;
|
|
14
|
+
}
|
|
15
|
+
h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
|
|
16
|
+
</style>
|
|
17
|
+
</head>
|
|
18
|
+
|
|
19
|
+
<body>
|
|
20
|
+
<!-- This file lives in public/422.html -->
|
|
21
|
+
<div class="dialog">
|
|
22
|
+
<h1>The change you wanted was rejected.</h1>
|
|
23
|
+
<p>Maybe you tried to change something you didn't have access to.</p>
|
|
24
|
+
</div>
|
|
25
|
+
</body>
|
|
26
|
+
</html>
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<title>We're sorry, but something went wrong (500)</title>
|
|
5
|
+
<style type="text/css">
|
|
6
|
+
body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
|
|
7
|
+
div.dialog {
|
|
8
|
+
width: 25em;
|
|
9
|
+
padding: 0 4em;
|
|
10
|
+
margin: 4em auto 0 auto;
|
|
11
|
+
border: 1px solid #ccc;
|
|
12
|
+
border-right-color: #999;
|
|
13
|
+
border-bottom-color: #999;
|
|
14
|
+
}
|
|
15
|
+
h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
|
|
16
|
+
</style>
|
|
17
|
+
</head>
|
|
18
|
+
|
|
19
|
+
<body>
|
|
20
|
+
<!-- This file lives in public/500.html -->
|
|
21
|
+
<div class="dialog">
|
|
22
|
+
<h1>We're sorry, but something went wrong.</h1>
|
|
23
|
+
</div>
|
|
24
|
+
</body>
|
|
25
|
+
</html>
|
|
File without changes
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
# This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
|
|
3
|
+
|
|
4
|
+
APP_PATH = File.expand_path('../../config/application', __FILE__)
|
|
5
|
+
require File.expand_path('../../config/boot', __FILE__)
|
|
6
|
+
require 'rails/commands'
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class FlagsControllerTest < ActionController::TestCase
|
|
4
|
+
test "stamps on create" do
|
|
5
|
+
sign_in :user, users(:harold)
|
|
6
|
+
create_flag("foo", projects(:secret), alligators(:james))
|
|
7
|
+
|
|
8
|
+
assert_not_nil @flag.made_at, "created_at not set"
|
|
9
|
+
assert_equal users(:harold).id, @flag.made_by, "created_by not set"
|
|
10
|
+
assert_nil @flag.changed_at, "updated_at was set"
|
|
11
|
+
assert_nil @flag.hacked_by, "updated_by was set"
|
|
12
|
+
|
|
13
|
+
assert_nil @flag.project.blame_cre_at, "project created_at was set"
|
|
14
|
+
assert_nil @flag.project.blame_cre_by, "project created_by was set"
|
|
15
|
+
assert_not_nil @flag.project.blame_upd_at, "project updated_at not set"
|
|
16
|
+
assert_equal users(:harold).id, @flag.project.blame_upd_by, "project updated_by not set"
|
|
17
|
+
|
|
18
|
+
assert_nil @flag.alligator.gator_cre_at, "gator created_at was set"
|
|
19
|
+
assert_nil @flag.alligator.gator_cre_by, "gator created_by was set"
|
|
20
|
+
assert_not_nil @flag.alligator.gator_upd_at, "gator updated_at not set"
|
|
21
|
+
assert_equal users(:harold).id, @flag.alligator.gator_upd_by, "gator updated_by not set"
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
test "stamps on update" do
|
|
25
|
+
sign_in :user, users(:isak)
|
|
26
|
+
update_flag(flags(:semaphore), "foo")
|
|
27
|
+
|
|
28
|
+
assert_not_nil @flag.changed_at, "updated_at not set"
|
|
29
|
+
assert_equal users(:isak).id, @flag.hacked_by, "updated_by not set"
|
|
30
|
+
|
|
31
|
+
assert_not_nil @flag.project.blame_upd_at, "project updated_at not set"
|
|
32
|
+
assert_equal users(:isak).id, @flag.project.blame_upd_by, "project updated_by not set"
|
|
33
|
+
|
|
34
|
+
assert_not_nil @flag.alligator.gator_upd_at, "gator updated_at not set"
|
|
35
|
+
assert_equal users(:isak).id, @flag.alligator.gator_upd_by, "gator updated_by not set"
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
test "stamps on destroy" do
|
|
39
|
+
sign_in :user, users(:cameron)
|
|
40
|
+
destroy_flag(flags(:american))
|
|
41
|
+
prj = Project.find(projects(:secret).id)
|
|
42
|
+
gat = Alligator.find(alligators(:james).id)
|
|
43
|
+
|
|
44
|
+
assert_not_nil prj.blame_upd_at, "project updated_at not set"
|
|
45
|
+
assert_equal users(:cameron).id, prj.blame_upd_by, "project updated_by not set"
|
|
46
|
+
|
|
47
|
+
assert_not_nil gat.gator_upd_at, "gator updated_at not set"
|
|
48
|
+
assert_equal users(:cameron).id, gat.gator_upd_by, "gator updated_by not set"
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
private
|
|
52
|
+
|
|
53
|
+
# helper to create and set a new flag
|
|
54
|
+
def create_flag(orig, project, alligator)
|
|
55
|
+
post :create, :flag => {:origin => orig, :project_id => project.id, :alligator_id => alligator.id}
|
|
56
|
+
assert_response :redirect, "create didn't redirect"
|
|
57
|
+
@flag = assigns(:flag)
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
# helper to update and set an existing flag
|
|
61
|
+
def update_flag(flag, orig)
|
|
62
|
+
put :update, :id => flag.id, :flag => {:origin => orig}
|
|
63
|
+
assert_response :redirect, "update didn't redirect"
|
|
64
|
+
@flag = assigns(:flag)
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
# helper to destroy an flag
|
|
68
|
+
def destroy_flag(flag)
|
|
69
|
+
put :destroy, :id => flag.id
|
|
70
|
+
assert_response :redirect, "destroy didn't redirect"
|
|
71
|
+
end
|
|
72
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class MigrationTest < ActiveSupport::TestCase
|
|
4
|
+
test "default migration helper" do
|
|
5
|
+
assert Project.column_names.include?("blame_cre_at"), "doesn't include cre_at"
|
|
6
|
+
assert Project.column_names.include?("blame_upd_at"), "doesn't include upd_at"
|
|
7
|
+
assert Project.column_names.include?("blame_cre_by"), "doesn't include cre_by"
|
|
8
|
+
assert Project.column_names.include?("blame_upd_by"), "doesn't include upd_by"
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
test "prefix option on migration helper" do
|
|
12
|
+
assert Alligator.column_names.include?("gator_cre_at"), "doesn't include cre_at"
|
|
13
|
+
assert Alligator.column_names.include?("gator_upd_at"), "doesn't include upd_at"
|
|
14
|
+
assert Alligator.column_names.include?("gator_cre_by"), "doesn't include cre_by"
|
|
15
|
+
assert Alligator.column_names.include?("gator_upd_by"), "doesn't include upd_by"
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
test "custom fields migration" do
|
|
19
|
+
assert Flag.column_names.include?("made_at"), "doesn't include cre_at"
|
|
20
|
+
assert Flag.column_names.include?("changed_at"), "doesn't include upd_at"
|
|
21
|
+
assert Flag.column_names.include?("made_by"), "doesn't include cre_by"
|
|
22
|
+
assert Flag.column_names.include?("hacked_by"), "doesn't include upd_by"
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class ProjectsControllerTest < ActionController::TestCase
|
|
4
|
+
test "logged-out stamps on create" do
|
|
5
|
+
create_project("foo", "bar")
|
|
6
|
+
assert @project.blame_cre_at, "created_at not set"
|
|
7
|
+
assert_nil @project.blame_cre_by, "created_by was set"
|
|
8
|
+
assert_nil @project.blame_upd_at, "updated_at was set"
|
|
9
|
+
assert_nil @project.blame_upd_by, "updated_by was set"
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
test "logged-in stamps on create" do
|
|
13
|
+
sign_in :user, users(:harold)
|
|
14
|
+
create_project("foo", "bar")
|
|
15
|
+
assert @project.blame_cre_at, "created_at not set"
|
|
16
|
+
assert @project.blame_cre_by, "created_by not set"
|
|
17
|
+
assert_nil @project.blame_upd_at, "updated_at was set"
|
|
18
|
+
assert_nil @project.blame_upd_by, "updated_by was set"
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
test "logged-out stamps on update" do
|
|
22
|
+
update_project(projects(:secret), "foo", "bar")
|
|
23
|
+
assert_equal projects(:secret).blame_cre_at, @project.blame_cre_at, "created_at changed"
|
|
24
|
+
assert_equal projects(:secret).blame_cre_by, @project.blame_cre_by, "created_by changed"
|
|
25
|
+
assert @project.blame_upd_at, "updated_at not set"
|
|
26
|
+
assert_nil @project.blame_upd_by, "updated_by was set"
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
test "logged-in stamps on update" do
|
|
30
|
+
sign_in :user, users(:harold)
|
|
31
|
+
update_project(projects(:secret), "foo", "bar")
|
|
32
|
+
assert_equal projects(:secret).blame_cre_at, @project.blame_cre_at, "created_at changed"
|
|
33
|
+
assert_equal projects(:secret).blame_cre_by, @project.blame_cre_by, "created_by changed"
|
|
34
|
+
assert @project.blame_upd_at, "updated_at not set"
|
|
35
|
+
assert_equal users(:harold).id, @project.blame_upd_by, "updated_by not harold"
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
test "relationships are set" do
|
|
39
|
+
sign_in :user, users(:harold)
|
|
40
|
+
create_project("foo", "bar")
|
|
41
|
+
assert_equal users(:harold).email, @project.blame_cre_user.email, "created email differs"
|
|
42
|
+
assert_nil @project.blame_upd_user, "updated user exists"
|
|
43
|
+
|
|
44
|
+
sign_out :user
|
|
45
|
+
sign_in :user, users(:isak)
|
|
46
|
+
update_project(@project, "foo", "bar2")
|
|
47
|
+
assert_equal users(:isak).email, @project.blame_upd_user.email, "updated email differs"
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
private
|
|
51
|
+
|
|
52
|
+
# helper to create and set a new project
|
|
53
|
+
def create_project(title, desc)
|
|
54
|
+
post :create, :project => {:title => title, :desc => desc}
|
|
55
|
+
assert_response :redirect, "create didn't redirect"
|
|
56
|
+
@project = assigns(:project)
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
# helper to update and set an existing project
|
|
60
|
+
def update_project(prj, title, desc)
|
|
61
|
+
put :update, :id => prj.id, :project => {:title => title, :desc => desc}
|
|
62
|
+
assert_response :redirect, "update didn't redirect"
|
|
63
|
+
@project = assigns(:project)
|
|
64
|
+
end
|
|
65
|
+
end
|
data/test/test_helper.rb
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
ENV["RAILS_ENV"] = "test"
|
|
2
|
+
require File.expand_path("../dummy/config/environment.rb", __FILE__)
|
|
3
|
+
require "rails/test_help"
|
|
4
|
+
|
|
5
|
+
Rails.backtrace_cleaner.remove_silencers!
|
|
6
|
+
|
|
7
|
+
# Load support files
|
|
8
|
+
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
|
|
9
|
+
|
|
10
|
+
# Load fixtures from the engine
|
|
11
|
+
if ActiveSupport::TestCase.method_defined?(:fixture_path=)
|
|
12
|
+
ActiveSupport::TestCase.fixture_path = File.expand_path("../fixtures", __FILE__)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
class ActiveSupport::TestCase
|
|
16
|
+
fixtures :all
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
# devise helpers
|
|
20
|
+
class ActionController::TestCase
|
|
21
|
+
include Devise::TestHelpers
|
|
22
|
+
fixtures :all
|
|
23
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,318 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: blamestamp
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.9.0
|
|
5
|
+
prerelease:
|
|
6
|
+
platform: ruby
|
|
7
|
+
authors:
|
|
8
|
+
- rtanc
|
|
9
|
+
autorequire:
|
|
10
|
+
bindir: bin
|
|
11
|
+
cert_chain: []
|
|
12
|
+
date: 2012-05-05 00:00:00.000000000 Z
|
|
13
|
+
dependencies:
|
|
14
|
+
- !ruby/object:Gem::Dependency
|
|
15
|
+
name: rails
|
|
16
|
+
requirement: &70276834667740 !ruby/object:Gem::Requirement
|
|
17
|
+
none: false
|
|
18
|
+
requirements:
|
|
19
|
+
- - ! '>='
|
|
20
|
+
- !ruby/object:Gem::Version
|
|
21
|
+
version: 3.0.0
|
|
22
|
+
type: :runtime
|
|
23
|
+
prerelease: false
|
|
24
|
+
version_requirements: *70276834667740
|
|
25
|
+
- !ruby/object:Gem::Dependency
|
|
26
|
+
name: devise
|
|
27
|
+
requirement: &70276834681980 !ruby/object:Gem::Requirement
|
|
28
|
+
none: false
|
|
29
|
+
requirements:
|
|
30
|
+
- - ! '>='
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: 2.0.0
|
|
33
|
+
type: :runtime
|
|
34
|
+
prerelease: false
|
|
35
|
+
version_requirements: *70276834681980
|
|
36
|
+
- !ruby/object:Gem::Dependency
|
|
37
|
+
name: activerecord
|
|
38
|
+
requirement: &70276834680920 !ruby/object:Gem::Requirement
|
|
39
|
+
none: false
|
|
40
|
+
requirements:
|
|
41
|
+
- - ! '>='
|
|
42
|
+
- !ruby/object:Gem::Version
|
|
43
|
+
version: 3.0.0
|
|
44
|
+
type: :runtime
|
|
45
|
+
prerelease: false
|
|
46
|
+
version_requirements: *70276834680920
|
|
47
|
+
- !ruby/object:Gem::Dependency
|
|
48
|
+
name: activemodel
|
|
49
|
+
requirement: &70276834680200 !ruby/object:Gem::Requirement
|
|
50
|
+
none: false
|
|
51
|
+
requirements:
|
|
52
|
+
- - ! '>='
|
|
53
|
+
- !ruby/object:Gem::Version
|
|
54
|
+
version: 3.0.0
|
|
55
|
+
type: :runtime
|
|
56
|
+
prerelease: false
|
|
57
|
+
version_requirements: *70276834680200
|
|
58
|
+
- !ruby/object:Gem::Dependency
|
|
59
|
+
name: activesupport
|
|
60
|
+
requirement: &70276834678940 !ruby/object:Gem::Requirement
|
|
61
|
+
none: false
|
|
62
|
+
requirements:
|
|
63
|
+
- - ! '>='
|
|
64
|
+
- !ruby/object:Gem::Version
|
|
65
|
+
version: 3.0.0
|
|
66
|
+
type: :runtime
|
|
67
|
+
prerelease: false
|
|
68
|
+
version_requirements: *70276834678940
|
|
69
|
+
- !ruby/object:Gem::Dependency
|
|
70
|
+
name: sqlite3
|
|
71
|
+
requirement: &70276834678380 !ruby/object:Gem::Requirement
|
|
72
|
+
none: false
|
|
73
|
+
requirements:
|
|
74
|
+
- - ! '>='
|
|
75
|
+
- !ruby/object:Gem::Version
|
|
76
|
+
version: '0'
|
|
77
|
+
type: :development
|
|
78
|
+
prerelease: false
|
|
79
|
+
version_requirements: *70276834678380
|
|
80
|
+
- !ruby/object:Gem::Dependency
|
|
81
|
+
name: devise
|
|
82
|
+
requirement: &70276834677460 !ruby/object:Gem::Requirement
|
|
83
|
+
none: false
|
|
84
|
+
requirements:
|
|
85
|
+
- - ! '>='
|
|
86
|
+
- !ruby/object:Gem::Version
|
|
87
|
+
version: '0'
|
|
88
|
+
type: :development
|
|
89
|
+
prerelease: false
|
|
90
|
+
version_requirements: *70276834677460
|
|
91
|
+
description: Similar to ActiveRecord::Timestamp, this gem provides a blame datetime
|
|
92
|
+
and user for create/update modifications to records. Configured models will be
|
|
93
|
+
blamed when creating or updating, and the blame can cascade to associated models
|
|
94
|
+
on create, update or delete. Currently, this gem is intended for use with Devise.
|
|
95
|
+
email:
|
|
96
|
+
- ryancavis@gmail.com
|
|
97
|
+
executables: []
|
|
98
|
+
extensions: []
|
|
99
|
+
extra_rdoc_files: []
|
|
100
|
+
files:
|
|
101
|
+
- lib/blamestamp/action_controller.rb
|
|
102
|
+
- lib/blamestamp/active_record.rb
|
|
103
|
+
- lib/blamestamp/schema.rb
|
|
104
|
+
- lib/blamestamp/version.rb
|
|
105
|
+
- lib/blamestamp.rb
|
|
106
|
+
- lib/tasks/blamestamp_tasks.rake
|
|
107
|
+
- MIT-LICENSE
|
|
108
|
+
- Rakefile
|
|
109
|
+
- README.md
|
|
110
|
+
- test/alligators_controller_test.rb
|
|
111
|
+
- test/blameable_test.rb
|
|
112
|
+
- test/blamestamp_test.rb
|
|
113
|
+
- test/devise_works_test.rb
|
|
114
|
+
- test/dummy/app/assets/javascripts/application.js
|
|
115
|
+
- test/dummy/app/assets/javascripts/home.js
|
|
116
|
+
- test/dummy/app/assets/stylesheets/application.css
|
|
117
|
+
- test/dummy/app/assets/stylesheets/home.css
|
|
118
|
+
- test/dummy/app/controllers/alligators_controller.rb
|
|
119
|
+
- test/dummy/app/controllers/application_controller.rb
|
|
120
|
+
- test/dummy/app/controllers/flags_controller.rb
|
|
121
|
+
- test/dummy/app/controllers/home_controller.rb
|
|
122
|
+
- test/dummy/app/controllers/projects_controller.rb
|
|
123
|
+
- test/dummy/app/helpers/alligators_helper.rb
|
|
124
|
+
- test/dummy/app/helpers/application_helper.rb
|
|
125
|
+
- test/dummy/app/helpers/flags_helper.rb
|
|
126
|
+
- test/dummy/app/helpers/home_helper.rb
|
|
127
|
+
- test/dummy/app/helpers/projects_helper.rb
|
|
128
|
+
- test/dummy/app/models/alligator.rb
|
|
129
|
+
- test/dummy/app/models/flag.rb
|
|
130
|
+
- test/dummy/app/models/project.rb
|
|
131
|
+
- test/dummy/app/models/user.rb
|
|
132
|
+
- test/dummy/app/views/alligators/_form.html.erb
|
|
133
|
+
- test/dummy/app/views/alligators/edit.html.erb
|
|
134
|
+
- test/dummy/app/views/alligators/index.html.erb
|
|
135
|
+
- test/dummy/app/views/alligators/new.html.erb
|
|
136
|
+
- test/dummy/app/views/alligators/show.html.erb
|
|
137
|
+
- test/dummy/app/views/devise/_links.erb
|
|
138
|
+
- test/dummy/app/views/devise/confirmations/new.html.erb
|
|
139
|
+
- test/dummy/app/views/devise/mailer/confirmation_instructions.html.erb
|
|
140
|
+
- test/dummy/app/views/devise/mailer/reset_password_instructions.html.erb
|
|
141
|
+
- test/dummy/app/views/devise/mailer/unlock_instructions.html.erb
|
|
142
|
+
- test/dummy/app/views/devise/passwords/edit.html.erb
|
|
143
|
+
- test/dummy/app/views/devise/passwords/new.html.erb
|
|
144
|
+
- test/dummy/app/views/devise/registrations/edit.html.erb
|
|
145
|
+
- test/dummy/app/views/devise/registrations/new.html.erb
|
|
146
|
+
- test/dummy/app/views/devise/sessions/new.html.erb
|
|
147
|
+
- test/dummy/app/views/devise/unlocks/new.html.erb
|
|
148
|
+
- test/dummy/app/views/flags/_form.html.erb
|
|
149
|
+
- test/dummy/app/views/flags/edit.html.erb
|
|
150
|
+
- test/dummy/app/views/flags/index.html.erb
|
|
151
|
+
- test/dummy/app/views/flags/new.html.erb
|
|
152
|
+
- test/dummy/app/views/flags/show.html.erb
|
|
153
|
+
- test/dummy/app/views/home/index.html.erb
|
|
154
|
+
- test/dummy/app/views/layouts/application.html.erb
|
|
155
|
+
- test/dummy/app/views/projects/_form.html.erb
|
|
156
|
+
- test/dummy/app/views/projects/edit.html.erb
|
|
157
|
+
- test/dummy/app/views/projects/index.html.erb
|
|
158
|
+
- test/dummy/app/views/projects/new.html.erb
|
|
159
|
+
- test/dummy/app/views/projects/show.html.erb
|
|
160
|
+
- test/dummy/config/application.rb
|
|
161
|
+
- test/dummy/config/boot.rb
|
|
162
|
+
- test/dummy/config/database.yml
|
|
163
|
+
- test/dummy/config/environment.rb
|
|
164
|
+
- test/dummy/config/environments/development.rb
|
|
165
|
+
- test/dummy/config/environments/production.rb
|
|
166
|
+
- test/dummy/config/environments/test.rb
|
|
167
|
+
- test/dummy/config/initializers/backtrace_silencers.rb
|
|
168
|
+
- test/dummy/config/initializers/devise.rb
|
|
169
|
+
- test/dummy/config/initializers/inflections.rb
|
|
170
|
+
- test/dummy/config/initializers/mime_types.rb
|
|
171
|
+
- test/dummy/config/initializers/secret_token.rb
|
|
172
|
+
- test/dummy/config/initializers/session_store.rb
|
|
173
|
+
- test/dummy/config/initializers/wrap_parameters.rb
|
|
174
|
+
- test/dummy/config/locales/devise.en.yml
|
|
175
|
+
- test/dummy/config/locales/en.yml
|
|
176
|
+
- test/dummy/config/routes.rb
|
|
177
|
+
- test/dummy/config.ru
|
|
178
|
+
- test/dummy/db/development.sqlite3
|
|
179
|
+
- test/dummy/db/migrate/20120420004117_devise_create_users.rb
|
|
180
|
+
- test/dummy/db/migrate/20120420005606_create_projects.rb
|
|
181
|
+
- test/dummy/db/migrate/20120504022124_create_alligators.rb
|
|
182
|
+
- test/dummy/db/migrate/20120504025050_create_flags.rb
|
|
183
|
+
- test/dummy/db/schema.rb
|
|
184
|
+
- test/dummy/db/test.sqlite3
|
|
185
|
+
- test/dummy/log/development.log
|
|
186
|
+
- test/dummy/log/test.log
|
|
187
|
+
- test/dummy/public/404.html
|
|
188
|
+
- test/dummy/public/422.html
|
|
189
|
+
- test/dummy/public/500.html
|
|
190
|
+
- test/dummy/public/favicon.ico
|
|
191
|
+
- test/dummy/Rakefile
|
|
192
|
+
- test/dummy/README.rdoc
|
|
193
|
+
- test/dummy/script/rails
|
|
194
|
+
- test/fixtures/alligators.yml
|
|
195
|
+
- test/fixtures/flags.yml
|
|
196
|
+
- test/fixtures/projects.yml
|
|
197
|
+
- test/fixtures/users.yml
|
|
198
|
+
- test/flags_controller_test.rb
|
|
199
|
+
- test/migration_test.rb
|
|
200
|
+
- test/projects_controller_test.rb
|
|
201
|
+
- test/test_helper.rb
|
|
202
|
+
homepage: https://github.com/rtanc/blamestamp
|
|
203
|
+
licenses: []
|
|
204
|
+
post_install_message:
|
|
205
|
+
rdoc_options: []
|
|
206
|
+
require_paths:
|
|
207
|
+
- lib
|
|
208
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
209
|
+
none: false
|
|
210
|
+
requirements:
|
|
211
|
+
- - ! '>='
|
|
212
|
+
- !ruby/object:Gem::Version
|
|
213
|
+
version: '0'
|
|
214
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
215
|
+
none: false
|
|
216
|
+
requirements:
|
|
217
|
+
- - ! '>='
|
|
218
|
+
- !ruby/object:Gem::Version
|
|
219
|
+
version: '0'
|
|
220
|
+
requirements: []
|
|
221
|
+
rubyforge_project:
|
|
222
|
+
rubygems_version: 1.8.15
|
|
223
|
+
signing_key:
|
|
224
|
+
specification_version: 3
|
|
225
|
+
summary: Basic, predictable user/datetime blaming for ActiveRecords
|
|
226
|
+
test_files:
|
|
227
|
+
- test/alligators_controller_test.rb
|
|
228
|
+
- test/blameable_test.rb
|
|
229
|
+
- test/blamestamp_test.rb
|
|
230
|
+
- test/devise_works_test.rb
|
|
231
|
+
- test/dummy/app/assets/javascripts/application.js
|
|
232
|
+
- test/dummy/app/assets/javascripts/home.js
|
|
233
|
+
- test/dummy/app/assets/stylesheets/application.css
|
|
234
|
+
- test/dummy/app/assets/stylesheets/home.css
|
|
235
|
+
- test/dummy/app/controllers/alligators_controller.rb
|
|
236
|
+
- test/dummy/app/controllers/application_controller.rb
|
|
237
|
+
- test/dummy/app/controllers/flags_controller.rb
|
|
238
|
+
- test/dummy/app/controllers/home_controller.rb
|
|
239
|
+
- test/dummy/app/controllers/projects_controller.rb
|
|
240
|
+
- test/dummy/app/helpers/alligators_helper.rb
|
|
241
|
+
- test/dummy/app/helpers/application_helper.rb
|
|
242
|
+
- test/dummy/app/helpers/flags_helper.rb
|
|
243
|
+
- test/dummy/app/helpers/home_helper.rb
|
|
244
|
+
- test/dummy/app/helpers/projects_helper.rb
|
|
245
|
+
- test/dummy/app/models/alligator.rb
|
|
246
|
+
- test/dummy/app/models/flag.rb
|
|
247
|
+
- test/dummy/app/models/project.rb
|
|
248
|
+
- test/dummy/app/models/user.rb
|
|
249
|
+
- test/dummy/app/views/alligators/_form.html.erb
|
|
250
|
+
- test/dummy/app/views/alligators/edit.html.erb
|
|
251
|
+
- test/dummy/app/views/alligators/index.html.erb
|
|
252
|
+
- test/dummy/app/views/alligators/new.html.erb
|
|
253
|
+
- test/dummy/app/views/alligators/show.html.erb
|
|
254
|
+
- test/dummy/app/views/devise/_links.erb
|
|
255
|
+
- test/dummy/app/views/devise/confirmations/new.html.erb
|
|
256
|
+
- test/dummy/app/views/devise/mailer/confirmation_instructions.html.erb
|
|
257
|
+
- test/dummy/app/views/devise/mailer/reset_password_instructions.html.erb
|
|
258
|
+
- test/dummy/app/views/devise/mailer/unlock_instructions.html.erb
|
|
259
|
+
- test/dummy/app/views/devise/passwords/edit.html.erb
|
|
260
|
+
- test/dummy/app/views/devise/passwords/new.html.erb
|
|
261
|
+
- test/dummy/app/views/devise/registrations/edit.html.erb
|
|
262
|
+
- test/dummy/app/views/devise/registrations/new.html.erb
|
|
263
|
+
- test/dummy/app/views/devise/sessions/new.html.erb
|
|
264
|
+
- test/dummy/app/views/devise/unlocks/new.html.erb
|
|
265
|
+
- test/dummy/app/views/flags/_form.html.erb
|
|
266
|
+
- test/dummy/app/views/flags/edit.html.erb
|
|
267
|
+
- test/dummy/app/views/flags/index.html.erb
|
|
268
|
+
- test/dummy/app/views/flags/new.html.erb
|
|
269
|
+
- test/dummy/app/views/flags/show.html.erb
|
|
270
|
+
- test/dummy/app/views/home/index.html.erb
|
|
271
|
+
- test/dummy/app/views/layouts/application.html.erb
|
|
272
|
+
- test/dummy/app/views/projects/_form.html.erb
|
|
273
|
+
- test/dummy/app/views/projects/edit.html.erb
|
|
274
|
+
- test/dummy/app/views/projects/index.html.erb
|
|
275
|
+
- test/dummy/app/views/projects/new.html.erb
|
|
276
|
+
- test/dummy/app/views/projects/show.html.erb
|
|
277
|
+
- test/dummy/config/application.rb
|
|
278
|
+
- test/dummy/config/boot.rb
|
|
279
|
+
- test/dummy/config/database.yml
|
|
280
|
+
- test/dummy/config/environment.rb
|
|
281
|
+
- test/dummy/config/environments/development.rb
|
|
282
|
+
- test/dummy/config/environments/production.rb
|
|
283
|
+
- test/dummy/config/environments/test.rb
|
|
284
|
+
- test/dummy/config/initializers/backtrace_silencers.rb
|
|
285
|
+
- test/dummy/config/initializers/devise.rb
|
|
286
|
+
- test/dummy/config/initializers/inflections.rb
|
|
287
|
+
- test/dummy/config/initializers/mime_types.rb
|
|
288
|
+
- test/dummy/config/initializers/secret_token.rb
|
|
289
|
+
- test/dummy/config/initializers/session_store.rb
|
|
290
|
+
- test/dummy/config/initializers/wrap_parameters.rb
|
|
291
|
+
- test/dummy/config/locales/devise.en.yml
|
|
292
|
+
- test/dummy/config/locales/en.yml
|
|
293
|
+
- test/dummy/config/routes.rb
|
|
294
|
+
- test/dummy/config.ru
|
|
295
|
+
- test/dummy/db/development.sqlite3
|
|
296
|
+
- test/dummy/db/migrate/20120420004117_devise_create_users.rb
|
|
297
|
+
- test/dummy/db/migrate/20120420005606_create_projects.rb
|
|
298
|
+
- test/dummy/db/migrate/20120504022124_create_alligators.rb
|
|
299
|
+
- test/dummy/db/migrate/20120504025050_create_flags.rb
|
|
300
|
+
- test/dummy/db/schema.rb
|
|
301
|
+
- test/dummy/db/test.sqlite3
|
|
302
|
+
- test/dummy/log/development.log
|
|
303
|
+
- test/dummy/log/test.log
|
|
304
|
+
- test/dummy/public/404.html
|
|
305
|
+
- test/dummy/public/422.html
|
|
306
|
+
- test/dummy/public/500.html
|
|
307
|
+
- test/dummy/public/favicon.ico
|
|
308
|
+
- test/dummy/Rakefile
|
|
309
|
+
- test/dummy/README.rdoc
|
|
310
|
+
- test/dummy/script/rails
|
|
311
|
+
- test/fixtures/alligators.yml
|
|
312
|
+
- test/fixtures/flags.yml
|
|
313
|
+
- test/fixtures/projects.yml
|
|
314
|
+
- test/fixtures/users.yml
|
|
315
|
+
- test/flags_controller_test.rb
|
|
316
|
+
- test/migration_test.rb
|
|
317
|
+
- test/projects_controller_test.rb
|
|
318
|
+
- test/test_helper.rb
|