class Canals::Repository
Constants
- ENVIRONMENTS
- TUNNELS
Public Class Methods
new(root = nil)
click to toggle source
# File lib/canals/repository.rb, line 15 def initialize(root = nil) @root = root @repo = load_repository(repo_file) end
Public Instance Methods
add(options, save=true)
click to toggle source
# File lib/canals/repository.rb, line 30 def add(options, save=true) @repo[TUNNELS][options.name.to_sym] = options.to_hash if options.env_name.nil? && !options.env.nil? && options.env.is_default? @repo[TUNNELS][options.name.to_sym][:env] = options.env.name end save! if save end
add_environment(environment, save=true)
click to toggle source
# File lib/canals/repository.rb, line 53 def add_environment(environment, save=true) if environment.is_default? @repo[ENVIRONMENTS].each { |name, env| env.delete(:default) } end if @repo[ENVIRONMENTS].empty? environment.default = true end @repo[ENVIRONMENTS][environment.name.to_sym] = environment.to_hash save! if save end
delete(name, save=true)
click to toggle source
# File lib/canals/repository.rb, line 38 def delete(name, save=true) @repo[TUNNELS].delete(name) save! if save end
each(&block)
click to toggle source
# File lib/canals/repository.rb, line 22 def each(&block) @repo[TUNNELS].map{ |n, r| Canals::CanalOptions.new(r) }.each(&block) end
empty?()
click to toggle source
# File lib/canals/repository.rb, line 26 def empty? @repo[TUNNELS].empty? end
environment(name=nil)
click to toggle source
# File lib/canals/repository.rb, line 69 def environment(name=nil) if name.nil? args = @repo[ENVIRONMENTS].select{ |n,e| e[:default] }.values[0] else args = @repo[ENVIRONMENTS][name.to_sym] end Canals::Environment.new(args) if !args.nil? end
environments()
click to toggle source
# File lib/canals/repository.rb, line 78 def environments @repo[ENVIRONMENTS].map { |n, e| Canals::Environment.new(e) } end
get(name)
click to toggle source
# File lib/canals/repository.rb, line 43 def get(name) name = name.to_sym return nil if !@repo[:tunnels].has_key? name CanalOptions.new(@repo[:tunnels][name]) end
has?(name)
click to toggle source
# File lib/canals/repository.rb, line 49 def has?(name) return @repo[:tunnels].has_key? name.to_sym end
save!()
click to toggle source
# File lib/canals/repository.rb, line 64 def save! FileUtils.mkdir_p(repo_file.dirname) Canals::Tools::YAML.dump_file(repo_file, @repo) end
Private Instance Methods
load_repository(repository_file)
click to toggle source
# File lib/canals/repository.rb, line 89 def load_repository(repository_file) valid_file = repository_file && repository_file.exist? && !repository_file.size.zero? return { ENVIRONMENTS => {}, TUNNELS => {} } if !valid_file return Canals::Tools::YAML.load_file(repository_file) end
repo_file()
click to toggle source
# File lib/canals/repository.rb, line 84 def repo_file file = File.join(Dir.home, '.canals/repository') Pathname.new(file) end