lib/zemax.rb in zemax-0.1.0 vs lib/zemax.rb in zemax-0.2.0
- old
+ new
@@ -1,31 +1,62 @@
-p 'boo'
\ No newline at end of file
+module Zemax
+ require 'pathname'
+
+ VERSION_FILE = Pathname.new(__FILE__).dirname + '../VERSION' # :nodoc:
+ VERSION = VERSION_FILE.exist? ? VERSION_FILE.read.strip : nil
+
+ # Require ruby source file(s). Lib should be either file name or glob
+ # Accepts following options:
+ # :file:: Libs are required relative to this file - defaults to __FILE__
+ # :dir:: Required libs are located under this dir name - defaults to gem name
+ #
+ def self.require_lib( lib, opts={} )
+ file = Pathname.new(opts[:file] || __FILE__)
+ name = file.dirname + (opts[:dir] || file.basename('.*')) + lib.gsub(/(?<!.rb)$/, '.rb')
+ Pathname.glob(name.to_s).sort.each {|rb| require rb}
+ end
+
+ # Requires ruby source file(s). Accepts either single name or Array of filenames/globs
+ # Accepts following options:
+ # :file:: Libs are required relative to this file - defaults to __FILE__
+ # :dir:: Required libs are located under this dir name - defaults to gem name
+ #
+ def self.require_libs( libs, opts={} )
+ [libs].flatten.each {|lib| require_lib lib, opts }
+ end
+
+end # module Zemax
+
+# Require all ruby source files located under directory lib/zemax
+# If you need files in specific order, you should specify it here before the glob
+Zemax.require_libs %W[**/*]
+