lib/taza.rb in taza-0.5.0 vs lib/taza.rb in taza-0.8.0
- old
+ new
@@ -1,13 +1,52 @@
-require 'taza/generators'
require 'taza/page'
require 'taza/site'
-require 'taza/tasks'
+require 'taza/browser'
+require 'taza/settings'
+require 'taza/flow'
module Taza
- VERSION = '0.5.0'
-
+ VERSION = '0.8.0'
+
def self.windows?
PLATFORM.include?("mswin")
end
-
+ def self.osx?
+ PLATFORM.include?("darwin")
+ end
+end
+
+module ForwardInitialization
+ module ClassMethods
+ def new(*args,&block)
+ const_get("#{name.split("::").last}").new(*args,&block)
+ end
+ end
+
+ def self.included(klass)
+ klass.extend(ClassMethods)
+ end
+end
+
+# instance_exec comes with >1.8.7 thankfully
+if VERSION <= '1.8.6'
+ class Object
+ module InstanceExecHelper; end
+ include InstanceExecHelper
+ def instance_exec(*args, &block)
+ begin
+ old_critical, Thread.critical = Thread.critical, true
+ n = 0
+ n += 1 while respond_to?(mname="__instance_exec#{n}")
+ InstanceExecHelper.module_eval{ define_method(mname, &block) }
+ ensure
+ Thread.critical = old_critical
+ end
+ begin
+ ret = send(mname, *args)
+ ensure
+ InstanceExecHelper.module_eval{ remove_method(mname) } rescue nil
+ end
+ ret
+ end
+ end
end