Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- require 'ripper'
- module Req
- module_function
- def libs(code)
- Ripper.lex(code).
- map {|pos, event, value| [event, value] }.
- select {|event, value| event == :on_const or event == :on_op && value == '::' }.
- map {|event, value| value }.
- unshift(nil).
- each_cons(2).inject([]) {|memo, (before, e)| before == '::' || e == '::' ? memo : memo << e } -
- Object.constants.map(&:to_s)
- end
- def format(libs)
- libs.map {|l| "require '#{l.downcase}'" }.join "\n"
- end
- end
- code = <<EOF
- Nokogiri::HTML('<b>hello Twitter</b>')
- p Time.now
- EOF
- include Req
- puts format libs code
Add Comment
Please, Sign In to add comment