def method_missing(name, *args)
      add_regex = %r{
        ^([ib])(?:n|ack)?
        (?:\.|_|-| )?
        (\d+)
        (?:\.|_|-| )?
        ([dwmy])
        (?:ays?|eeks?|onths?|ears?)?$
      }x

      weekday_regex = %r{
        ^(tod|tom|y)(?:a?y?|o?r?r?o?w?|e?s?t?e?r?d?a?y?)?$
      }xi
      
      next_weekday_regex = %r{
        ^(n|p)(?:e?x?t|r?e?v?i?o?u?s?)?
        (?:\.|_| |-)?
        (mo|tu|we|th|fr|sa|su)
        (?:n?|e?s?|d?n?e?s?|u?r?s?|i?|t?u?r?|n?)(?:d?a?y?)$ 
      }xi

      next_weekday_in_regex = %r{
        ^(mo|tu|we|th|fr|sa|su)
        (?:n?|e?s?|d?n?e?s?|u?r?s?|i?|t?u?r?|n?)(?:d?a?y?)(?:_?)
        (i|b)
        (?:n?|a?c?k?)(?:_?)
        (\d+)(?:_?)([dwmy])(?:a?y?s?|e?e?k?s?|o?n?t?h?s?|e?a?r?s?)$
      }xi

      return add($1, $2, $3)      if name =~ add_regex
      return weekday($1)          if name =~ weekday_regex
      return next_weekday($1, $2) if name =~ next_weekday_regex
      return next_weekday_in($1, $2, $3, $4) if name =~ next_weekday_in_regex
      super 
    end
def method_missing(name, *args)
      add_regex = %r{
        ^([ib])(?:n|ack)?
        (?:\.|_|-| )?
        (\d+)
        (?:\.|_|-| )?
        ([dwmy])
        (?:ays?|eeks?|onths?|ears?)?$
      }x

      weekday_regex = %r{
        ^(tod|tom|y)(?:a?y?|o?r?r?o?w?|e?s?t?e?r?d?a?y?)?$
      }xi
      
      next_weekday_regex = %r{
        ^(n|p)(?:e?x?t|r?e?v?i?o?u?s?)?
        (?:\.|_| |-)?
        (mo|tu|we|th|fr|sa|su)
        (?:n?|e?s?|d?n?e?s?|u?r?s?|i?|t?u?r?|n?)(?:d?a?y?)$ 
      }xi

      next_weekday_in_regex = %r{
        ^(mo|tu|we|th|fr|sa|su)
        (?:n?|e?s?|d?n?e?s?|u?r?s?|i?|t?u?r?|n?)(?:d?a?y?)(?:_?)
        (i|b)
        (?:n?|a?c?k?)(?:_?)
        (\d+)(?:_?)([dwmy])(?:a?y?s?|e?e?k?s?|o?n?t?h?s?|e?a?r?s?)$
      }xi

      return add($1, $2, $3)      if name =~ add_regex
      return weekday($1)          if name =~ weekday_regex
      return next_weekday($1, $2) if name =~ next_weekday_regex
      return next_weekday_in($1, $2, $3, $4) if name =~ next_weekday_in_regex
      super 
    end
Creates a new Temp and initializes it with the current date if no date
 is provided
 Provides the date calculation methods dynamically