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
|
class ActiveBase < ActiveYaml::Base
|
||||||
|
|
||||||
def save
|
def save
|
||||||
|
ChangeSet.edit(self.class.name , self.change_name)
|
||||||
super
|
super
|
||||||
self.class.save_all
|
self.class.save_all
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def add_save
|
||||||
|
ChangeSet.add(self.class.name , self.change_name)
|
||||||
|
super.save()
|
||||||
|
self.class.save_all
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
def delete
|
def delete
|
||||||
|
ChangeSet.delete(self.class.name , self.change_name)
|
||||||
self.class.delete(self.id)
|
self.class.delete(self.id)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -11,6 +11,11 @@ module Merged
|
|||||||
swap_index_with(next_card)
|
swap_index_with(next_card)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def change_name
|
||||||
|
pagename = section ? section.page.name : section_id.to_s
|
||||||
|
"#{pagename}:#{header}"
|
||||||
|
end
|
||||||
|
|
||||||
def move_down
|
def move_down
|
||||||
swap_index_with(previous_card)
|
swap_index_with(previous_card)
|
||||||
end
|
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
|
alias :template :type
|
||||||
|
|
||||||
|
def change_name
|
||||||
|
self.name
|
||||||
|
end
|
||||||
|
|
||||||
def add_redirect
|
def add_redirect
|
||||||
olds = self.redirects.to_s.split(" ")
|
olds = self.redirects.to_s.split(" ")
|
||||||
olds << self.name unless olds.include?(self.name)
|
olds << self.name unless olds.include?(self.name)
|
||||||
|
@ -7,6 +7,10 @@ module Merged
|
|||||||
fields :template , :card_template
|
fields :template , :card_template
|
||||||
fields :header, :text , :image_name
|
fields :header, :text , :image_name
|
||||||
|
|
||||||
|
def change_name
|
||||||
|
"#{page.name}:#{header}"
|
||||||
|
end
|
||||||
|
|
||||||
def cards
|
def cards
|
||||||
Card.where(section_id: id).order(index: :asc)
|
Card.where(section_id: id).order(index: :asc)
|
||||||
end
|
end
|
||||||
@ -72,7 +76,7 @@ module Merged
|
|||||||
def delete( reindex = true )
|
def delete( reindex = true )
|
||||||
has_cards = cards.length
|
has_cards = cards.length
|
||||||
cards.each {|card| card.delete(false) }
|
cards.each {|card| card.delete(false) }
|
||||||
Section.delete( self.id )
|
super()
|
||||||
page.reset_index if reindex
|
page.reset_index if reindex
|
||||||
has_cards
|
has_cards
|
||||||
end
|
end
|
||||||
|
@ -28,6 +28,9 @@ module Merged
|
|||||||
assert_equal card.index , 1
|
assert_equal card.index , 1
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_change_name
|
||||||
|
assert_equal "studios:Standard" , first.change_name
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -34,5 +34,9 @@ module Merged
|
|||||||
assert_equal section.index , index + 1 # because we have human index
|
assert_equal section.index , index + 1 # because we have human index
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
def test_change_name
|
||||||
|
assert_equal "index" , index.change_name
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -42,5 +42,8 @@ module Merged
|
|||||||
def test_last_has_no_next
|
def test_last_has_no_next
|
||||||
assert_nil last.next_section
|
assert_nil last.next_section
|
||||||
end
|
end
|
||||||
|
def test_change_name
|
||||||
|
assert_equal "studios:Studios" , first.change_name
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user