record_history 0.0.2 → 0.8.2
Sign up to get free protection for your applications and to get access to all the features.
- data/.yardoc/checksums +6 -3
- data/.yardoc/objects/root.dat +0 -0
- data/.yardoc/proxy_types +0 -0
- data/Gemfile +3 -0
- data/Gemfile.lock +86 -1
- data/Rakefile +15 -0
- data/doc/CreateRecordHistories.html +20 -14
- data/doc/RecordHistory/Controller.html +164 -0
- data/doc/RecordHistory/InstallGenerator.html +1 -1
- data/doc/RecordHistory/Model/ClassMethods.html +251 -0
- data/doc/RecordHistory/Model/InstanceMethods.html +241 -0
- data/doc/RecordHistory/Model.html +174 -0
- data/doc/RecordHistory.html +125 -3
- data/doc/RecordHistoryModel.html +333 -0
- data/doc/_index.html +42 -1
- data/doc/class_list.html +1 -1
- data/doc/file.LICENSE.html +1 -1
- data/doc/file.README.html +1 -1
- data/doc/index.html +1 -1
- data/doc/method_list.html +97 -1
- data/doc/top-level-namespace.html +2 -2
- data/lib/generators/record_history/templates/create_record_histories.rb +6 -3
- data/lib/record_history/controller.rb +17 -0
- data/lib/record_history/has_record_history.rb +36 -10
- data/lib/record_history/record_history_model.rb +3 -1
- data/lib/record_history/version.rb +1 -1
- data/lib/record_history.rb +21 -0
- data/record_history.gemspec +9 -3
- data/spec/db/database.yml +18 -0
- data/spec/db/schema.rb +29 -0
- data/spec/debug.log +2559 -0
- data/spec/factories/record_history_models.rb +11 -0
- data/spec/factories/some_datas.rb +7 -0
- data/spec/factories/users.rb +7 -0
- data/spec/record_history_spec.rb +46 -0
- data/spec/spec_helper.rb +36 -0
- data/spec/support/models.rb +13 -0
- metadata +109 -6
@@ -0,0 +1,11 @@
|
|
1
|
+
FactoryGirl.define do
|
2
|
+
factory :record_history_model do
|
3
|
+
item_type { 'SomeData' }
|
4
|
+
item_id { Factory.create(:some_data).id }
|
5
|
+
attr_name { Faker::Lorem.words(1).first }
|
6
|
+
old_value_dump { Marshal.dump(Faker::Base.numerify('##')) }
|
7
|
+
new_value_dump { Marshal.dump(Faker::Base.numerify('##')) }
|
8
|
+
author_type { 'User'}
|
9
|
+
author_id { Factory.create(:user) }
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
require 'factories/record_history_models'
|
4
|
+
require 'factories/users'
|
5
|
+
require 'factories/some_datas'
|
6
|
+
require 'shoulda-matchers'
|
7
|
+
|
8
|
+
describe RecordHistoryModel do
|
9
|
+
context "validations" do
|
10
|
+
before :each do
|
11
|
+
@hist = Factory.create(:record_history_model)
|
12
|
+
end
|
13
|
+
it "presence" do
|
14
|
+
[:item_type, :item_id, :old_value_dump, :new_value_dump].each do |attr|
|
15
|
+
@hist.send("#{attr}=", nil)
|
16
|
+
@hist.should_not be_valid
|
17
|
+
@hist.errors.size.should == 1
|
18
|
+
@hist.errors.get(attr).should == ["can't be blank"]
|
19
|
+
@hist.send("#{attr}=", Factory.build(:record_history_model).send(attr ))
|
20
|
+
@hist.should be_valid
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
context "associations" do
|
26
|
+
before :each do
|
27
|
+
@hist = Factory.create(:record_history_model)
|
28
|
+
end
|
29
|
+
|
30
|
+
it "item" do
|
31
|
+
item = @hist.item
|
32
|
+
item.class.name.should == @hist.item_type
|
33
|
+
item.id.should == @hist.item.id
|
34
|
+
|
35
|
+
item.record_history.first.should == @hist
|
36
|
+
end
|
37
|
+
|
38
|
+
it "author" do
|
39
|
+
author = @hist.author
|
40
|
+
author.class.name.should == @hist.author_type
|
41
|
+
author.id.should == @hist.author_id
|
42
|
+
|
43
|
+
author.written_history.first.class.name.should == "RecordHistoryModel"
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
$:.unshift(File.dirname(__FILE__) + '/../lib')
|
2
|
+
$:.unshift(File.dirname(__FILE__))
|
3
|
+
plugin_test_dir = File.dirname(__FILE__)
|
4
|
+
|
5
|
+
require 'rubygems'
|
6
|
+
require 'bundler/setup'
|
7
|
+
|
8
|
+
require 'rspec'
|
9
|
+
require 'rspec-set'
|
10
|
+
require 'shoulda-matchers'
|
11
|
+
require 'logger'
|
12
|
+
require 'factory_girl'
|
13
|
+
require 'faker'
|
14
|
+
|
15
|
+
require 'active_support'
|
16
|
+
require 'active_model'
|
17
|
+
require 'active_record'
|
18
|
+
|
19
|
+
require 'record_history'
|
20
|
+
|
21
|
+
ActiveRecord::Base.logger = Logger.new(plugin_test_dir + "/debug.log")
|
22
|
+
|
23
|
+
require 'yaml'
|
24
|
+
require 'erb'
|
25
|
+
ActiveRecord::Base.configurations = YAML::load(ERB.new(IO.read(plugin_test_dir + "/db/database.yml")).result)
|
26
|
+
ActiveRecord::Base.establish_connection(ENV["DB"] || "sqlite3mem")
|
27
|
+
ActiveRecord::Migration.verbose = false
|
28
|
+
load(File.join(plugin_test_dir, "db", "schema.rb"))
|
29
|
+
|
30
|
+
require 'support/models'
|
31
|
+
|
32
|
+
RSpec.configure do |config|
|
33
|
+
config.after do
|
34
|
+
FactoryGirl.reload
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
class User < ActiveRecord::Base
|
2
|
+
is_record_history_author
|
3
|
+
|
4
|
+
validates :login, :password, :name, :presence => true
|
5
|
+
validates :login, :uniqueness => true
|
6
|
+
end
|
7
|
+
|
8
|
+
class SomeData < ActiveRecord::Base
|
9
|
+
has_record_history :only => [:name, :value]
|
10
|
+
|
11
|
+
validates :name, :presence => true, :uniqueness => true
|
12
|
+
validates :value, :presence => true
|
13
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: record_history
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.8.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,33 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-02-
|
12
|
+
date: 2012-02-28 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: rspec
|
16
|
+
requirement: &17195092220 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :development
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *17195092220
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: factory_girl
|
27
|
+
requirement: &17195091680 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
type: :development
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *17195091680
|
14
36
|
- !ruby/object:Gem::Dependency
|
15
37
|
name: yard
|
16
|
-
requirement: &
|
38
|
+
requirement: &17195090060 !ruby/object:Gem::Requirement
|
17
39
|
none: false
|
18
40
|
requirements:
|
19
41
|
- - ~>
|
@@ -21,10 +43,10 @@ dependencies:
|
|
21
43
|
version: 0.7.5
|
22
44
|
type: :development
|
23
45
|
prerelease: false
|
24
|
-
version_requirements: *
|
46
|
+
version_requirements: *17195090060
|
25
47
|
- !ruby/object:Gem::Dependency
|
26
48
|
name: redcarpet
|
27
|
-
requirement: &
|
49
|
+
requirement: &17195105560 !ruby/object:Gem::Requirement
|
28
50
|
none: false
|
29
51
|
requirements:
|
30
52
|
- - ~>
|
@@ -32,7 +54,73 @@ dependencies:
|
|
32
54
|
version: '1.17'
|
33
55
|
type: :development
|
34
56
|
prerelease: false
|
35
|
-
version_requirements: *
|
57
|
+
version_requirements: *17195105560
|
58
|
+
- !ruby/object:Gem::Dependency
|
59
|
+
name: sqlite3
|
60
|
+
requirement: &17195104800 !ruby/object:Gem::Requirement
|
61
|
+
none: false
|
62
|
+
requirements:
|
63
|
+
- - ! '>='
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: '0'
|
66
|
+
type: :development
|
67
|
+
prerelease: false
|
68
|
+
version_requirements: *17195104800
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rspec-set
|
71
|
+
requirement: &17195103920 !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: *17195103920
|
80
|
+
- !ruby/object:Gem::Dependency
|
81
|
+
name: faker
|
82
|
+
requirement: &17195103400 !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: *17195103400
|
91
|
+
- !ruby/object:Gem::Dependency
|
92
|
+
name: activesupport
|
93
|
+
requirement: &17195102940 !ruby/object:Gem::Requirement
|
94
|
+
none: false
|
95
|
+
requirements:
|
96
|
+
- - ! '>='
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: '0'
|
99
|
+
type: :runtime
|
100
|
+
prerelease: false
|
101
|
+
version_requirements: *17195102940
|
102
|
+
- !ruby/object:Gem::Dependency
|
103
|
+
name: activemodel
|
104
|
+
requirement: &17195102460 !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
110
|
+
type: :runtime
|
111
|
+
prerelease: false
|
112
|
+
version_requirements: *17195102460
|
113
|
+
- !ruby/object:Gem::Dependency
|
114
|
+
name: activerecord
|
115
|
+
requirement: &17195101980 !ruby/object:Gem::Requirement
|
116
|
+
none: false
|
117
|
+
requirements:
|
118
|
+
- - ! '>='
|
119
|
+
- !ruby/object:Gem::Version
|
120
|
+
version: '0'
|
121
|
+
type: :runtime
|
122
|
+
prerelease: false
|
123
|
+
version_requirements: *17195101980
|
36
124
|
description: ActiveRecord versioning
|
37
125
|
email:
|
38
126
|
- m.gulin@gmail.com
|
@@ -53,7 +141,12 @@ files:
|
|
53
141
|
- Rakefile
|
54
142
|
- doc/CreateRecordHistories.html
|
55
143
|
- doc/RecordHistory.html
|
144
|
+
- doc/RecordHistory/Controller.html
|
56
145
|
- doc/RecordHistory/InstallGenerator.html
|
146
|
+
- doc/RecordHistory/Model.html
|
147
|
+
- doc/RecordHistory/Model/ClassMethods.html
|
148
|
+
- doc/RecordHistory/Model/InstanceMethods.html
|
149
|
+
- doc/RecordHistoryModel.html
|
57
150
|
- doc/_index.html
|
58
151
|
- doc/class_list.html
|
59
152
|
- doc/css/common.css
|
@@ -72,11 +165,21 @@ files:
|
|
72
165
|
- lib/generators/record_history/install_generator.rb
|
73
166
|
- lib/generators/record_history/templates/create_record_histories.rb
|
74
167
|
- lib/record_history.rb
|
168
|
+
- lib/record_history/controller.rb
|
75
169
|
- lib/record_history/has_record_history.rb
|
76
170
|
- lib/record_history/record_history_model.rb
|
77
171
|
- lib/record_history/version.rb
|
78
172
|
- pkg/record_history-0.0.1.gem
|
79
173
|
- record_history.gemspec
|
174
|
+
- spec/db/database.yml
|
175
|
+
- spec/db/schema.rb
|
176
|
+
- spec/debug.log
|
177
|
+
- spec/factories/record_history_models.rb
|
178
|
+
- spec/factories/some_datas.rb
|
179
|
+
- spec/factories/users.rb
|
180
|
+
- spec/record_history_spec.rb
|
181
|
+
- spec/spec_helper.rb
|
182
|
+
- spec/support/models.rb
|
80
183
|
homepage: ''
|
81
184
|
licenses: []
|
82
185
|
post_install_message:
|