class DEIS::Config
Attributes
environment[RW]
verbose[RW]
Public Class Methods
new(options)
click to toggle source
# File lib/rdeis/config.rb, line 6 def initialize(options) @repo = DEIS::Git.name @verbose = options[:verbose] @environment = options[:environment] @set_selector = self.class.to_s.downcase.gsub("deis::", "") @remove_selector = "removed_"+@set_selector end
Public Instance Methods
add(vars)
click to toggle source
# File lib/rdeis/config.rb, line 45 def add(vars) self.set(vars) end
export(vars)
click to toggle source
vars should just be the file name
# File lib/rdeis/config.rb, line 68 def export(vars) raw = DEIS::Storage.load(@repo, @environment) if ! vars.nil? && vars.length > 0 && (file = vars.first) File.open(file, "w"){|f| f.write( raw.to_json ) } say "Data for #{@repo} -> #{@environment} written to #{file}", :green else say "Please specify a file path to export to", :red end end
import(vars)
click to toggle source
import from a file
# File lib/rdeis/config.rb, line 79 def import(vars) if !vars.nil? && vars.length > 0 && (file = vars.first) && (content = File.open(file, "r"){ |f| f.read } ) content = JSON.parse(content) DEIS::Storage.save(@repo, @environment, content) say "Data imported from #{file} into #{@repo} -> #{@environment}", :green else say "Please specify a valid file", :red end end
list(vars=nil, show=true)
click to toggle source
output data using thors print_table & say
# File lib/rdeis/config.rb, line 15 def list(vars=nil, show=true) data = DEIS::Storage.get(@repo, @environment, @set_selector) # if vars have been set then we filter the config data to matching keys if ! vars.nil? && vars.length > 0 keys = [] DEIS::Parse.var_array(vars).each { |f| keys.push(f[:k]) } data = data.select!{ |k,v| keys.include? (k) } end self.results("#{@set_selector} for #{@repo} -> #{@environment}", "No data found" ,data, :green) if ! show.nil? to_remove = DEIS::Storage.get(@repo, @environment, @remove_selector) self.results("\n\n#{@set_selector} to be removed", nil, to_remove, :blue) if ! show.nil? # return the data set return data end
remove(vars)
click to toggle source
# File lib/rdeis/config.rb, line 63 def remove(vars) self.unset(vars) end
results(message, error_message, data, colour)
click to toggle source
# File lib/rdeis/config.rb, line 89 def results(message, error_message, data, colour) if ! data.nil? && data.length > 0 say message, colour say "----------------------------------", colour print_table data say "----------------------------------", colour elsif ! error_message.nil? say message, colour say error_message, :red end end
set(vars)
click to toggle source
set config vars for the repo
# File lib/rdeis/config.rb, line 32 def set(vars) if vars.nil? || vars.length == 0 say "Please provide a value", :red else set = {} DEIS::Parse.var_array(vars).each do |var| set[var[:k]] = var[:v] DEIS::Storage.subset(@repo, @environment, @set_selector, var[:k], var[:v]) end self.results("Setting #{@set_selector} for #{@repo} -> #{@environment}", "Error setting #{@set_selector}", set, :green) end end
unset(vars)
click to toggle source
remove vars
# File lib/rdeis/config.rb, line 50 def unset(vars) if vars.nil? || vars.length == 0 say "Please enter a key to unset", :red else unset = {} DEIS::Parse.var_array(vars).each do |var| unset[var[:k]] = "\u2713" DEIS::Storage.subunset(@repo, @environment, @set_selector, var[:k]) end self.results("Removing #{@set_selector} for #{@repo} -> #{@environment}", "Error removing #{@set_selector}", unset, :green) end end