Guest User

Untitled

a guest
Jul 23rd, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.12 KB | None | 0 0
  1. module TimeSet
  2. module TwentyFourHour
  3. attr :twenty_four_hour_times
  4.  
  5. def self.included(klass)
  6. klass.class_eval do
  7. extend ClassMethods
  8. include InstanceMethods
  9. end
  10. end
  11.  
  12. module ClassMethods
  13. def twenty_four_hour_time_for(*args)
  14. args.each do |attribute|
  15. attr_writer "#{attribute}_hour", "#{attribute}_minute", "#{attribute}_meridian"
  16.  
  17. define_method "#{attribute}_hour" do
  18. time = eval("#{attribute}") ? eval("#{attribute}") : Time.now
  19. (time.hour > 12 ? time.hour - 12 : time.hour).to_s
  20. end
  21.  
  22. define_method "#{attribute}_minute" do
  23. eval("#{attribute}") ? eval("#{attribute}").min.to_s : "00"
  24. end
  25.  
  26. define_method "#{attribute}_meridian" do
  27. if eval("#{attribute}")
  28. eval("#{attribute}").hour < 12 ? "AM" : "PM"
  29. else
  30. Time.now.hour < 12 ? "AM" : "PM"
  31. end
  32. end
  33. end
  34. end
  35. end
  36.  
  37. module InstanceMethods
  38. # ...
  39. end
  40. end
  41. end
Add Comment
Please, Sign In to add comment