Class: Scratch
- Inherits:
-
Object
- Object
- Scratch
- Defined in:
- lib/lem.rb
Instance Attribute Summary collapse
-
#stack ⇒ Object
readonly
Returns the value of attribute stack.
Instance Method Summary collapse
- #add_words(dict) ⇒ Object
-
#initialize ⇒ Scratch
constructor
A new instance of Scratch.
- #run(text) ⇒ Object
Constructor Details
#initialize ⇒ Scratch
Returns a new instance of Scratch.
27 28 29 30 |
# File 'lib/lem.rb', line 27 def initialize @dictionary = {} @stack = [] end |
Instance Attribute Details
#stack ⇒ Object (readonly)
Returns the value of attribute stack.
25 26 27 |
# File 'lib/lem.rb', line 25 def stack @stack end |
Instance Method Details
#add_words(dict) ⇒ Object
32 33 34 35 36 |
# File 'lib/lem.rb', line 32 def add_words(dict) dict.each do |k,v| @dictionary[k] = v end end |
#run(text) ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/lem.rb', line 38 def run(text) @lexer = ScratchLexer.new(text) @lexer.each do |word| word.upcase! if word.is_num? @stack.push word.to_f elsif @dictionary[word] @dictionary[word].call self else raise "Unknown word" end end end |