class Glimmer::Calculator::Command
Attributes
number1[RW]
number2[RW]
operation[RW]
result[RW]
Public Class Methods
command_history()
click to toggle source
# File lib/models/glimmer/calculator/command.rb, line 26 def command_history @command_history ||= [] end
for(button)
click to toggle source
# File lib/models/glimmer/calculator/command.rb, line 30 def for(button) command_class = keyword_to_command_class_mapping[button] command_class&.new(button)&.tap do |command| command.execute command_history << command end end
keyword(keyword_text)
click to toggle source
Keyword string representing calculator command (e.g. '+' for Add command) Subclasses must call to define a single keyword
# File lib/models/glimmer/calculator/command.rb, line 10 def keyword(keyword_text) Command.keyword_to_command_class_mapping[keyword_text] = self end
keyword_to_command_class_mapping()
click to toggle source
# File lib/models/glimmer/calculator/command.rb, line 22 def keyword_to_command_class_mapping @keyword_to_command_class_mapping ||= {} end
keywords(*keyword_text_array)
click to toggle source
Keyword string array representing calculator command (e.g. ('0'..'9').to_a) Subclasses must call to define multiple keywords
# File lib/models/glimmer/calculator/command.rb, line 16 def keywords(*keyword_text_array) keyword_text_array.flatten.each do |keyword_text| keyword(keyword_text) end end
new(button)
click to toggle source
# File lib/models/glimmer/calculator/command.rb, line 42 def initialize(button) @button = button end
Public Instance Methods
command_history()
click to toggle source
# File lib/models/glimmer/calculator/command.rb, line 78 def command_history Command.command_history end
execute()
click to toggle source
# File lib/models/glimmer/calculator/command.rb, line 82 def execute raise 'Not implemented! Please override in a subclass.' end
last_command()
click to toggle source
# File lib/models/glimmer/calculator/command.rb, line 74 def last_command command_history.last end
last_result()
click to toggle source
# File lib/models/glimmer/calculator/command.rb, line 70 def last_result last_command&.result end
number1()
click to toggle source
# File lib/models/glimmer/calculator/command.rb, line 46 def number1 Command.number1 end
number1=(value)
click to toggle source
# File lib/models/glimmer/calculator/command.rb, line 50 def number1=(value) Command.number1 = value.to_f end
number2()
click to toggle source
# File lib/models/glimmer/calculator/command.rb, line 54 def number2 Command.number2 end
number2=(value)
click to toggle source
# File lib/models/glimmer/calculator/command.rb, line 58 def number2=(value) Command.number2 = value.to_f end
operation()
click to toggle source
# File lib/models/glimmer/calculator/command.rb, line 62 def operation Command.operation end
operation=(op)
click to toggle source
# File lib/models/glimmer/calculator/command.rb, line 66 def operation=(op) Command.operation = op end