Class: EasyInstaller::Config

Inherits:
Object
  • Object
show all
Defined in:
lib/easy_installer/config.rb

Defined Under Namespace

Classes: Validator

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config_yaml) ⇒ Config

Returns a new instance of Config.



43
44
45
46
47
48
49
# File 'lib/easy_installer/config.rb', line 43

def initialize(config_yaml)
  if config_yaml.class == String
    config_yaml = File.open(config_yaml)
  end
  @config = YAML::load config_yaml
  @installer_files_path = File.split(config_yaml.path)[0]
end

Instance Attribute Details

#methodObject

Returns the value of attribute method.



40
41
42
# File 'lib/easy_installer/config.rb', line 40

def method
  @method
end

Instance Method Details

#[](arg) ⇒ Object



65
66
67
# File 'lib/easy_installer/config.rb', line 65

def [](arg)
  @config[arg]
end

#after_install_codeObject



104
105
106
107
108
109
110
# File 'lib/easy_installer/config.rb', line 104

def after_install_code
      if(File.exists?(File.join(@installer_files_path, "additional/after_install.rb")))
File.read(File.join(@installer_files_path, "additional/after_install.rb"))
      else
""
      end
end

#create_input_for_method(method) ⇒ Object



120
121
122
123
124
125
# File 'lib/easy_installer/config.rb', line 120

def create_input_for_method(method)
$user_input = Hash.new
required_input_for_method(method).each do |input|
$user_input[input] = Input::create_by_name(input)
end
end

#has_key?(key) ⇒ Boolean

Returns:



127
128
129
# File 'lib/easy_installer/config.rb', line 127

def has_key?(key)
 @config.has_key?(key)
end

#install_code(method) ⇒ Object



92
93
94
95
96
97
98
# File 'lib/easy_installer/config.rb', line 92

def install_code(method)
  if File.exist?(File.join(@installer_files_path, "installers/#{method}.rb"))
    return File::open(File.join(@installer_files_path, "installers/#{method}.rb")).read
  else
    return File::open(File.join(@installer_files_path, "installers/global.rb")).read
  end
end

#required_inputs_for_method(method) ⇒ Object



69
70
71
# File 'lib/easy_installer/config.rb', line 69

def required_inputs_for_method(method)
    required_inputs_for_method_as_tree(method).flatern_to_array
end

#required_inputs_for_method_as_tree(method) ⇒ Object



73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
# File 'lib/easy_installer/config.rb', line 73

def required_inputs_for_method_as_tree(method)
  required_input = Hash.new
  lang_file = File.open(self.path_to_gem+"/lib/easy_installer/modules/"+@config["lang"]+"/standart_input.yml")
  method_file = File.open(self.path_to_gem+"/lib/easy_installer/methods/#{method}/standart_input.yml")
  method_input = YAML::load method_file
  lang_input = YAML::load lang_file

  required_input['lang'] = lang_input[@config["lang"]] if lang_input[@config["lang"]]
  required_input['method'] = method_input if method_input
  required_input.merge! @config["additonal_inputs"] if  @config["additonal_inputs"]
  if @config["submodules"]
    @config["submodules"].each do |submodule|
      required_input[submodule] = lang_input[submodule] if lang_input[submodule]
    end
  end

  required_input
end

#return_callback_codeObject



112
113
114
115
116
117
118
# File 'lib/easy_installer/config.rb', line 112

def return_callback_code
      if(File.exists?(File.join(@installer_files_path, "additional/return_callback.rb")))
File.read(File.join(@installer_files_path, "additional/return_callback.rb"))  
      else
""
      end
end

#to_hashObject



61
62
63
# File 'lib/easy_installer/config.rb', line 61

def to_hash
  @config
end

#valid?Boolean

Returns:



51
52
53
54
55
# File 'lib/easy_installer/config.rb', line 51

def valid?
  raise "No InstallerConfig.File " if !@config
  @validator = Config::Validator.new(self)
  @validator.check
end

#validating_code(method) ⇒ Object



100
101
102
# File 'lib/easy_installer/config.rb', line 100

def validating_code(method)
  File.read(File.join(@installer_files_path, "validators/#{method}.rb"))
end

#validatorObject



57
58
59
# File 'lib/easy_installer/config.rb', line 57

def validator
 @validator
end