Guest User

Untitled

a guest
May 25th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.63 KB | None | 0 0
  1. require 'mustache'
  2.  
  3. module ExistentialMethodMissing
  4. def method_missing(method, *args)
  5. return super unless method.to_s =~ /\?$/
  6. val = send(method.to_s.chomp('?'))
  7. val.respond_to?(:empty?) ? !val.empty? : !!val
  8. end
  9.  
  10. def respond_to?(method)
  11. super method.to_s.chomp('?')
  12. end
  13. end
  14.  
  15. class MyView < Mustache
  16. include ExistentialMethodMissing
  17. self.template = <<template
  18. {{# people?}}
  19. <ul>
  20. {{# people}}
  21. <li>{{ name }}</li>
  22. {{/ people}}
  23. </ul>
  24. {{/ people?}}
  25. template
  26.  
  27. def people
  28. return [
  29. { :name => "Chris" },
  30. { :name => "Bob" },
  31. { :name => "Mislav" }
  32. ]
  33. end
  34. end
  35.  
  36. puts MyView.render
Add Comment
Please, Sign In to add comment