class Holidays::Definition::Decorator::CustomMethodProc

Public Instance Methods

call(proc) click to toggle source
# File lib/holidays/definition/decorator/custom_method_proc.rb, line 5
def call(proc)
  validate!(proc)

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

Private Instance Methods

parse_arguments(args) click to toggle source
# File lib/holidays/definition/decorator/custom_method_proc.rb, line 21
def parse_arguments(args)
  a = args.join(", ")
  a[0..-1]
end
validate!(proc) click to toggle source
# File lib/holidays/definition/decorator/custom_method_proc.rb, line 15
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