class ErrandBoy::Brain
Public Class Methods
new()
click to toggle source
# File lib/errand_boy/brain.rb, line 3 def initialize @git = Git.new(Dir.pwd) @requests = requests end
Public Instance Methods
command()
click to toggle source
# File lib/errand_boy/brain.rb, line 8 def command case @git.branch when /master/ then run when /.*request.*/ then validate end end
run()
click to toggle source
# File lib/errand_boy/brain.rb, line 15 def run @requests.each do |request| gateway = Gateway.build(request) csv = CSV.build(request) gateway.call next if processed?(gateway, csv) csv.push request.delete @git.commit "[auto][ci skip] add request to index" @git.push end end
validate()
click to toggle source
# File lib/errand_boy/brain.rb, line 30 def validate @requests.each do |request| Validator.build(request).run request.rename @git.commit '[auto][ci skip] rename request file' @git.push end end
Private Instance Methods
entries()
click to toggle source
# File lib/errand_boy/brain.rb, line 46 def entries Dir.glob("#{Request.dir}/*.toml").sort end
processed?(gateway, csv)
click to toggle source
# File lib/errand_boy/brain.rb, line 50 def processed?(gateway, csv) gateway.processed? && csv.duplicated? end
requests()
click to toggle source
# File lib/errand_boy/brain.rb, line 42 def requests entries.map {|path| Request.new(path) } end