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