Class: Diggit::Config

Inherits:
Object
  • Object
show all
Defined in:
lib/dgit/core.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config_hash) ⇒ Config

Returns a new instance of Config.



150
151
152
153
154
155
# File 'lib/dgit/core.rb', line 150

def initialize(config_hash)
  @analyses = []
  @joins = []
  config_hash[:analyses].each { |a| load_analysis(a) }
  config_hash[:joins].each { |j| load_join(j) }
end

Instance Attribute Details

#analysesObject (readonly)

Returns the value of attribute analyses.



148
149
150
# File 'lib/dgit/core.rb', line 148

def analyses
  @analyses
end

#joinsObject (readonly)

Returns the value of attribute joins.



148
149
150
# File 'lib/dgit/core.rb', line 148

def joins
  @joins
end

Class Method Details

.empty_configObject



209
210
211
# File 'lib/dgit/core.rb', line 209

def self.empty_config
  { analyses: [], joins: [] }
end

Instance Method Details

#add_analysis(name) ⇒ Object



161
162
163
164
# File 'lib/dgit/core.rb', line 161

def add_analysis(name)
  load_analysis(name) unless @analyses.map(&:simple_name).include?(name)
  Dig.it.save_config
end

#add_join(name) ⇒ Object



185
186
187
188
# File 'lib/dgit/core.rb', line 185

def add_join(name)
  load_join(name) unless @joins.map(&:simple_name).include?(name)
  Dig.it.save_config
end

#del_all_analysesObject



175
176
177
178
# File 'lib/dgit/core.rb', line 175

def del_all_analyses
  @analyses = []
  Dig.it.save_config
end

#del_all_joinsObject



199
200
201
202
# File 'lib/dgit/core.rb', line 199

def del_all_joins
  @joins = []
  Dig.it.save_config
end

#del_analysis(name) ⇒ Object



170
171
172
173
# File 'lib/dgit/core.rb', line 170

def del_analysis(name)
  @analyses.delete_if { |a| a.simple_name == name }
  Dig.it.save_config
end

#del_join(name) ⇒ Object



194
195
196
197
# File 'lib/dgit/core.rb', line 194

def del_join(name)
  @joins.delete_if { |j| j.simple_name == name }
  Dig.it.save_config
end

#get_analyses(*names) ⇒ Object



180
181
182
183
# File 'lib/dgit/core.rb', line 180

def get_analyses(*names)
  return analyses if names.empty?
  analyses.select { |a| names.include?(a.simple_name) }
end

#get_joins(*names) ⇒ Object



204
205
206
207
# File 'lib/dgit/core.rb', line 204

def get_joins(*names)
  return joins if names.empty?
  joins.select { |j| joins.include?(j.simple_name) }
end

#load_analysis(name) ⇒ Object



166
167
168
# File 'lib/dgit/core.rb', line 166

def load_analysis(name)
  @analyses << Dig.it.plugin_loader.load_plugin(name, :analysis)
end

#load_join(name) ⇒ Object



190
191
192
# File 'lib/dgit/core.rb', line 190

def load_join(name)
  @joins << Dig.it.plugin_loader.load_plugin(name, :join)
end

#to_hashObject



157
158
159
# File 'lib/dgit/core.rb', line 157

def to_hash
  { analyses: @analyses.map(&:simple_name), joins: @joins.map(&:simple_name) }
end