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(hash) ⇒ Config

Returns a new instance of Config.



221
222
223
224
225
226
# File 'lib/dgit/core.rb', line 221

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

Instance Attribute Details

#analysesObject (readonly)

Returns the value of attribute analyses.



219
220
221
# File 'lib/dgit/core.rb', line 219

def analyses
  @analyses
end

#joinsObject (readonly)

Returns the value of attribute joins.



219
220
221
# File 'lib/dgit/core.rb', line 219

def joins
  @joins
end

Class Method Details

.empty_configObject



270
271
272
# File 'lib/dgit/core.rb', line 270

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

Instance Method Details

#add_analysis(name) ⇒ Object



232
233
234
235
# File 'lib/dgit/core.rb', line 232

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

#add_join(name) ⇒ Object



251
252
253
254
# File 'lib/dgit/core.rb', line 251

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

#del_analysis(name) ⇒ Object



241
242
243
244
# File 'lib/dgit/core.rb', line 241

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

#del_join(name) ⇒ Object



260
261
262
263
# File 'lib/dgit/core.rb', line 260

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

#get_analyses(*names) ⇒ Object



246
247
248
249
# File 'lib/dgit/core.rb', line 246

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

#get_joins(*names) ⇒ Object



265
266
267
268
# File 'lib/dgit/core.rb', line 265

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

#load_analysis(name) ⇒ Object



237
238
239
# File 'lib/dgit/core.rb', line 237

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

#load_join(name) ⇒ Object



256
257
258
# File 'lib/dgit/core.rb', line 256

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

#to_hashObject



228
229
230
# File 'lib/dgit/core.rb', line 228

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