Module: Jetel::Helper
- Defined in:
- lib/jetel/helpers/os_helper.rb,
lib/jetel/helpers/general_helper.rb
Class Method Summary collapse
- .erb(template, vars) ⇒ Object
- .erb_template(file, vars) ⇒ Object
- .get_loader(uri) ⇒ Object
- .sanitize(str) ⇒ Object
- .target_dir(modul, dir, source) ⇒ Object
-
.which(cmd) ⇒ Object
Cross-platform way of finding an executable in the $PATH.
Class Method Details
.erb(template, vars) ⇒ Object
51 52 53 |
# File 'lib/jetel/helpers/general_helper.rb', line 51 def erb(template, vars) ERB.new(template).result(OpenStruct.new(vars).instance_eval { binding }) end |
.erb_template(file, vars) ⇒ Object
55 56 57 58 |
# File 'lib/jetel/helpers/general_helper.rb', line 55 def erb_template(file, vars) template = File.open(file, 'r').read ERB.new(template).result(OpenStruct.new(vars).instance_eval { binding }) end |
.get_loader(uri) ⇒ Object
41 42 43 44 45 46 47 48 49 |
# File 'lib/jetel/helpers/general_helper.rb', line 41 def get_loader(uri) loaders = Loaders.loaders loader_schema = uri.split(':/').first.downcase res = loaders.find do |loader| loader[:class_name].downcase === loader_schema end res[:klass].new(uri) end |
.sanitize(str) ⇒ Object
60 61 62 |
# File 'lib/jetel/helpers/general_helper.rb', line 60 def sanitize(str) I18n.transliterate(str).gsub(/[^0-9a-z_\-]/i, '_') end |
.target_dir(modul, dir, source) ⇒ Object
35 36 37 38 39 |
# File 'lib/jetel/helpers/general_helper.rb', line 35 def target_dir(modul, dir, source) klass = modul.class.name.split('::').last source_name = Helper.sanitize(source[:name]) File.join(dir || Config[:DATA_DIRECTORY], klass, source_name) end |
.which(cmd) ⇒ Object
Cross-platform way of finding an executable in the $PATH.
which('ruby') #=> /usr/bin/ruby
29 30 31 32 33 34 35 36 37 38 |
# File 'lib/jetel/helpers/os_helper.rb', line 29 def which(cmd) exts = ENV['PATHEXT'] ? ENV['PATHEXT'].split(';') : [''] ENV['PATH'].split(File::PATH_SEPARATOR).each do |path| exts.each { |ext| exe = File.join(path, "#{cmd}#{ext}") return exe if File.executable?(exe) && !File.directory?(exe) } end return nil end |