Skip to content

Instantly share code, notes, and snippets.

@lencioni
Forked from trotzig/unchain_vars.rb
Last active August 29, 2015 14:09
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 lencioni/b638689132e6c3a665c4 to your computer and use it in GitHub Desktop.
Save lencioni/b638689132e6c3a665c4 to your computer and use it in GitHub Desktop.
# Converts global chained `var`s into single-line vars.
#
# Example:
#
# >> cat app/assets/javascripts/test.js
# var A = require('a'),
# B = require('b'),
# C = B.C;
#
# var D = function() {};
#
# >> ruby unchain_vars.rb app/assets/javascripts/**/*.js
#
# >> cat app/assets/javascripts/test.js
# var A = require('a');
# var B = require('b');
# var C = B.C;
#
# var D = function() {};
#
filenames = ARGV
filenames.each do |filename|
active = false
result = ''
File.open(filename).each do |line|
if line =~ /^var .*,$/
active = true
end
if active
result << line.gsub(/^(var | +)(.+)[,;]$/, 'var \2;')
else
result << line
end
if active && line =~ /;$/
active = false
end
end
File.write(filename, result)
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment