fork download
  1. require 'erb'
  2. require 'ostruct'
  3.  
  4. class Dummy
  5. def initialize
  6. @pictures = [
  7. OpenStruct.new(tags: [
  8. OpenStruct.new(name: 'dog'),
  9. OpenStruct.new(name: 'puppy')
  10. ]),
  11. OpenStruct.new(tags: [
  12. OpenStruct.new(name: 'animal'),
  13. OpenStruct.new(name: 'puppy')
  14. ])
  15. ]
  16. end
  17.  
  18. def render
  19. template = ERB.new <<-EOF
  20. <ul>
  21. <% @pictures.flat_map { |pic| pic.tags.map(&:name) }.uniq.each do |name| %>
  22. <li>
  23. <%= name %>
  24. </li>
  25. <% end %>
  26. </ul>
  27. EOF
  28. template.result(binding)
  29. end
  30. end
  31.  
  32. puts Dummy.new.render
Success #stdin #stdout 0.02s 7636KB
stdin
Standard input is empty
stdout
    <ul>
      
      <li>
        dog
      </li>
      
      <li>
        puppy
      </li>
      
      <li>
        animal
      </li>
      
    </ul>