Class: HeyDan::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/heydan/base.rb

Class Method Summary collapse

Class Method Details

.create_foldersObject



12
13
14
15
16
17
# File 'lib/heydan/base.rb', line 12

def create_folders
  HeyDan::folders.keys.each do |folder|
    path = HeyDan::folders[folder]
    FileUtils.mkdir_p path if !Dir.exist?(path)
  end
end

.create_settings_file(dir) ⇒ Object



51
52
53
54
55
56
# File 'lib/heydan/base.rb', line 51

def create_settings_file(dir)
  setup_dir(dir)
  setup_folders(dir)
  settings_file = File.join(dir, 'heydan_settings.yml')
  save_settings(settings_file)
end

.load_or_create_settings(dir = nil) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
# File 'lib/heydan/base.rb', line 19

def load_or_create_settings(dir=nil)
  dir ||= Dir.pwd
  HeyDan.settings_file ||= if ENV['HEYDAN_SETTINGS']
    ENV['HEYDAN_SETTINGS']
  else
    File.join(dir, 'heydan_settings.yml')
  end
  return load_settings_file(HeyDan.settings_file) if File.exist?(HeyDan.settings_file)
  create_settings_file(dir)
  HeyDan.settings_file
end

.load_settings_file(settings_file) ⇒ Object



31
32
33
34
35
36
37
38
# File 'lib/heydan/base.rb', line 31

def load_settings_file(settings_file)
  settings = YAML.load(File.read(settings_file))
  settings.keys.each do |key|
    method = key.to_s + '='
    HeyDan.send(method, settings[key]) if HeyDan.respond_to?(method)
  end
  HeyDan.settings_file = settings_file
end

.save_settings(settings_file = nil) ⇒ Object



40
41
42
43
44
45
46
47
48
49
# File 'lib/heydan/base.rb', line 40

def save_settings(settings_file=nil)
  settings_file ||= HeyDan.settings_file
  File.open(settings_file, 'w') do |f|
    f.write({help: HeyDan.help, 
      folders: HeyDan.folders, 
      sources: HeyDan.sources,
      elasticsearch: {url: 'http://localhost:9200'}
    }.to_yaml)
  end
end

.setup(dir = nil) ⇒ Object



5
6
7
8
9
10
# File 'lib/heydan/base.rb', line 5

def setup(dir=nil)
  setup_dir(dir) if dir
  dir ||= Dir.pwd
  load_or_create_settings dir
  create_folders
end

.setup_dir(dir) ⇒ Object



58
59
60
61
62
# File 'lib/heydan/base.rb', line 58

def setup_dir(dir)
  if !Dir.exist?(dir)
    FileUtils.mkdir_p(dir)
  end
end

.setup_folders(dir) ⇒ Object



64
65
66
67
68
# File 'lib/heydan/base.rb', line 64

def setup_folders(dir)
  HeyDan::folders.keys.each do |folder| 
    HeyDan::folders[folder] = File.join(dir,HeyDan::folders[folder])
  end
end