tasks/railroady.rake in railroady-1.0.9 vs tasks/railroady.rake in railroady-1.1.0

- old
+ new

@@ -6,10 +6,13 @@ # * The `sed` command-line utility, which should already be available on all sane UNIX systems. # # Author: Preston Lee, http://railroady.prestonlee.com # wrap helper methods so they don't conflict w/ methods on Object + +require 'rbconfig' + module RailRoady class RakeHelpers def self.format @@DIAGRAM_FORMAT ||= 'svg' end @@ -17,20 +20,32 @@ # Returns an absolute path for the following file. def self.full_path(name = 'test.txt') f = File.join(Rails.root.to_s.gsub(' ', '\ '), 'doc', name) f.to_s end + + def self.sed + regex = 's/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g' + case RbConfig::CONFIG['host_os'] + when /linux|cygwin/ + return "sed -r '#{regex}'" + when /mac|darwin|bsd/ + return "sed -E '#{regex}'" + else + raise NotImplementedError + end + end + end end namespace :diagram do @MODELS_ALL = RailRoady::RakeHelpers.full_path("models_complete.#{RailRoady::RakeHelpers.format}").freeze @MODELS_BRIEF = RailRoady::RakeHelpers.full_path("models_brief.#{RailRoady::RakeHelpers.format}").freeze @CONTROLLERS_ALL = RailRoady::RakeHelpers.full_path("controllers_complete.#{RailRoady::RakeHelpers.format}").freeze @CONTROLLERS_BRIEF = RailRoady::RakeHelpers.full_path("controllers_brief.#{RailRoady::RakeHelpers.format}").freeze - - @SED = 'sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g"' + @SED = RailRoady::RakeHelpers.sed namespace :models do desc 'Generates an class diagram for all models.' task :complete do