I’m implementing build automation in Ruby as a ‘learn Ruby’ exercise.
I wanted to post the following code and solicit feedback on any idioms
I might have missed with regards to text processing with Ruby. The
code works–I’m just wondering if it should be shorter, or smarter,
or…
Thanks,
Art
#!/usr/bin/env ruby
VERSION_HEX=ARGV[0]
File.open(“iDrum_prefix.h.tmp”, “w”) do |ofile|
File.open(“iDrum_prefix.h”) do |file|
file.each do |line|
if line =~ /^#define kIDComponentVersion\t*(.*)/
ofile.puts line.sub($1, “#{VERSION_HEX}”)
else
ofile.puts line
end
end
end
end
I’m implementing build automation in Ruby as a ‘learn Ruby’ exercise.
I wanted to post the following code and solicit feedback on any idioms
I might have missed with regards to text processing with Ruby. The
code works–I’m just wondering if it should be shorter, or smarter,
or…
That is nice and idiomatic from my perspective. In fact I’ve written
code much like that to do what you are doing. While there might be
various tricks and hacks to make it shorter, they probably aren’t
needed.
def do_substitution( filename )
File.open("#{filename}.tmp", “w”) do |ofile|
File.open("#{filename}") do |file|
file.each do |line|
yield ofile, line
end
end
end
File.rename("#{filename}.tmp", “#{filename}”)
end
Which is probably overkill for my needs, but got me learning about
blocks and is flexible. And fun!
Thanks again.
Art
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.