memento 0.3.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.
@@ -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