class RBatch::Variables
@private
Attributes
vars[RW]
Public Class Methods
new(run_conf=nil)
click to toggle source
# File lib/rbatch/variables.rb, line 8 def initialize(run_conf=nil) @merged_opt = {} @vars = { :program_name => $PROGRAM_NAME , :program_path => File.expand_path($PROGRAM_NAME) , :program_base => File.basename($PROGRAM_NAME), :date => Time.now.strftime("%Y%m%d"), :time => Time.now.strftime("%H%M%S"), } @vars[:program_noext] = Pathname(@vars[:program_base]).sub_ext("").to_s case RUBY_PLATFORM when /mswin|mingw/ @vars[:host_name] = ENV["COMPUTERNAME"] ? ENV["COMPUTERNAME"] : "unknownhost" when /cygwin|linux/ @vars[:host_name] = ENV["HOSTNAME"] ? ENV["HOSTNAME"] : "unknownhost" else @vars[:host_name] = "unknownhost" end if ENV["RB_HOME"] @vars[:home_dir] = File.expand_path(ENV["RB_HOME"]) else @vars[:home_dir] = File.expand_path(File.join(File.dirname(@vars[:program_name]), "..")) end @vars[:run_conf_path] = File.join(@vars[:home_dir],".rbatchrc") @run_conf = RunConf.new(@vars[:run_conf_path]) # load run_conf @vars.merge!(@run_conf.opt) @vars[:common_config_path] = File.join(@vars[:conf_dir],@vars[:common_conf_name]) @vars[:common_config_erb_path] = @vars[:common_config_path] + ".erb" @vars[:config_path] = File.join(@vars[:conf_dir],@vars[:program_noext] + ".yaml") @vars[:config_erb_path] = @vars[:config_path] + ".erb" end
Public Instance Methods
[](key)
click to toggle source
# File lib/rbatch/variables.rb, line 42 def[](key) if @vars.has_key?(key) if @vars[key].class == String @vars[key] .gsub("<home>", @vars[:home_dir]) .gsub("<date>", @vars[:date]) .gsub("<time>", @vars[:time]) .gsub("<prog>", @vars[:program_noext]) .gsub("<host>", @vars[:host_name]) else @vars[key] end else raise RBatch::VariablesException, "no such key exist :" + key.to_s end end
merge(merged_opt)
click to toggle source
# File lib/rbatch/variables.rb, line 73 def merge(merged_opt) @merged_opt = merged_opt @vars.merge!(merged_opt) return self end
merge!(merged_opt)
click to toggle source
# File lib/rbatch/variables.rb, line 67 def merge!(merged_opt) @merged_opt = merged_opt @vars.merge!(merged_opt) return nil end
raw_value(key)
click to toggle source
# File lib/rbatch/variables.rb, line 59 def raw_value(key) if @vars.has_key?(key) @vars[key] else raise RBatch::VariablesException, "no such key exist :" + key.to_s end end