Class: Burke::GemTaskManager
- Inherits:
-
Object
- Object
- Burke::GemTaskManager
- Defined in:
- lib/burke.rb
Constant Summary collapse
- TASKS =
{}
Class Method Summary collapse
- .add_task(conf) ⇒ Object
- .has_task?(platform) ⇒ Boolean
- .install_task ⇒ Object
- .task_for_this_platform ⇒ Object
Class Method Details
.add_task(conf) ⇒ Object
216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 |
# File 'lib/burke.rb', line 216 def self.add_task conf spec = conf.gemspec name = "gem:#{spec.platform}" pkg_dir = Burke.settings.gems.package_dir if TASKS.empty? desc "Build gems for all targets" end task :gems => name unless ::Rake.application.last_comment desc "Build gem for target '#{spec.platform}'" end task(name) do conf.before.call spec unless conf.before.nil? builder = Gem::Builder.new(spec) 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.call spec unless conf.after.nil? end TASKS[spec.platform.to_s] = conf end |
.has_task?(platform) ⇒ Boolean
244 245 246 |
# File 'lib/burke.rb', line 244 def self.has_task? platform TASKS.has_key? platform end |
.install_task ⇒ Object
261 262 263 264 265 266 267 268 |
# File 'lib/burke.rb', line 261 def self.install_task t = task_for_this_platform desc "Install gem for this platform" task 'install' => [t.task_name] do Gem::Installer.new(File.join(t.package_dir, t.gem_file)).install end end |
.task_for_this_platform ⇒ Object
248 249 250 251 252 253 254 255 256 257 258 259 |
# File 'lib/burke.rb', line 248 def self.task_for_this_platform platform = Gem::Platform.new(RUBY_PLATFORM).to_s name = nil if GemTaskManager.has_task? platform name = platform elsif GemTaskManager.has_task? 'ruby' name = "ruby" end TASKS[name] end |