module Cardio::ScriptLoader::ClassMethods

modularize for reusing in decko

Constants

RUBY

Attributes

script_name[RW]

Public Instance Methods

continue?() click to toggle source
# File lib/cardio/script_loader.rb, line 39
def continue?
  in_application? || in_application_subdirectory?
end
exec!() click to toggle source
# File lib/cardio/script_loader.rb, line 17
def exec!
  cwd = Dir.pwd
  return unless continue?

  exec_script
  recurse cwd
rescue SystemCallError
  # could not chdir, no problem just return
end
exec_script() click to toggle source
# File lib/cardio/script_loader.rb, line 35
def exec_script
  exec RUBY, script, *ARGV if in_application?
end
in_application?() click to toggle source
# File lib/cardio/script_loader.rb, line 43
def in_application?
  File.exist?(script)
end
in_application_subdirectory?(path=Pathname.new(Dir.pwd)) click to toggle source
# File lib/cardio/script_loader.rb, line 47
def in_application_subdirectory? path=Pathname.new(Dir.pwd)
  File.exist?(File.join(path, script)) ||
    !path.root? && in_application_subdirectory?(path.parent)
end
recurse(cwd) click to toggle source
# File lib/cardio/script_loader.rb, line 27
def recurse cwd
  Dir.chdir("..") do
    # Recurse in a chdir block: if the search fails we want to be sure
    # the application is generated in the original working directory.
    exec! unless cwd == Dir.pwd
  end
end
script() click to toggle source
# File lib/cardio/script_loader.rb, line 13
def script
  File.join "script", script_name
end