make changeset instance and start on change page

This commit is contained in:
2022-12-26 17:06:12 +02:00
parent c1288786b6
commit 367c05b086
6 changed files with 65 additions and 48 deletions

View File

@ -2,20 +2,20 @@ module Merged
class ActiveBase < ActiveYaml::Base
def save
ChangeSet.edit(self.class.name , self.change_name)
ChangeSet.current.edit(self.class.name , self.change_name)
super
self.class.save_all
end
def add_save
ChangeSet.add(self.class.name , self.change_name)
ChangeSet.current.add(self.class.name , self.change_name)
super.save()
self.class.save_all
end
def delete
ChangeSet.delete(self.class.name , self.change_name)
ChangeSet.current.delete(self.class.name , self.change_name)
self.class.delete(self.id)
end

View File

@ -1,36 +1,43 @@
module Merged
module ChangeSet
@@adds = []
@@edits = []
@@deletes = []
class ChangeSet
mattr_accessor :adds , :edits , :deletes
def self.add( type , text)
@@adds << [typed(type) , text ]
def self.current
@@current ||= ChangeSet.new
end
attr_reader :adds , :edits , :deletes
def initialize
@adds = []
@edits = []
@deletes = []
end
def self.edit( type , text)
@@edits << [typed(type) , text ]
end
def self.delete( type , text)
@@deletes << [typed(type) , text ]
def add( type , text)
@adds << [typed(type) , text ]
end
def self.added( type )
def edit( type , text)
@edits << [typed(type) , text ]
end
def delete( type , text)
@deletes << [typed(type) , text ]
end
def added( type )
type = type.to_sym
@@adds.select { |a| a.first == type }
@adds.select { |a| a.first == type }
end
def self.edited( type )
def edited( type )
type = type.to_sym
@@edits.select { |a| a.first == type }
@edits.select { |a| a.first == type }
end
def self.deleted( type )
def deleted( type )
type = type.to_sym
@@deletes.select { |a| a.first == type }
@deletes.select { |a| a.first == type }
end
def self.typed(class_name)
def typed(class_name)
class_name.split("::").last.to_sym
end
end