Top Level Namespace

Defined Under Namespace

Modules: Inetmgr Classes: String

Constant Summary collapse

IisConfiguration =
Inetmgr::IisConfiguration

Instance Method Summary collapse

Instance Method Details

#create_task(taskname, task_object_proc, &execute_body) ⇒ Object



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/rake/inetmgrtask.rb', line 33

def create_task(taskname, task_object_proc, &execute_body)
  taskclass = :"Inetmgr_TaskFor_#{taskname}"
  taskmethod = taskname.to_s.downcase.to_sym

  Object.class_eval("    def \#{taskmethod}(name=:\#{taskname}, *args, &block)\n      Inetmgr.const_get(\"\#{taskclass}\").new(name, *args, &block)\n    end\n  EOF\n\n  Inetmgr.class_eval do\n    const_set(taskclass, Class.new(Inetmgr::InetmgrTask) do\n      define_method :execute do |name|\n        task_object = task_object_proc.call\n\n        call_task_block(task_object)\n        execute_body.call(task_object) unless execute_body.nil?\n      end\n    end)\n  end\nend\n", __FILE__, __LINE__)