yesterday 0.6 → 1.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +1 -4
- data/lib/yesterday/version.rb +1 -1
- data/lib/yesterday/versioned_object_creator.rb +5 -4
- metadata +46 -74
data/README.rdoc
CHANGED
@@ -1,10 +1,7 @@
|
|
1
1
|
= Yesterday
|
2
2
|
|
3
|
-
The Yesterday gem lets you track changes made in ActiveRecord models. It's also possible to diff different versions. The big difference with this gem and
|
3
|
+
The Yesterday gem lets you track changes made in ActiveRecord models. It's also possible to diff different versions. The big difference with this gem and others (like Papertrail) is, is that it is possible to diff all child objects (has_many, belongs_to & has_and_belongs_to_many) and it's changes.
|
4
4
|
|
5
|
-
== Note: work in progress
|
6
|
-
|
7
|
-
In the meanwhile:
|
8
5
|
http://www.youtube.com/watch?v=YgtByWlBSdA
|
9
6
|
|
10
7
|
== Installation
|
data/lib/yesterday/version.rb
CHANGED
@@ -11,28 +11,29 @@ module Yesterday
|
|
11
11
|
attributes = {}
|
12
12
|
|
13
13
|
hash.each do |attribute, value|
|
14
|
-
if
|
14
|
+
if contains_nested_objects? value
|
15
15
|
value.each do |item|
|
16
16
|
attributes[attribute] ||= []
|
17
17
|
attributes[attribute] << deserialize(item) if item
|
18
18
|
end
|
19
19
|
|
20
|
-
elsif
|
20
|
+
elsif contains_nested_object? value
|
21
21
|
attributes[attribute] = deserialize(value)
|
22
22
|
|
23
23
|
elsif attribute != 'id'
|
24
24
|
attributes[attribute] = value.is_a?(Array) ? Yesterday::VersionedAttribute.new(value) : value
|
25
|
+
|
25
26
|
end
|
26
27
|
end
|
27
28
|
|
28
29
|
Yesterday::VersionedObject.new(attributes.merge({ 'id' => hash['id']}))
|
29
30
|
end
|
30
31
|
|
31
|
-
def
|
32
|
+
def contains_nested_objects?(value)
|
32
33
|
value.is_a?(Array) && value.first.is_a?(Hash)
|
33
34
|
end
|
34
35
|
|
35
|
-
def
|
36
|
+
def contains_nested_object?(value)
|
36
37
|
value.is_a?(Hash)
|
37
38
|
end
|
38
39
|
|
metadata
CHANGED
@@ -1,74 +1,56 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: yesterday
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 6
|
9
|
-
version: "0.6"
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.rc1
|
5
|
+
prerelease: 4
|
10
6
|
platform: ruby
|
11
|
-
authors:
|
7
|
+
authors:
|
12
8
|
- Diederick Lawson
|
13
9
|
autorequire:
|
14
10
|
bindir: bin
|
15
11
|
cert_chain: []
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
dependencies:
|
20
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2011-09-09 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
21
15
|
name: rspec
|
22
|
-
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: &70215422679120 !ruby/object:Gem::Requirement
|
24
17
|
none: false
|
25
|
-
requirements:
|
26
|
-
- -
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
|
29
|
-
segments:
|
30
|
-
- 0
|
31
|
-
version: "0"
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
32
22
|
type: :development
|
33
|
-
version_requirements: *id001
|
34
|
-
- !ruby/object:Gem::Dependency
|
35
|
-
name: sqlite3
|
36
23
|
prerelease: false
|
37
|
-
|
24
|
+
version_requirements: *70215422679120
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: sqlite3
|
27
|
+
requirement: &70215422678700 !ruby/object:Gem::Requirement
|
38
28
|
none: false
|
39
|
-
requirements:
|
40
|
-
- -
|
41
|
-
- !ruby/object:Gem::Version
|
42
|
-
|
43
|
-
segments:
|
44
|
-
- 0
|
45
|
-
version: "0"
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
46
33
|
type: :development
|
47
|
-
version_requirements: *id002
|
48
|
-
- !ruby/object:Gem::Dependency
|
49
|
-
name: rails
|
50
34
|
prerelease: false
|
51
|
-
|
35
|
+
version_requirements: *70215422678700
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: rails
|
38
|
+
requirement: &70215422678280 !ruby/object:Gem::Requirement
|
52
39
|
none: false
|
53
|
-
requirements:
|
54
|
-
- -
|
55
|
-
- !ruby/object:Gem::Version
|
56
|
-
|
57
|
-
segments:
|
58
|
-
- 0
|
59
|
-
version: "0"
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0'
|
60
44
|
type: :runtime
|
61
|
-
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *70215422678280
|
62
47
|
description: Track history and view any made changes in your active record models
|
63
|
-
email:
|
48
|
+
email:
|
64
49
|
- webmaster@altovista.nl
|
65
50
|
executables: []
|
66
|
-
|
67
51
|
extensions: []
|
68
|
-
|
69
52
|
extra_rdoc_files: []
|
70
|
-
|
71
|
-
files:
|
53
|
+
files:
|
72
54
|
- .gitignore
|
73
55
|
- Gemfile
|
74
56
|
- README.rdoc
|
@@ -95,41 +77,31 @@ files:
|
|
95
77
|
- spec/versioned_object_creator_spec.rb
|
96
78
|
- spec/yesterday_model_spec.rb
|
97
79
|
- yesterday.gemspec
|
98
|
-
has_rdoc: true
|
99
80
|
homepage: http://www.altovista.nl
|
100
81
|
licenses: []
|
101
|
-
|
102
82
|
post_install_message:
|
103
83
|
rdoc_options: []
|
104
|
-
|
105
|
-
require_paths:
|
84
|
+
require_paths:
|
106
85
|
- lib
|
107
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
86
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
108
87
|
none: false
|
109
|
-
requirements:
|
110
|
-
- -
|
111
|
-
- !ruby/object:Gem::Version
|
112
|
-
|
113
|
-
|
114
|
-
- 0
|
115
|
-
version: "0"
|
116
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
88
|
+
requirements:
|
89
|
+
- - ! '>='
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
version: '0'
|
92
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
117
93
|
none: false
|
118
|
-
requirements:
|
119
|
-
- -
|
120
|
-
- !ruby/object:Gem::Version
|
121
|
-
|
122
|
-
segments:
|
123
|
-
- 0
|
124
|
-
version: "0"
|
94
|
+
requirements:
|
95
|
+
- - ! '>'
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: 1.3.1
|
125
98
|
requirements: []
|
126
|
-
|
127
99
|
rubyforge_project: yesterday
|
128
|
-
rubygems_version: 1.
|
100
|
+
rubygems_version: 1.8.10
|
129
101
|
signing_key:
|
130
102
|
specification_version: 3
|
131
103
|
summary: Track history in your active record models
|
132
|
-
test_files:
|
104
|
+
test_files:
|
133
105
|
- spec/database.yml
|
134
106
|
- spec/differ_spec.rb
|
135
107
|
- spec/models.rb
|