Class: Engine::Card

Inherits:
Struct
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/engine/card.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#card_stateObject

Returns the value of attribute card_state

Returns:

  • (Object)

    the current value of card_state



2
3
4
# File 'lib/engine/card.rb', line 2

def card_state
  @card_state
end

#dataObject

Returns the value of attribute data

Returns:

  • (Object)

    the current value of data



2
3
4
# File 'lib/engine/card.rb', line 2

def data
  @data
end

Instance Method Details

#inspectObject



19
20
21
# File 'lib/engine/card.rb', line 19

def inspect
  "<Card #{data.inspect} #{card_state.inspect}>"
end

#lapsed?Boolean

Returns:

  • (Boolean)


15
16
17
# File 'lib/engine/card.rb', line 15

def lapsed?
  streak == 0
end

#new?Boolean

Returns:

  • (Boolean)


6
7
8
# File 'lib/engine/card.rb', line 6

def new?
  card_state.empty?
end

#rate(rating) ⇒ Object



10
11
12
13
# File 'lib/engine/card.rb', line 10

def rate(rating)
  next_card_state = card_state << Rating.new(Time.now, rating)
  self.class.new(data, next_card_state)
end