LoginSignup
0
0

More than 5 years have passed since last update.

DSL Study in ruby2

Posted at

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

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0