Guest User

Untitled

a guest
May 27th, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.80 KB | None | 0 0
  1. module Prawn
  2. module Chunkable
  3. def chunk(*a, &b)
  4. Prawn::Core::Chunk.new(*a, &b)
  5. end
  6.  
  7. def find_chunks(params)
  8. if params[:command]
  9. chunks.select { |c| c.command == params[:command] }
  10. end
  11. end
  12.  
  13. def to_pdf
  14. rendered = @chunks.map do |chunk|
  15. case result = chunk.content
  16. when Array
  17. result.map { |sub_chunk| sub_chunk.content }.join("\n")
  18. else
  19. result
  20. end
  21. end
  22.  
  23. rendered.join("\n")
  24. end
  25.  
  26. module ClassMethods
  27. def chunk_methods(*names)
  28. names.each do |name|
  29. module_eval %{
  30. def #{name}(*a, &b)
  31. chunks << #{name}!(*a, &b)
  32. end
  33. }
  34. end
  35. end
  36. end
  37.  
  38. def self.included(base)
  39. base.extend(ClassMethods)
  40. end
  41. end
  42. end
Add Comment
Please, Sign In to add comment