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.
Files changed (102) hide show
  1. data/MIT-LICENSE +20 -0
  2. data/README.md +137 -0
  3. data/Rakefile +38 -0
  4. data/lib/blamestamp/action_controller.rb +24 -0
  5. data/lib/blamestamp/active_record.rb +84 -0
  6. data/lib/blamestamp/schema.rb +37 -0
  7. data/lib/blamestamp/version.rb +3 -0
  8. data/lib/blamestamp.rb +26 -0
  9. data/lib/tasks/blamestamp_tasks.rake +4 -0
  10. data/test/alligators_controller_test.rb +60 -0
  11. data/test/blameable_test.rb +114 -0
  12. data/test/blamestamp_test.rb +7 -0
  13. data/test/devise_works_test.rb +20 -0
  14. data/test/dummy/README.rdoc +261 -0
  15. data/test/dummy/Rakefile +7 -0
  16. data/test/dummy/app/assets/javascripts/application.js +13 -0
  17. data/test/dummy/app/assets/javascripts/home.js +2 -0
  18. data/test/dummy/app/assets/stylesheets/application.css +13 -0
  19. data/test/dummy/app/assets/stylesheets/home.css +4 -0
  20. data/test/dummy/app/controllers/alligators_controller.rb +83 -0
  21. data/test/dummy/app/controllers/application_controller.rb +3 -0
  22. data/test/dummy/app/controllers/flags_controller.rb +83 -0
  23. data/test/dummy/app/controllers/home_controller.rb +4 -0
  24. data/test/dummy/app/controllers/projects_controller.rb +83 -0
  25. data/test/dummy/app/helpers/alligators_helper.rb +2 -0
  26. data/test/dummy/app/helpers/application_helper.rb +2 -0
  27. data/test/dummy/app/helpers/flags_helper.rb +2 -0
  28. data/test/dummy/app/helpers/home_helper.rb +2 -0
  29. data/test/dummy/app/helpers/projects_helper.rb +2 -0
  30. data/test/dummy/app/models/alligator.rb +6 -0
  31. data/test/dummy/app/models/flag.rb +12 -0
  32. data/test/dummy/app/models/project.rb +6 -0
  33. data/test/dummy/app/models/user.rb +10 -0
  34. data/test/dummy/app/views/alligators/_form.html.erb +17 -0
  35. data/test/dummy/app/views/alligators/edit.html.erb +6 -0
  36. data/test/dummy/app/views/alligators/index.html.erb +21 -0
  37. data/test/dummy/app/views/alligators/new.html.erb +5 -0
  38. data/test/dummy/app/views/alligators/show.html.erb +5 -0
  39. data/test/dummy/app/views/devise/_links.erb +25 -0
  40. data/test/dummy/app/views/devise/confirmations/new.html.erb +12 -0
  41. data/test/dummy/app/views/devise/mailer/confirmation_instructions.html.erb +5 -0
  42. data/test/dummy/app/views/devise/mailer/reset_password_instructions.html.erb +8 -0
  43. data/test/dummy/app/views/devise/mailer/unlock_instructions.html.erb +7 -0
  44. data/test/dummy/app/views/devise/passwords/edit.html.erb +16 -0
  45. data/test/dummy/app/views/devise/passwords/new.html.erb +12 -0
  46. data/test/dummy/app/views/devise/registrations/edit.html.erb +25 -0
  47. data/test/dummy/app/views/devise/registrations/new.html.erb +18 -0
  48. data/test/dummy/app/views/devise/sessions/new.html.erb +17 -0
  49. data/test/dummy/app/views/devise/unlocks/new.html.erb +12 -0
  50. data/test/dummy/app/views/flags/_form.html.erb +17 -0
  51. data/test/dummy/app/views/flags/edit.html.erb +6 -0
  52. data/test/dummy/app/views/flags/index.html.erb +21 -0
  53. data/test/dummy/app/views/flags/new.html.erb +5 -0
  54. data/test/dummy/app/views/flags/show.html.erb +5 -0
  55. data/test/dummy/app/views/home/index.html.erb +8 -0
  56. data/test/dummy/app/views/layouts/application.html.erb +17 -0
  57. data/test/dummy/app/views/projects/_form.html.erb +17 -0
  58. data/test/dummy/app/views/projects/edit.html.erb +6 -0
  59. data/test/dummy/app/views/projects/index.html.erb +21 -0
  60. data/test/dummy/app/views/projects/new.html.erb +5 -0
  61. data/test/dummy/app/views/projects/show.html.erb +5 -0
  62. data/test/dummy/config/application.rb +57 -0
  63. data/test/dummy/config/boot.rb +10 -0
  64. data/test/dummy/config/database.yml +25 -0
  65. data/test/dummy/config/environment.rb +5 -0
  66. data/test/dummy/config/environments/development.rb +37 -0
  67. data/test/dummy/config/environments/production.rb +67 -0
  68. data/test/dummy/config/environments/test.rb +38 -0
  69. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  70. data/test/dummy/config/initializers/devise.rb +223 -0
  71. data/test/dummy/config/initializers/inflections.rb +15 -0
  72. data/test/dummy/config/initializers/mime_types.rb +5 -0
  73. data/test/dummy/config/initializers/secret_token.rb +7 -0
  74. data/test/dummy/config/initializers/session_store.rb +8 -0
  75. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  76. data/test/dummy/config/locales/devise.en.yml +57 -0
  77. data/test/dummy/config/locales/en.yml +5 -0
  78. data/test/dummy/config/routes.rb +14 -0
  79. data/test/dummy/config.ru +4 -0
  80. data/test/dummy/db/development.sqlite3 +0 -0
  81. data/test/dummy/db/migrate/20120420004117_devise_create_users.rb +49 -0
  82. data/test/dummy/db/migrate/20120420005606_create_projects.rb +10 -0
  83. data/test/dummy/db/migrate/20120504022124_create_alligators.rb +11 -0
  84. data/test/dummy/db/migrate/20120504025050_create_flags.rb +15 -0
  85. data/test/dummy/db/schema.rb +62 -0
  86. data/test/dummy/db/test.sqlite3 +0 -0
  87. data/test/dummy/log/development.log +780 -0
  88. data/test/dummy/log/test.log +32640 -0
  89. data/test/dummy/public/404.html +26 -0
  90. data/test/dummy/public/422.html +26 -0
  91. data/test/dummy/public/500.html +25 -0
  92. data/test/dummy/public/favicon.ico +0 -0
  93. data/test/dummy/script/rails +6 -0
  94. data/test/fixtures/alligators.yml +9 -0
  95. data/test/fixtures/flags.yml +12 -0
  96. data/test/fixtures/projects.yml +9 -0
  97. data/test/fixtures/users.yml +6 -0
  98. data/test/flags_controller_test.rb +72 -0
  99. data/test/migration_test.rb +24 -0
  100. data/test/projects_controller_test.rb +65 -0
  101. data/test/test_helper.rb +23 -0
  102. 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,9 @@
1
+ james:
2
+ name: James
3
+ project: secret
4
+ spot:
5
+ name: Spot
6
+ project: secret
7
+ cam:
8
+ name: Cameron
9
+ project: scam
@@ -0,0 +1,12 @@
1
+ american:
2
+ origin: red white and blue
3
+ project: secret
4
+ alligator: james
5
+ french:
6
+ origin: blue white and red
7
+ project: honest
8
+ alligator: spot
9
+ semaphore:
10
+ origin: awesome
11
+ project: scam
12
+ alligator: cam
@@ -0,0 +1,9 @@
1
+ secret:
2
+ title: Top secret project
3
+ desc: Will self-destruct in 5 years
4
+ scam:
5
+ title: Get rich fast
6
+ desc: At least one of us will
7
+ honest:
8
+ title: Will work hard
9
+ desc: But not that hard
@@ -0,0 +1,6 @@
1
+ harold:
2
+ email: haroldblah@test1234.com
3
+ cameron:
4
+ email: cameronqdog@test1234.com
5
+ isak:
6
+ email: isakofsellanraa@test1234.com
@@ -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
@@ -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