class BigKeeper::BigkeeperParser
Bigkeeper file parser
Public Class Methods
config()
click to toggle source
# File lib/big_keeper/util/bigkeeper_parser.rb, line 182 def self.config @@config end
definitely_exists?(path)
click to toggle source
# File lib/big_keeper/util/bigkeeper_parser.rb, line 53 def self.definitely_exists? path folder = File.dirname path filename = File.basename path # Unlike Ruby IO, ls, and find -f, this technique will fail to locate the file if the case is wrong: not %x( find "#{folder}" -name "#{filename}" ).empty? end
home_git()
click to toggle source
# File lib/big_keeper/util/bigkeeper_parser.rb, line 124 def self.home_git() @@config[:home][:git] end
home_name()
click to toggle source
# File lib/big_keeper/util/bigkeeper_parser.rb, line 120 def self.home_name @@config[:name] end
home_pulls()
click to toggle source
# File lib/big_keeper/util/bigkeeper_parser.rb, line 128 def self.home_pulls() @@config[:home][:pulls] end
module_full_path(home_path, user_name, module_name)
click to toggle source
# File lib/big_keeper/util/bigkeeper_parser.rb, line 140 def self.module_full_path(home_path, user_name, module_name) if @@config[:users] \ && @@config[:users][user_name] \ && @@config[:users][user_name][:pods] \ && @@config[:users][user_name][:pods][module_name] \ && @@config[:users][user_name][:pods][module_name][:path] @@config[:users][user_name][:pods][module_name][:path] else File.expand_path("#{home_path}/../#{module_name}") end end
module_git(module_name)
click to toggle source
# File lib/big_keeper/util/bigkeeper_parser.rb, line 164 def self.module_git(module_name) @@config[:modules][module_name][:git] end
module_names()
click to toggle source
# File lib/big_keeper/util/bigkeeper_parser.rb, line 178 def self.module_names @@config[:modules].keys end
module_path(user_name, module_name)
click to toggle source
# File lib/big_keeper/util/bigkeeper_parser.rb, line 152 def self.module_path(user_name, module_name) if @@config[:users] \ && @@config[:users][user_name] \ && @@config[:users][user_name][:pods] \ && @@config[:users][user_name][:pods][module_name] \ && @@config[:users][user_name][:pods][module_name][:path] @@config[:users][user_name][:pods][module_name][:path] else "../#{module_name}" end end
module_pulls(module_name)
click to toggle source
# File lib/big_keeper/util/bigkeeper_parser.rb, line 168 def self.module_pulls(module_name) @@config[:modules][module_name][:pulls] end
parse(bigkeeper)
click to toggle source
# File lib/big_keeper/util/bigkeeper_parser.rb, line 36 def self.parse(bigkeeper) if @@config.empty? Logger.error("Can't find a Bigkeeper file in current directory.") if !BigkeeperParser.definitely_exists?(bigkeeper) content = File.read bigkeeper content.gsub!(/version\s/, 'BigKeeper::version ') content.gsub!(/user\s/, 'BigKeeper::user ') content.gsub!(/home\s/, 'BigKeeper::home ') content.gsub!(/pod\s/, 'BigKeeper::pod ') content.gsub!(/modules\s/, 'BigKeeper::modules ') content.gsub!(/source\s/, 'BigKeeper::source ') eval content # p @@config end end
parse_home(name, params)
click to toggle source
# File lib/big_keeper/util/bigkeeper_parser.rb, line 79 def self.parse_home(name, params) @@config[:home] = params @@config[:name] = name end
parse_modules()
click to toggle source
# File lib/big_keeper/util/bigkeeper_parser.rb, line 110 def self.parse_modules modules = @@config[:modules] modules = {} if modules.nil? @@config[:modules] = modules end
parse_modules_pod(name, params)
click to toggle source
# File lib/big_keeper/util/bigkeeper_parser.rb, line 104 def self.parse_modules_pod(name, params) modules = @@config[:modules] modules[name] = params @@config[:modules] = modules end
parse_pod(name, params)
click to toggle source
# File lib/big_keeper/util/bigkeeper_parser.rb, line 84 def self.parse_pod(name, params) if params[:path] parse_user_pod(name, params) elsif params[:git] parse_modules_pod(name, params) else Logger.error(%(There should be ':path =>' or ':git =>' for pod #{name})) end end
parse_source(name)
click to toggle source
# File lib/big_keeper/util/bigkeeper_parser.rb, line 64 def self.parse_source(name) sources = [] sources << @@config[:source] sources << name @@config[:source] = sources end
parse_user(name)
click to toggle source
# File lib/big_keeper/util/bigkeeper_parser.rb, line 71 def self.parse_user(name) @@current_user = name users = @@config[:users] users = {} if users.nil? users[name] = {} @@config[:users] = users end
parse_user_pod(name, params)
click to toggle source
# File lib/big_keeper/util/bigkeeper_parser.rb, line 94 def self.parse_user_pod(name, params) users = @@config[:users] user = users[@@current_user] pods = user[:pods] pods = {} if pods.nil? pods[name] = params user[:pods] = pods @@config[:users] = users end
parse_version(name)
click to toggle source
# File lib/big_keeper/util/bigkeeper_parser.rb, line 60 def self.parse_version(name) @@config[:version] = name end
sourcemodule_path()
click to toggle source
# File lib/big_keeper/util/bigkeeper_parser.rb, line 132 def self.sourcemodule_path if @@config[:source] == nil return "" else @@config[:source].join(",").reverse.chop.reverse end end
verify_modules(modules)
click to toggle source
# File lib/big_keeper/util/bigkeeper_parser.rb, line 172 def self.verify_modules(modules) modules.each do |item| Logger.error("Can not find module #{item} in Bigkeeper file") unless @@config[:modules][item] end end
version()
click to toggle source
# File lib/big_keeper/util/bigkeeper_parser.rb, line 116 def self.version @@config[:version] end