Class: DirectBind::Rake::InstallTask

Inherits:
Rake::TaskLib
  • Object
show all
Defined in:
lib/direct_bind/rake.rb

Constant Summary collapse

DIRECT_BIND_SOURCES =
["direct-bind.h", "direct-bind.c"]
DIRECT_BIND_SOURCES_PATH =
File.join(Gem.loaded_specs["direct-bind"].full_gem_path, "dist")

Instance Method Summary collapse

Constructor Details

#initialize(extension_name) ⇒ InstallTask

Returns a new instance of InstallTask.



37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/direct_bind/rake.rb', line 37

def initialize(extension_name)
  target_extension_path = File.join(Dir.pwd, "ext", extension_name)

  desc "Install direct_bind files into extension"
  task(:"direct-bind:install") do
    DIRECT_BIND_SOURCES.each do |file_name|
      from_path = File.join(DIRECT_BIND_SOURCES_PATH, file_name)
      to_path = File.join(target_extension_path, file_name)

      FileUtils.cp(from_path, to_path) unless already_up_to_date?(from_path, to_path)
    end
  end
end