keeping track of changes as git is too clumsy for it
This commit is contained in:
parent
6fef0adbe7
commit
c1288786b6
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
37
app/models/merged/change_set.rb
Normal file
37
app/models/merged/change_set.rb
Normal 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
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user