Skip to content

Instantly share code, notes, and snippets.

@timruffles
Created January 7, 2011 11:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save timruffles/769378 to your computer and use it in GitHub Desktop.
Save timruffles/769378 to your computer and use it in GitHub Desktop.
refactor a huge 'functions' javascript file into separate files
current_class = nil
classes = open(ARGV[0]).read.split("\n").inject({}) do |classes, line|
if line =~ /^var (\w+) = function.*/
current_class = $1
elsif line =~ /^[\s\t]*$/
skip = true
end
(classes[current_class] ||= []) << line unless skip
classes
end
`mkdir -p javascript_refactoring`
def klass_to_fn klass
klass.gsub(/[a-z]?[A-Z]/) {|c| c =~ /^[a-z]/ ? c[0,1] + '_' + c[1,1].downcase : c.downcase}
end
classes.each_pair do |klass, code|
File.open("javascript_refactoring/#{klass_to_fn(klass)}.js",'w+') do |io|
io << code.join("\n")
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment