I don’t like the idea of variables and methods like monthly_sales and target_sales cluttering the top-level scope.
Shall we rafactor it.
setup.rb
def event(description)
puts "ALERT: #{description}" if yield
end
def select_sales
puts "SELECT DATA"
@sales = 200
end
def set_sales
puts "SET SALES"
@target_sales = 100
end
events.rb
load 'setup.rb'
select_sales
set_sales
event "sales is enough" do
puts "SALES IS ENOUGH"
@target_sales < @sales
end
event "sales is soso" do
puts "SALES IS SOSO"
@target_sales == @sales
end
event "sales is not enough" do
puts "SALES IS NOT ENOUGH"
@target_sales > @sales
end
ruby events.rb
Here are result.
SELECT DATA
SET SALES
SALES IS ENOUGH
ALERT: sales is enough
SALES IS SOSO
SALES IS NOT ENOUGH