Class: CiteProc::Ruby::Renderer::History

Inherits:
Object
  • Object
show all
Defined in:
lib/citeproc/ruby/renderer/history.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(state, maxsize = 10) ⇒ History

Returns a new instance of History.



8
9
10
11
12
13
14
15
# File 'lib/citeproc/ruby/renderer/history.rb', line 8

def initialize(state, maxsize = 10)
  @state, @maxsize, = state, maxsize
  @state.add_observer(self)

  @memory = Hash.new do |hash, key|
    hash[key] = []
  end
end

Instance Attribute Details

#maxsizeObject (readonly)

Returns the value of attribute maxsize.



6
7
8
# File 'lib/citeproc/ruby/renderer/history.rb', line 6

def maxsize
  @maxsize
end

#memoryObject (readonly)

Returns the value of attribute memory.



6
7
8
# File 'lib/citeproc/ruby/renderer/history.rb', line 6

def memory
  @memory
end

Instance Method Details

#bibliographyObject



33
34
35
# File 'lib/citeproc/ruby/renderer/history.rb', line 33

def bibliography
  memory['bibliography']
end

#citationObject



29
30
31
# File 'lib/citeproc/ruby/renderer/history.rb', line 29

def citation
  memory['citation']
end

#discardObject



37
38
39
40
# File 'lib/citeproc/ruby/renderer/history.rb', line 37

def discard
  memory.clear
  self
end

#recall(mode) ⇒ Object



25
26
27
# File 'lib/citeproc/ruby/renderer/history.rb', line 25

def recall(mode)
  memory[mode][-1]
end

#update(action, mode, memories = {}) ⇒ Object



17
18
19
20
21
22
23
# File 'lib/citeproc/ruby/renderer/history.rb', line 17

def update(action, mode, memories = {})
  history = memory[mode]
  history << memories

ensure
  history.shift if history.length > maxsize
end