Top Level Namespace

Defined Under Namespace

Modules: DeclarativeCache, Enumerable, NotDefined, Observable2, OpenConstructor, RubyExt Classes: Array, AssertionError, BasicObject, FalseClass, GemHelper, Hash, Module, Must, MustAssertions, MustNot, NilClass, Object, OpenObject, String, Symbol, TrueClass, Tuple

Instance Method Summary collapse

Instance Method Details

#after(task_name, &block) ⇒ Object



69
70
71
# File 'lib/rake_ext.rb', line 69

def after task_name, &block
  task task_name, &block
end

#before(task_name, &block) ⇒ Object

before, after and remove task



58
59
60
61
62
63
64
65
66
67
# File 'lib/rake_ext.rb', line 58

def before task_name, &block
  $_task_counter ||= {}
  counter = ($_task_counter[task_name] ||= 0)
  before_task_name = "#{task_name}_before_#{counter}"
  
  task before_task_name, &block
  task task_name => before_task_name
  
  $_task_counter[task_name] += 1
end

#parse_project_gemfileObject

parse_dependencies_for



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/rake_ext/project.rb', line 8

def parse_project_gemfile
  required_gems, required_fake_gems = [], []
  gem_file = "#{project_dir}/lib/#{project[:name]}/gems.rb"

  if File.exist? gem_file
    # puts "Parsing gemfile #{gem_file}"
    
    code = File.open(gem_file){|f| f.read}
    
    stub_class = Class.new
    stub_class.send(:define_method, :gem){|*args| required_gems << args}
    stub_class.send(:define_method, :fake_gem){|*args| required_fake_gems << args}
    stub = stub_class.new
    stub.instance_eval code, __FILE__, __LINE__
  end
  
  return required_gems, required_fake_gems
end

#project(options = nil) ⇒ Object

project



82
83
84
85
86
87
88
89
90
91
92
93
# File 'lib/rake_ext.rb', line 82

def project options = nil  
  if options
    $_project = {}
    options.each{|k, v| $_project[k.to_sym] = v}
    
    $_project[:name] || raise("project name not defined")
    $_project[:official_name] ||= $_project[:name]
    
    require 'rake_ext/project'
  end
  $_project || raise("project not defined!")
end

#project_dirObject



50
51
52
# File 'lib/rake_ext.rb', line 50

def project_dir
  $_project_dir
end

#remove_task(task_name) ⇒ Object Also known as: delete_task



73
74
75
# File 'lib/rake_ext.rb', line 73

def remove_task(task_name)
  Rake.application.instance_variable_get('@tasks').delete(task_name.to_s)
end

#rspec(&block) ⇒ Object



27
28
29
30
# File 'lib/rspec_ext.rb', line 27

def rspec &block
  RSpec::Core::ExampleGroup.class_eval &block if block
  return RSpec::Core::ExampleGroup
end