Guest User

Untitled

a guest
Jun 20th, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.59 KB | None | 0 0
  1. require 'ripper'
  2. module Req
  3. module_function
  4. def libs(code)
  5. Ripper.lex(code).
  6. map {|pos, event, value| [event, value] }.
  7. select {|event, value| event == :on_const or event == :on_op && value == '::' }.
  8. map {|event, value| value }.
  9. unshift(nil).
  10. each_cons(2).inject([]) {|memo, (before, e)| before == '::' || e == '::' ? memo : memo << e } -
  11. Object.constants.map(&:to_s)
  12. end
  13.  
  14. def format(libs)
  15. libs.map {|l| "require '#{l.downcase}'" }.join "\n"
  16. end
  17. end
  18.  
  19. code = <<EOF
  20. Nokogiri::HTML('<b>hello Twitter</b>')
  21. p Time.now
  22. EOF
  23.  
  24. include Req
  25. puts format libs code
Add Comment
Please, Sign In to add comment