merged/app/models/merged/change_set.rb

49 lines
866 B
Ruby

module Merged
class ChangeSet
def self.current
@@current ||= ChangeSet.new
end
attr_reader :adds , :edits , :deletes
def initialize
zero
end
def zero
@adds = []
@edits = []
@deletes = []
end
def add( type , text)
@adds << [typed(type) , text ]
end
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 }
end
def edited( type )
type = type.to_sym
@edits.select { |a| a.first == type }
end
def deleted( type )
type = type.to_sym
@deletes.select { |a| a.first == type }
end
def typed(class_name)
class_name.split("::").last.to_sym
end
end
end