memento 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,91 @@
1
+ require 'rubygems'
2
+ require 'active_support'
3
+ require 'active_record'
4
+ require 'action_controller'
5
+ require 'spec'
6
+
7
+ # Initialize time_zones from rails
8
+ Time.zone_default = Time.__send__(:get_zone, 'Berlin') || raise("Err")
9
+ ActiveRecord::Base.time_zone_aware_attributes = true
10
+ ActiveRecord::Base.default_timezone = :utc
11
+
12
+ $:.unshift(File.dirname(__FILE__))
13
+ $:.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
14
+ require 'memento'
15
+
16
+ Spec::Runner.configure do |config|
17
+
18
+ end
19
+
20
+ ActiveRecord::Base.establish_connection(:adapter => "sqlite3", :database => ":memory:")
21
+ # catch AR schema statements
22
+ $stdout = StringIO.new
23
+
24
+ def setup_db
25
+ ActiveRecord::Schema.define(:version => 1) do
26
+ create_table :projects do |t|
27
+ t.column :name, :string
28
+ t.column :closed_at, :datetime
29
+ t.column :notes, :string
30
+ t.references :customer
31
+ t.integer :ignore_this
32
+ t.timestamps
33
+ end
34
+
35
+ create_table :users do |t|
36
+ t.column :email, :string
37
+ t.column :name, :string
38
+ t.timestamps
39
+ end
40
+
41
+ create_table :customers do |t|
42
+ t.column :name, :string
43
+ t.timestamps
44
+ end
45
+
46
+ create_table :timestampless_objects do |t|
47
+ t.column :name, :string
48
+ end
49
+
50
+ create_table :memento_sessions do |t|
51
+ t.references :user
52
+ t.timestamps
53
+ end
54
+
55
+ create_table :memento_states do |t|
56
+ t.string :action_type
57
+ t.binary :record_data, :limit => 1.megabytes
58
+ t.references :record, :polymorphic => true
59
+ t.references :session
60
+ t.timestamps
61
+ end
62
+
63
+ end
64
+ end
65
+
66
+ def setup_data
67
+ @user = User.create(:name => "MyUser")
68
+ end
69
+
70
+ def shutdown_db
71
+ ActiveRecord::Base.connection.tables.each do |table|
72
+ ActiveRecord::Base.connection.drop_table(table)
73
+ end
74
+ end
75
+
76
+ class User < ActiveRecord::Base
77
+ end
78
+
79
+ class Customer < ActiveRecord::Base
80
+ has_many :projects
81
+ end
82
+
83
+ class Project < ActiveRecord::Base
84
+ belongs_to :customer
85
+
86
+ memento_changes :ignore => :ignore_this
87
+ end
88
+
89
+ class TimestamplessObject < ActiveRecord::Base
90
+ memento_changes
91
+ end
metadata ADDED
@@ -0,0 +1,95 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: memento
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.3.0
5
+ platform: ruby
6
+ authors:
7
+ - Yolk Sebastian Munz & Julia Soergel GbR
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2010-01-26 00:00:00 +01:00
13
+ default_executable:
14
+ dependencies: []
15
+
16
+ description:
17
+ email: sebastian@yo.lk
18
+ executables: []
19
+
20
+ extensions: []
21
+
22
+ extra_rdoc_files:
23
+ - LICENSE
24
+ - README.rdoc
25
+ - TODO
26
+ files:
27
+ - .gitignore
28
+ - LICENSE
29
+ - README.rdoc
30
+ - Rakefile
31
+ - TODO
32
+ - VERSION.yml
33
+ - generators/memento_migration/memento_migration_generator.rb
34
+ - generators/memento_migration/templates/migration.rb
35
+ - lib/memento.rb
36
+ - lib/memento/action.rb
37
+ - lib/memento/action/create.rb
38
+ - lib/memento/action/destroy.rb
39
+ - lib/memento/action/update.rb
40
+ - lib/memento/action_controller_methods.rb
41
+ - lib/memento/active_record_methods.rb
42
+ - lib/memento/result.rb
43
+ - lib/memento/session.rb
44
+ - lib/memento/state.rb
45
+ - memento.gemspec
46
+ - rails/init.rb
47
+ - spec/memento/action/create_spec.rb
48
+ - spec/memento/action/destroy_spec.rb
49
+ - spec/memento/action/update_spec.rb
50
+ - spec/memento/action_controller_methods_spec.rb
51
+ - spec/memento/active_record_methods_spec.rb
52
+ - spec/memento/result_spec.rb
53
+ - spec/memento/session_spec.rb
54
+ - spec/memento/state_spec.rb
55
+ - spec/memento_spec.rb
56
+ - spec/spec_helper.rb
57
+ has_rdoc: true
58
+ homepage: http://github.com/yolk/memento
59
+ licenses: []
60
+
61
+ post_install_message:
62
+ rdoc_options:
63
+ - --charset=UTF-8
64
+ require_paths:
65
+ - lib
66
+ required_ruby_version: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - ">="
69
+ - !ruby/object:Gem::Version
70
+ version: "0"
71
+ version:
72
+ required_rubygems_version: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ version: "0"
77
+ version:
78
+ requirements: []
79
+
80
+ rubyforge_project:
81
+ rubygems_version: 1.3.5
82
+ signing_key:
83
+ specification_version: 3
84
+ summary: Undo for Rails/ActiveRecord - covers destroy, update and create
85
+ test_files:
86
+ - spec/memento/action/create_spec.rb
87
+ - spec/memento/action/destroy_spec.rb
88
+ - spec/memento/action/update_spec.rb
89
+ - spec/memento/action_controller_methods_spec.rb
90
+ - spec/memento/active_record_methods_spec.rb
91
+ - spec/memento/result_spec.rb
92
+ - spec/memento/session_spec.rb
93
+ - spec/memento/state_spec.rb
94
+ - spec/memento_spec.rb
95
+ - spec/spec_helper.rb