class Compilator::Compilator

Public Class Methods

new(model = nil) click to toggle source
Calls superclass method
# File lib/compilator.rb, line 11
def initialize(model = nil)
  if model == nil
    initialize(CompilatorModel.new)  
  else
    super(model)
    add_view(CompilatorView.new(self))
  end
  
end

Public Instance Methods

notify_action(view,action,kwargs={}) click to toggle source
# File lib/compilator.rb, line 21
def notify_action(view,action,kwargs={})
  if kwargs[:location] == @model.calculatrice
    
    if action == :key_pressed || action == :button_pressed
      @model.last_key_pressed = kwargs[:key]
    
    elsif action == :key_enter_pressed
      notify_action(view,:button_equal_pressed,kwargs)
      
    elsif action == :key_delete_pressed
      @model.delete = true
            
    elsif action == :button_equal_pressed
      numerateur = 0
      kwargs[:value].each_char do |c|
        numerateur = numerateur+model.score[c]
      end
      denominateur = kwargs[:value].size*5
      @model.result = numerateur.to_s+"/"+denominateur.to_s+" => "+(numerateur*20.to_f/denominateur).round(2).to_s+"/20"
      
    elsif action == :button_raz_pressed
      @model.raz = true
    end
    
  elsif kwargs[:location] == @model.total
    if action == :button_calcul_pressed
      num = kwargs['a'].to_i+kwargs['c'].to_i+kwargs['e'].to_i+kwargs['g'].to_i+kwargs['i'].to_i
      denom = kwargs['b'].to_i+kwargs['d'].to_i+kwargs['f'].to_i+kwargs['h'].to_i+kwargs['j'].to_i
      @model.result_total = num.to_s+"/"+denom.to_s
      @model.result_arrondi = (num*20.to_f/denom).round(2).to_s+'/20'
    
    elsif action == :key_enter_pressed
      notify_action(view,:button_calcul_pressed,kwargs)
    
    elsif action == :button_raz_pressed
      @model.raz_total = true
    end          
  end  
  if action == :close_window 
    view.close
  end 
end