Sha256: 1ee745a747ede3c59f4718a60b40405a7c678b111a809820aaa1ef375e179042

Contents?: true

Size: 874 Bytes

Versions: 1

Compression:

Stored size: 874 Bytes

Contents

module Logirel
  
  class Q
    attr_accessor :question
  end
  
  class BoolQ < Q
    attr_accessor :pos_answer, :neg_answer
    
    def initialize(question, name) 
      @question = question
  	#@pos_answer lambda { name }
  	#@neg_answer lambda { }
    end
    
    def exec 
      puts @question
      #a = gets
      #a == 'yes' ? q.pos_answer.call : a == '' ? q.neg_answer.call
    end
  end
  
  class StrQ < Q
    attr_accessor :answer, :default
    
    def initialize(question, default = '.') 
      @question = question
	  @default = default
    end
    
    def exec 
      puts @question
  	  @answer = gets.chomp || @default
    end
  end
  
  class Querier
    def include_package_for(projects)
      projects.
  	  map{ |p| BoolQ.new("Would you like to include the '#{p}' project, dear Sir?", p) }
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
logirel-0.0.6 lib/logirel/q_model.rb