Class: Burke::GemTaskManager

Inherits:
Object
  • Object
show all
Defined in:
lib/burke/tasks/gems.rb

Constant Summary collapse

TASKS =
{}

Class Method Summary collapse

Class Method Details

.add_task(conf) ⇒ Object



76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
# File 'lib/burke/tasks/gems.rb', line 76

def self.add_task conf
  gemspec = conf.gemspec
  name = conf.task_name
  pkg_dir = conf.package_dir
  
  unless Rake::Task.tasks.find {|t| t.name == 'gems'}
    desc "Build gems for all targets"
  end
  task(:gems => name)
  
  unless Rake::Task.tasks.find {|t| t.name == name}
    desc "Build gem for target '#{gemspec.platform}'"
  end
  task(name) do |t|
    conf.before_build.call gemspec unless conf.before_build.nil?
    builder = Gem::Builder.new(gemspec)
    builder.build
    verbose true do
      mkdir pkg_dir unless File.exists? pkg_dir
      mv conf.gem_file, File.join(pkg_dir, conf.gem_file)
    end
    conf.after_build.call gemspec unless conf.after_build.nil?
  end
  
  TASKS[gemspec.platform.to_s] = conf
end

.task_for_this_platformObject



103
104
105
106
107
108
109
110
111
112
113
114
# File 'lib/burke/tasks/gems.rb', line 103

def self.task_for_this_platform
  platform = Gem::Platform.new(RUBY_PLATFORM).to_s
  name = nil
  
  if TASKS.key? platform
    name = platform
  elsif TASKS.key? 'ruby'
    name = "ruby"
  end
  
  TASKS[name]
end