ar-audit-tracer 1.0.2 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: b0cc3002d73e4ecaeae431164cbac4078b67a10f
4
+ data.tar.gz: 8bce9b4669e9d8c2cbe44ed3b54b4aff002ee924
5
+ SHA512:
6
+ metadata.gz: 0419dacc98f06fb067be5d487f03540f14b2dfaf6620eb83d76a559d479064add1c8ca24d2bb46e45ec1ae33c6a8766f6acbee5c715a14ebbc3511e1487824d8
7
+ data.tar.gz: 0fb20cc963c08ed92ee12d41f24d9326bd4f6deaf3b3d855c71f6d83208264cb05901ddab6f58086c5de846aea8ac0a6ed0ea5df89bfd1339be7ef7cc250f1f2
data/.rvmrc CHANGED
@@ -1 +1 @@
1
- rvm use 1.9.3-p125
1
+ rvm use 2.0.0-p247
data/.travis.yml CHANGED
@@ -1,9 +1,6 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 1.8.7
4
- - 1.9.2
5
3
  - 1.9.3
4
+ - 2.0.0
6
5
  gemfile:
7
- - gemfiles/rails3_0.gemfile
8
- - gemfiles/rails3_1.gemfile
9
- - gemfiles/rails3_2.gemfile
6
+ - gemfiles/rails4_0.gemfile
data/Gemfile.lock CHANGED
@@ -1,36 +1,44 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ar-audit-tracer (1.0.2)
5
- activerecord (~> 3.0)
4
+ ar-audit-tracer (2.0.0)
5
+ activerecord (~> 4.0)
6
6
 
7
7
  GEM
8
8
  remote: http://rubygems.org/
9
9
  specs:
10
- activemodel (3.2.1)
11
- activesupport (= 3.2.1)
12
- builder (~> 3.0.0)
13
- activerecord (3.2.1)
14
- activemodel (= 3.2.1)
15
- activesupport (= 3.2.1)
16
- arel (~> 3.0.0)
17
- tzinfo (~> 0.3.29)
18
- activesupport (3.2.1)
19
- i18n (~> 0.6)
20
- multi_json (~> 1.0)
21
- arel (3.0.0)
22
- builder (3.0.0)
23
- i18n (0.6.0)
24
- multi_json (1.0.4)
10
+ activemodel (4.0.0)
11
+ activesupport (= 4.0.0)
12
+ builder (~> 3.1.0)
13
+ activerecord (4.0.0)
14
+ activemodel (= 4.0.0)
15
+ activerecord-deprecated_finders (~> 1.0.2)
16
+ activesupport (= 4.0.0)
17
+ arel (~> 4.0.0)
18
+ activerecord-deprecated_finders (1.0.3)
19
+ activesupport (4.0.0)
20
+ i18n (~> 0.6, >= 0.6.4)
21
+ minitest (~> 4.2)
22
+ multi_json (~> 1.3)
23
+ thread_safe (~> 0.1)
24
+ tzinfo (~> 0.3.37)
25
+ arel (4.0.0)
26
+ atomic (1.1.10)
27
+ builder (3.1.4)
28
+ i18n (0.6.4)
29
+ minitest (4.7.5)
30
+ multi_json (1.7.7)
25
31
  rake (0.9.2.2)
26
- sqlite3 (1.3.5)
27
- tzinfo (0.3.31)
32
+ sqlite3 (1.3.6)
33
+ thread_safe (0.1.0)
34
+ atomic
35
+ tzinfo (0.3.37)
28
36
 
29
37
  PLATFORMS
30
38
  ruby
31
39
 
32
40
  DEPENDENCIES
33
- activerecord (~> 3.0)
41
+ activerecord (~> 4.0)
34
42
  ar-audit-tracer!
35
43
  rake
36
44
  sqlite3
data/README.rdoc CHANGED
@@ -7,7 +7,12 @@
7
7
  <i>ar-audit-tracer</i> patches ActiveRecord so modifiers of a record can be traked on saving (insert/update).
8
8
  It works exactly like 'timestamps' (see usage below).
9
9
 
10
- The new version 1.0.2 works now for Rails 3.0, 3.1 and 3.2 and is tested with Ruby 1.8.7, 1.9.2 and 1.9.3.
10
+ The new version 2.0.0 works now for Rails 4.0 with Ruby 1.9.3 and 2.0.0. Use the version 1.0.2 for Rails ~3.0 with Ruby 1.8.7 or higher.
11
+
12
+ **Note**<br/>
13
+ The migration helpers changed. The column statement is now named +t.authorstamps+ instead of +t.authors+.
14
+ Similar the changing a table is named +add_authorstamp+. The columns generated are still named the same - so they are calles
15
+ +created_by+ and +updated_by+.
11
16
 
12
17
 
13
18
  == Installation
@@ -21,26 +26,27 @@ Add below to your Gemfile and run the +bundle+ command
21
26
  === Migration
22
27
 
23
28
  In a models migration add:
24
- t.authors
29
+ t.authorstamps
25
30
 
26
31
  This will add columns +created_by+ and +updated_by+ of type +:string+ to your model.
27
32
 
28
33
  In case you want to use another type, simply pass the type as argument, e.g.
29
- t.authors(:integer)
34
+ t.authorstamps(:integer)
30
35
 
31
- By default the columns are mandatory (:null => true). If you have existing models you want to change
36
+ By default the columns are mandatory (<tt>:null => false</tt>). If you have existing models you want to change
32
37
  you have to pass the option <tt>:null => true</tt>, update the values in the new attributes columns and add another
33
38
  migration to change the column to <tt>:null => false</tt> if required.
34
- Note: If you pass options you have to pass the type as well - sample migration statments:
35
- add_authors(:your_table_name, :string, :null => true)
39
+ *Note:* If you pass options you have to pass the type as well - sample migration statments:
40
+ add_authorstamps(:your_table_name, :string, :null => true)
36
41
  or
37
42
  change_table :your_table_name do |t|
38
- t.authors(:integer, :null => true)
43
+ t.authorstamps(:integer, :null => true)
39
44
  end
40
45
 
41
46
  ==== Note
42
- The _authors_ methods are simple conveniance methods (as regular timestamp methods are). You can simply
43
- add columns named +created_by+ and +updated_by+ using regular migration statements.
47
+ The _authorstamps_ methods are simple conveniance methods (as regular timestamp methods are). You can simply
48
+ add columns named +created_by+ and +updated_by+ using regular migration statements.<br/>
49
+ **Note** You can name the attributes +created_by_id+ and +updated_by_id+. If these columns are detected they are filled as well.
44
50
 
45
51
  === Configuration
46
52
 
@@ -58,5 +64,9 @@ In case you need associations to a respective Author Model you have to set them
58
64
 
59
65
  == Changelog
60
66
 
67
+ === Version 2.0.0
68
+ * Works for Rails4 with Ruby1.9.3 and Ruby 2.0.0
69
+ * Works now not only for +created_by+ and +updated_by+, but as well for attributes +created_by_id+ and +updated_by_id+
70
+
61
71
  === Version 1.0.2
62
72
  * Fixed migrations so option can be passed
@@ -13,9 +13,9 @@ Gem::Specification.new do |s|
13
13
  s.summary = %q{Track creator/modifiers of you AR Models similar to timestamps.}
14
14
  s.description = %q{Handles ActiveRecord authors in the same way as timstamps.}
15
15
 
16
- s.add_dependency "activerecord", "~> 3.0"
16
+ s.add_dependency "activerecord", "~> 4.0"
17
17
 
18
- s.add_development_dependency "activerecord", "~> 3.0"
18
+ s.add_development_dependency "activerecord", "~> 4.0"
19
19
  s.add_development_dependency "sqlite3"
20
20
 
21
21
  s.rdoc_options << '--charset' << 'UTF-8' << '--line-numbers'
@@ -0,0 +1,9 @@
1
+ source 'http://rubygems.org'
2
+
3
+ gem 'activerecord', '~> 4.0.0'
4
+
5
+ group :test do
6
+ gem 'rake'
7
+ gem 'rdoc'
8
+ gem 'sqlite3'
9
+ end
@@ -0,0 +1,93 @@
1
+
2
+ module ActiveRecord
3
+ # = Active Record Authorstamp
4
+ #
5
+ # Active Record automatically stamps the user that performns create and update operations if the
6
+ # table has fields named <tt>created_by/created_by_id</tt> or
7
+ # <tt>updated_by/updated_by</tt>.
8
+ # The user identifier is taken from ActiveRecord::Audit::Author.current. The respective value must be set
9
+ # by the user of this feater by calling ActiveRecord::Audit::Author.current = 'some_value'
10
+ #
11
+ # Userstamping can be turned off by setting:
12
+ #
13
+ # config.active_record.record_userstamps = false
14
+ #
15
+ module AuthorStamp
16
+ extend ActiveSupport::Concern
17
+
18
+ included do
19
+ class_attribute :record_authorstamps
20
+ self.record_authorstamps = true
21
+ end
22
+
23
+ def initialize_dup(other) # :nodoc:
24
+ clear_authorstamp_attributes
25
+ super
26
+ end
27
+
28
+ private
29
+
30
+ def create_record
31
+ if self.record_authorstamps
32
+ all_authorstamp_attributes.each do |column|
33
+ if respond_to?(column) && respond_to?("#{column}=") && self.send(column).nil?
34
+ write_attribute(column.to_s, current_author)
35
+ end
36
+ end
37
+ end
38
+
39
+ super
40
+ end
41
+
42
+ def update_record(*args)
43
+ if should_record_authorstamps?
44
+ authorstamp_attributes_for_update_in_model.each do |column|
45
+ column = column.to_s
46
+ next if attribute_changed?(column)
47
+ write_attribute(column, current_author)
48
+ end
49
+ end
50
+ super
51
+ end
52
+
53
+ def should_record_authorstamps?
54
+ self.record_authorstamps && (!partial_writes? || changed? || (attributes.keys & self.class.serialized_attributes.keys).present?)
55
+ end
56
+
57
+ def authorstamp_attributes_for_create_in_model
58
+ authorstamp_attributes_for_create.select { |c| self.class.column_names.include?(c.to_s) }
59
+ end
60
+
61
+ def authorstamp_attributes_for_update_in_model
62
+ authorstamp_attributes_for_update.select { |c| self.class.column_names.include?(c.to_s) }
63
+ end
64
+
65
+ def all_authorstamp_attributes_in_model
66
+ authorstamp_attributes_for_create_in_model + authorstamp_attributes_for_update_in_model
67
+ end
68
+
69
+ def authorstamp_attributes_for_update
70
+ [:updated_by, :updated_by_id]
71
+ end
72
+
73
+ def authorstamp_attributes_for_create
74
+ [:created_by, :created_by_id]
75
+ end
76
+
77
+ def all_authorstamp_attributes
78
+ authorstamp_attributes_for_create + authorstamp_attributes_for_update
79
+ end
80
+
81
+ def current_author
82
+ Concern::Audit::Author.current
83
+ end
84
+
85
+ # Clear attributes and changed_attributes
86
+ def clear_authorstamp_attributes
87
+ all_authorstamp_attributes_in_model.each do |attribute_name|
88
+ self[attribute_name] = nil
89
+ changed_attributes.delete(attribute_name)
90
+ end
91
+ end
92
+ end
93
+ end
@@ -0,0 +1,15 @@
1
+ module ActiveRecord
2
+ module ConnectionAdapters
3
+ class AbstractMysqlAdapter < AbstractAdapter
4
+
5
+ def add_authorstamps_sql(table_name)
6
+ [add_column_sql(table_name, :created_by, :string), add_column_sql(table_name, :updated_by, :string)]
7
+ end
8
+
9
+ def remove_authorstamps_sql(table_name)
10
+ [remove_column_sql(table_name, :updated_by), remove_column_sql(table_name, :created_by)]
11
+ end
12
+
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,40 @@
1
+ module ActiveRecord
2
+ class Migration
3
+ # <tt>ActiveRecord::Migration::CommandRecorder</tt> records commands done during
4
+ # a migration and knows how to reverse those commands. The CommandRecorder
5
+ # knows how to invert the following commands:
6
+ #
7
+ # Adds...
8
+ # * add_authorstamps
9
+ # * remove_authorstamps
10
+ class CommandRecorder
11
+
12
+ [ # irreversible methods need to be here too
13
+ :add_authorstamps,
14
+ :remove_authorstamps,
15
+ ].each do |method|
16
+ class_eval <<-EOV, __FILE__, __LINE__ + 1
17
+ def #{method}(*args, &block) # def create_table(*args, &block)
18
+ record(:"#{method}", args, &block) # record(:create_table, args, &block)
19
+ end # end
20
+ EOV
21
+ end
22
+
23
+ module StraightReversions
24
+ private
25
+ { add_authorstamps: :remove_authorstamps }.each do |cmd, inv|
26
+ [[inv, cmd], [cmd, inv]].uniq.each do |method, inverse|
27
+ class_eval <<-EOV, __FILE__, __LINE__ + 1
28
+ def invert_#{method}(args, &block) # def invert_create_table(args, &block)
29
+ [:#{inverse}, args, block] # [:drop_table, args, block]
30
+ end # end
31
+ EOV
32
+ end
33
+ end
34
+ end
35
+
36
+ include StraightReversions
37
+
38
+ end
39
+ end
40
+ end
@@ -1,104 +1,17 @@
1
1
  # encoding: utf-8
2
+ require 'active_record/migration/command_recorder'
3
+ require 'active_record/author_stamp'
2
4
  require 'concern/audit/author'
3
5
 
4
6
  module ActiveRecord
5
7
 
6
- # = Active Record Author
7
- #
8
- # Active Record automatically authors create and update operations if the
9
- # table has fields named <tt>created_by</tt> or
10
- # <tt>updated_by</tt>.
11
- #
12
- # Authoring can be turned off by setting:
13
- #
14
- # <tt>ActiveRecord::Base.record_authors = false</tt>
15
- module Author
16
- extend ActiveSupport::Concern
17
-
18
- included do
19
- class_attribute :record_authors
20
- self.record_authors = true
21
- end
22
-
23
- def initialize_dup(other)
24
- clear_author_attributes
25
- end
26
-
27
- private
28
-
29
- def create #:nodoc:
30
- if self.record_authors
31
- current_author = Concern::Audit::Author.current
32
-
33
- all_author_attributes.each do |column|
34
- if respond_to?(column) && self.send(column).nil?
35
- write_attribute(column.to_s, current_author)
36
- end
37
- end
38
- end
39
-
40
- super
41
- end
42
-
43
- def update(*args) #:nodoc:
44
- if should_record_authors?
45
- current_author = Concern::Audit::Author.current
46
-
47
- author_attributes_for_update_in_model.each do |column|
48
- column = column.to_s
49
- next if attribute_changed?(column)
50
- write_attribute(column, current_author)
51
- end
52
- end
53
- super
54
- end
55
-
56
- def should_record_authors?
57
- self.record_authors && (!partial_updates? || changed? || (attributes.keys & self.class.serialized_attributes.keys).present?)
58
- end
59
-
60
- def author_attributes_for_update_in_model
61
- author_attributes_for_update.select { |c| respond_to?(c) }
62
- end
63
-
64
- def author_attributes_for_create_in_model
65
- author_attributes_for_create.select { |c| respond_to?(c) }
66
- end
67
-
68
- def all_author_attributes
69
- author_attributes_for_create + author_attributes_for_update
70
- end
71
-
72
- def author_attributes_for_update #:nodoc:
73
- [:updated_by]
74
- end
75
-
76
- def author_attributes_for_create #:nodoc:
77
- [:created_by]
78
- end
79
-
80
- def all_author_attributes_in_model
81
- author_attributes_for_create_in_model + author_attributes_for_update_in_model
82
- end
83
-
84
- # Clear attributes and changed_attributes
85
- def clear_author_attributes
86
- all_author_attributes_in_model.each do |attribute_name|
87
- self[attribute_name] = nil
88
- changed_attributes.delete(attribute_name)
89
- end
90
- end
91
-
92
- end
93
-
94
-
95
8
 
96
9
  module ConnectionAdapters
97
10
  module SchemaStatements
98
11
  # Adds author columns (created_by and updated_by) to the named table.
99
12
  # ===== Examples
100
13
  # add_authors(:suppliers)
101
- def add_authors(table_name, type=:string, *args)
14
+ def add_authorstamps(table_name, type=:string, *args)
102
15
  options = {:null => false}.merge(args.extract_options!)
103
16
  add_column table_name, :created_by, type, options
104
17
  add_column table_name, :updated_by, type, options
@@ -107,7 +20,7 @@ module ActiveRecord
107
20
  # Removes the author columns (created_by and updated_by) from the table definition.
108
21
  # ===== Examples
109
22
  # remove_authors(:suppliers)
110
- def remove_authors(table_name)
23
+ def remove_authorstamps(table_name)
111
24
  remove_column table_name, :updated_by
112
25
  remove_column table_name, :created_by
113
26
  end
@@ -120,7 +33,7 @@ module ActiveRecord
120
33
  #
121
34
  # @param Symbol type The desired type for the columns, defaults to :string
122
35
  # @param Hash *args Column options from rails
123
- def authors(type=:string, *args)
36
+ def authorstamps(type=:string, *args)
124
37
  options = args.extract_options!
125
38
  column(:created_by, type, options)
126
39
  column(:updated_by, type, options)
@@ -135,16 +48,16 @@ module ActiveRecord
135
48
  #
136
49
  # @param Symbol type The desired type for the columns, defaults to :string
137
50
  # @see SchemaStatements#add_authors
138
- def authors(type=:string, *args)
51
+ def authorstamps(type=:string, *args)
139
52
  options = {:null => false}.merge(args.extract_options!)
140
- @base.add_authors(@table_name, type, options)
53
+ @base.add_authorstamps(@table_name, type, options)
141
54
  end
142
55
 
143
56
  # Removes the author columns (created_by and updated_by) from the table.
144
57
  # ===== Example
145
58
  # t.remove_authors
146
- def remove_authors
147
- @base.remove_authors(@table_name)
59
+ def remove_authorstamps
60
+ @base.remove_authorstamps(@table_name)
148
61
  end
149
62
 
150
63
  end
@@ -153,7 +66,7 @@ module ActiveRecord
153
66
 
154
67
 
155
68
  Base.class_eval do
156
- include Author
69
+ include ActiveRecord::AuthorStamp
157
70
  end
158
71
 
159
72
  end
@@ -1,3 +1,3 @@
1
1
  module ArAuditTracer
2
- VERSION = '1.0.2'
2
+ VERSION = '2.0.0'
3
3
  end
@@ -1,7 +1,7 @@
1
1
  class AddAuthors < ActiveRecord::Migration
2
2
 
3
- def up
4
- add_authors(:blank_twos, :string, :null => true)
3
+ def self.up
4
+ add_authorstamps(:blank_twos, :string, :null => true)
5
5
  end
6
6
 
7
7
  end
@@ -1,9 +1,9 @@
1
1
  class ChangeTableAuthors < ActiveRecord::Migration
2
2
 
3
- def up
3
+ def self.up
4
4
 
5
5
  change_table :blank_ones do |t|
6
- t.authors(:integer, :null => true)
6
+ t.authorstamps(:integer, :null => true)
7
7
  end
8
8
 
9
9
  end
@@ -5,14 +5,14 @@ ActiveRecord::Schema.define(:version => 0) do
5
5
 
6
6
  create_table :with_string_authors, :force => true do |t|
7
7
  t.string :name
8
- t.authors
8
+ t.authorstamps
9
9
  end
10
10
 
11
11
  create_table :with_integer_authors, :force => true do |t|
12
12
  t.string :name
13
- t.authors(:integer)
13
+ t.authorstamps(:integer)
14
14
  end
15
-
15
+
16
16
  create_table :blank_ones, :force => true do |t|
17
17
  t.string :name
18
18
  end
@@ -6,7 +6,7 @@ require 'resources/migrations/change_table_authors'
6
6
  class TestArAuditTracer < Test::Unit::TestCase
7
7
 
8
8
  def setup
9
- Concern::Audit::Author.current=nil
9
+ Concern::Audit::Author.current=nil
10
10
  end
11
11
 
12
12
  def test_author_attributes_available
@@ -33,7 +33,7 @@ class TestArAuditTracer < Test::Unit::TestCase
33
33
  # test :string coded authors
34
34
  Concern::Audit::Author.current="creator"
35
35
  audited_record = WithStringAuthor.create!
36
-
36
+
37
37
  assert_equal audited_record.created_by, "creator"
38
38
  assert_equal audited_record.updated_by, "creator"
39
39
 
@@ -94,10 +94,10 @@ class TestArAuditTracer < Test::Unit::TestCase
94
94
  end
95
95
 
96
96
  def test_migration_add_authors
97
- assert !BlankTwo.attribute_names.include?(:created_by)
98
- assert !BlankTwo.attribute_names.include?(:updated_by)
97
+ assert !BlankTwo.new().attribute_names.include?(:created_by)
98
+ assert !BlankTwo.new().attribute_names.include?(:updated_by)
99
99
 
100
- AddAuthors.new().up
100
+ AddAuthors.up
101
101
  BlankTwo.reset_column_information
102
102
 
103
103
  assert_equal :string, BlankTwo.columns_hash['created_by'].type
@@ -105,10 +105,10 @@ class TestArAuditTracer < Test::Unit::TestCase
105
105
  end
106
106
 
107
107
  def test_migration_change_table_authors
108
- assert !BlankOne.attribute_names.include?(:created_by)
109
- assert !BlankOne.attribute_names.include?(:updated_by)
108
+ assert !BlankOne.new().attribute_names.include?(:created_by)
109
+ assert !BlankOne.new().attribute_names.include?(:updated_by)
110
110
 
111
- ChangeTableAuthors.new().up
111
+ ChangeTableAuthors.up
112
112
  BlankOne.reset_column_information
113
113
 
114
114
  assert_equal :integer, BlankOne.columns_hash['created_by'].type
metadata CHANGED
@@ -1,62 +1,55 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ar-audit-tracer
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
5
- prerelease:
4
+ version: 2.0.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Martin Schweizer
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-05-01 00:00:00.000000000 Z
11
+ date: 2013-07-24 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: activerecord
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - ~>
20
18
  - !ruby/object:Gem::Version
21
- version: '3.0'
19
+ version: '4.0'
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
24
  - - ~>
28
25
  - !ruby/object:Gem::Version
29
- version: '3.0'
26
+ version: '4.0'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: activerecord
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
31
  - - ~>
36
32
  - !ruby/object:Gem::Version
37
- version: '3.0'
33
+ version: '4.0'
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
38
  - - ~>
44
39
  - !ruby/object:Gem::Version
45
- version: '3.0'
40
+ version: '4.0'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: sqlite3
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - '>='
52
46
  - !ruby/object:Gem::Version
53
47
  version: '0'
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - '>='
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0'
62
55
  description: Handles ActiveRecord authors in the same way as timstamps.
@@ -75,9 +68,10 @@ files:
75
68
  - README.rdoc
76
69
  - Rakefile
77
70
  - ar-audit-tracer.gemspec
78
- - gemfiles/rails3_0.gemfile
79
- - gemfiles/rails3_1.gemfile
80
- - gemfiles/rails3_2.gemfile
71
+ - gemfiles/rails4_0.gemfile
72
+ - lib/active_record/author_stamp.rb
73
+ - lib/active_record/connection_adapters/abstract_mysql_adapter.rb
74
+ - lib/active_record/migration/command_recorder.rb
81
75
  - lib/ar-audit-tracer.rb
82
76
  - lib/ar-audit-tracer/version.rb
83
77
  - lib/concern/audit/author.rb
@@ -90,6 +84,7 @@ files:
90
84
  - test/test_ar-audit-tracer.rb
91
85
  homepage: http://github.com/verticonaut/ar-audit-tracer
92
86
  licenses: []
87
+ metadata: {}
93
88
  post_install_message:
94
89
  rdoc_options:
95
90
  - --charset
@@ -98,22 +93,20 @@ rdoc_options:
98
93
  require_paths:
99
94
  - lib
100
95
  required_ruby_version: !ruby/object:Gem::Requirement
101
- none: false
102
96
  requirements:
103
- - - ! '>='
97
+ - - '>='
104
98
  - !ruby/object:Gem::Version
105
99
  version: '0'
106
100
  required_rubygems_version: !ruby/object:Gem::Requirement
107
- none: false
108
101
  requirements:
109
- - - ! '>='
102
+ - - '>='
110
103
  - !ruby/object:Gem::Version
111
104
  version: '0'
112
105
  requirements: []
113
106
  rubyforge_project:
114
- rubygems_version: 1.8.21
107
+ rubygems_version: 2.0.5
115
108
  signing_key:
116
- specification_version: 3
109
+ specification_version: 4
117
110
  summary: Track creator/modifiers of you AR Models similar to timestamps.
118
111
  test_files:
119
112
  - test/concern/audit/author_test.rb
@@ -1,8 +0,0 @@
1
- source 'http://rubygems.org'
2
-
3
- gem 'activerecord', '~> 3.0.3'
4
-
5
- group :test do
6
- gem 'rake'
7
- gem 'sqlite3'
8
- end
@@ -1,8 +0,0 @@
1
- source 'http://rubygems.org'
2
-
3
- gem 'activerecord', '~> 3.1.0'
4
-
5
- group :test do
6
- gem 'rake'
7
- gem 'sqlite3'
8
- end
@@ -1,8 +0,0 @@
1
- source 'http://rubygems.org'
2
-
3
- gem 'activerecord', '~> 3.2.0'
4
-
5
- group :test do
6
- gem 'rake'
7
- gem 'sqlite3'
8
- end