class Holidays::Definition::Decorator::CustomMethodProc

def call(proc)

def call(proc)
  validate!(proc)
  eval("Proc.new { |#{parse_arguments(proc.arguments)}|
       #{proc.source}
  }")
end

def parse_arguments(args)

def parse_arguments(args)
  a = args.join(", ")
  a[0..-1]
end

def validate!(proc)

def validate!(proc)
  raise ArgumentError if proc.name.nil? || proc.name.empty?
  raise ArgumentError if proc.arguments.nil? || proc.arguments.empty?
  raise ArgumentError if proc.source.nil? || proc.source.empty?
end