keeping track of changes as git is too clumsy for it

This commit is contained in:
Torsten 2022-12-26 00:40:52 +02:00
parent 6fef0adbe7
commit c1288786b6
8 changed files with 70 additions and 1 deletions

View File

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

View File

@ -11,6 +11,11 @@ module Merged
swap_index_with(next_card)
end
def change_name
pagename = section ? section.page.name : section_id.to_s
"#{pagename}:#{header}"
end
def move_down
swap_index_with(previous_card)
end

View File

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

View File

@ -5,6 +5,10 @@ module Merged
alias :template :type
def change_name
self.name
end
def add_redirect
olds = self.redirects.to_s.split(" ")
olds << self.name unless olds.include?(self.name)

View File

@ -7,6 +7,10 @@ module Merged
fields :template , :card_template
fields :header, :text , :image_name
def change_name
"#{page.name}:#{header}"
end
def cards
Card.where(section_id: id).order(index: :asc)
end
@ -72,7 +76,7 @@ module Merged
def delete( reindex = true )
has_cards = cards.length
cards.each {|card| card.delete(false) }
Section.delete( self.id )
super()
page.reset_index if reindex
has_cards
end

View File

@ -28,6 +28,9 @@ module Merged
assert_equal card.index , 1
end
def test_change_name
assert_equal "studios:Standard" , first.change_name
end
end
end

View File

@ -34,5 +34,9 @@ module Merged
assert_equal section.index , index + 1 # because we have human index
end
end
def test_change_name
assert_equal "index" , index.change_name
end
end
end

View File

@ -42,5 +42,8 @@ module Merged
def test_last_has_no_next
assert_nil last.next_section
end
def test_change_name
assert_equal "studios:Studios" , first.change_name
end
end
end