Class: Aka::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/aka/configuration.rb

Defined Under Namespace

Modules: Link, Shortcut

Constant Summary collapse

FORMAT =
'1'

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfiguration

Returns a new instance of Configuration.



46
47
48
49
50
51
52
53
54
55
# File 'lib/aka/configuration.rb', line 46

def initialize
  @configuration ||= begin
    if File.exist?(aka_yml)
      YAML::load_file(aka_yml)
    else
      {}
    end
  end
  @configuration[:shortcuts] ||= {}
end

Instance Attribute Details

#configurationObject (readonly)

Returns the value of attribute configuration.



5
6
7
# File 'lib/aka/configuration.rb', line 5

def configuration
  @configuration
end

Instance Method Details

#aka_ymlObject



90
91
92
# File 'lib/aka/configuration.rb', line 90

def aka_yml
  ENV['AKA'] || File.expand_path('~/.aka.yml')
end


78
79
80
# File 'lib/aka/configuration.rb', line 78

def links
  @links ||= Links.new(@configuration[:links] || {})
end

#saveObject



65
66
67
68
69
70
71
72
73
74
75
76
# File 'lib/aka/configuration.rb', line 65

def save
  current = {
    :version => version || FORMAT,
    :shortcuts => shortcuts.all
  }

  current[:links] = links.all if links.any?

  File.open(aka_yml, 'w+') do |f|
    f.write current.to_yaml
  end
end

#shortcutsObject



57
58
59
# File 'lib/aka/configuration.rb', line 57

def shortcuts
  @shortcuts ||= Shortcuts.new(@configuration[:shortcuts])
end

#upgradeObject



82
83
84
85
86
87
88
# File 'lib/aka/configuration.rb', line 82

def upgrade
  if !version
    Upgrader::FromV0ToV1.run(aka_yml)
  elsif version == '1'
    Upgrader::FromV1ToV2.run(aka_yml)
  end
end

#versionObject



61
62
63
# File 'lib/aka/configuration.rb', line 61

def version
  @configuration[:version]
end