Top Level Namespace
- Includes:
- Rake::DSL
Defined Under Namespace
Modules: Dev Classes: Array, Hash, String
Constant Summary collapse
- DEV_FILEPATH =
File.dirname(__FILE__)
- DEV_ROOT =
Dev::Environment.dev_root
- DEV_NO_DEFAULT_TASK =
1- TASKS =
Dev::Tasks.new
- DEV =
(nil,true)
Dev::Project.new
- CMD =
module Dev
Dev::Commands.new()
Instance Method Summary collapse
- #generate_task_hash(project) ⇒ Object
- #generate_tasks(project) ⇒ Object
-
#puts_debug(msg) ⇒ Object
if DEV_DEBUG is defined, puts_debug will send message to the console.
-
#puts_debug_verbose(msg) ⇒ Object
if DEV_DEBUG_VERBOSE is defined, puts_debug_verbose will send message to the console.
- #task_exists?(name) ⇒ Boolean
- #task_start(task_name) ⇒ Object
Instance Method Details
#generate_task_hash(project) ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/dev/Tasks.rb', line 27 def generate_task_hash(project) task_hash = { :info=> { :desc=> 'display information about the rakefile' }, #:test=> { :desc=> 'run unit tests' }, :loc=> { :desc=> 'count the lines of code' }, #:setup=> { :desc=> 'setup the project environment' }, :pull=> { :desc=> 'update dependencies in rakefile.rb to latest revision' }, :deep_pull=> { :desc=> 'pull and rake dependencies (nested dependencies first)' }, :check=> { :desc=> 'checks if the project default task may be skipped' } } if(!CMD[:setup].nil? && CMD[:setup].length > 0) task_hash[:setup]={ :desc=> 'setup the project environment' } end if(project[:scm_type]=="svn" || project[:scm_type]=="git") task_hash[:add] ={ :desc=> 'add files defined by src_glob to source code management' } task_hash[:commit]={ :desc=> 'commit changes to source code management' } task_hash[:update]={ :desc=> 'updates changes from source code management' } end task_hash[:compile] = { :desc=> 'compile source code' } if CMD.has_key?(:compile) && CMD[:compile].length > 0 #project.has_key?(:compile) && project[:compile].length > 0 task_hash[:replace] = { :desc=> 'replace text' } if CMD.has_key?(:replace) && CMD[:replace].length > 0 task_hash[:test]={:desc=>'run unit tests'} if CMD.has_key?(:test) && CMD[:test].length > 0 if project[:type]=="gem" || project[:type]=="ruby" task_hash[:features] = { :desc=> 'tests cucumber features' } end return task_hash end |
#generate_tasks(project) ⇒ Object
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
# File 'lib/dev/Tasks.rb', line 57 def generate_tasks(project) puts_debug "generate_tasks" hash=generate_task_hash project hash.each do |k,v| name=k.to_s puts_debug "checking if task #{name} should be autogenerated" desc=nil desc=v[:desc] if v.has_key?(:desc) #ruby="task :#{name} do; task_start '#{name}'; PROJECT.#{name}; end" if PROJECT.respond_to?(name) ruby="task :#{name} do; task_start '#{name}'; CMD.#{name}; end" ruby="desc '#{desc}'; " + ruby unless desc.nil? if !task_exists?(name) if(RUBY_VERSION != "1.8.7") puts_debug "defining task #{name} with '#{ruby}'" eval(ruby) end end end # generate default task if(!defined?(DEV_NO_DEFAULT_TASK) && RUBY_VERSION != "1.8.7") Rake.application.instance_variable_get('@tasks').delete('default') task_list="" default_task_order=["check","setup","replace","pre_compile","compile","post_compile","pre_test","test","post_test","add","commit","update","finalize"] if(defined?(DEFAULT_TASK_ORDER)) default_task_order = DEFAULT_TASK_ORDER end default_task_order.each {|t| if(hash.has_key?(t.to_sym) || task_exists?(t) || (CMD.has_key?(t.to_sym) && CMD[t.to_sym].length > 0) ) task_list = "#{task_list}," if task_list.length > 0 task_list = "#{task_list} :#{t}" default_code = "#{default_code} :#{t}," end } desc="desc '#{task_list}'".gsub(' ',"").gsub(':',"") eval("#{desc}; task :default => [#{task_list}] do; task_start('default'); end") end end |
#puts_debug(msg) ⇒ Object
if DEV_DEBUG is defined, puts_debug will send message to the console
32 33 34 35 36 |
# File 'lib/dev.rb', line 32 def puts_debug msg if(defined?(DEV_DEBUG)) puts msg end end |
#puts_debug_verbose(msg) ⇒ Object
if DEV_DEBUG_VERBOSE is defined, puts_debug_verbose will send message to the console
42 43 44 45 46 |
# File 'lib/dev.rb', line 42 def puts_debug_verbose msg if(defined?(DEV_DEBUG_VERBOSE)) puts msg end end |
#task_exists?(name) ⇒ Boolean
98 99 100 101 102 103 104 |
# File 'lib/dev/Tasks.rb', line 98 def task_exists?(name) if("#{RUBY_VERSION}">"1.9.1") return Rake::Task.task_defined?(name) else return false end end |
#task_start(task_name) ⇒ Object
10 11 12 13 14 15 16 17 |
# File 'lib/dev/Tasks.rb', line 10 def task_start(task_name) puts " " if(RUBY_VERSION == "1.8.7") puts "[:#{task_name}]" + " " + Dir.pwd else puts Rainbow("[:#{task_name}]").foreground(:yellow).bright + " " + Dir.pwd end end |