Class: DaphneUtil::Tools::Store

Inherits:
Object
  • Object
show all
Defined in:
lib/daphne_util/tools.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeStore

Returns a new instance of Store.



21
22
23
24
# File 'lib/daphne_util/tools.rb', line 21

def initialize
  @loaded = PStore.new(self.class.file_location, true)
  save
end

Instance Attribute Details

#envObject

Returns the value of attribute env.



11
12
13
# File 'lib/daphne_util/tools.rb', line 11

def env
  @env
end

#loadedObject (readonly)

Returns the value of attribute loaded.



11
12
13
# File 'lib/daphne_util/tools.rb', line 11

def loaded
  @loaded
end

Class Method Details

.default_versionObject



17
18
19
# File 'lib/daphne_util/tools.rb', line 17

def self.default_version
  "1"
end

.file_locationObject



13
14
15
# File 'lib/daphne_util/tools.rb', line 13

def self.file_location
  "#{File.expand_path('~')}/.daphne"
end

Instance Method Details

#add_app(name, *seed) ⇒ Object



106
107
108
109
110
111
112
113
114
115
116
# File 'lib/daphne_util/tools.rb', line 106

def add_app(name, *seed)
  new_app = {name.to_sym => seed}
  loaded.transaction do
    old_apps = loaded[:envs][env][:apps]
    new_apps = old_apps.merge(new_app)
    loaded[:envs][env][:apps] = new_apps
  end

  save
  loaded.transaction {loaded[:envs][env][:apps]} 
end

#add_env(name, x_url) ⇒ Object



35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/daphne_util/tools.rb', line 35

def add_env(name, x_url)
  new_env = {
      url: x_url,
      version: self.class.default_version,
      apps: {}
  }

  loaded.transaction { loaded[:envs][name.to_sym] = new_env }
  save
  self.env = name.to_sym
  loaded.transaction { loaded[:envs][name.to_sym] }
end

#app_keysObject



133
134
135
# File 'lib/daphne_util/tools.rb', line 133

def app_keys
  apps.keys
end

#appsObject



129
130
131
# File 'lib/daphne_util/tools.rb', line 129

def apps
  loaded.transaction { loaded[:envs][env][:apps]}
end

#rm_app(name) ⇒ Object



118
119
120
121
122
123
124
125
126
127
# File 'lib/daphne_util/tools.rb', line 118

def rm_app(name)
  loaded.transaction do
    old_env = loaded[:envs][env]
    new_env = old_env[:apps].delete(name.to_sym)
  end

  save

  loaded.transaction { loaded[:envs][name.to_sym] }
end

#rm_env(name) ⇒ Object



48
49
50
51
52
53
54
55
56
# File 'lib/daphne_util/tools.rb', line 48

def rm_env(name)
  loaded.transaction do 

    loaded[:envs].delete(name.to_sym)
    loaded[:env] = nil if loaded[:envs][env].nil?
  end
  save
  loaded.transaction { loaded[:envs][env] }
end

#tokenObject



74
75
76
# File 'lib/daphne_util/tools.rb', line 74

def token
  loaded.transaction { loaded[:envs][env][:token] }
end

#token=(x_token) ⇒ Object



78
79
80
81
82
83
84
85
86
87
88
# File 'lib/daphne_util/tools.rb', line 78

def token=(x_token)
  loaded.transaction do
    old_env = loaded[:envs][env]
    new_env = old_env.merge(token: x_token)

    loaded[:envs][env] = new_env
  end

  save
  loaded.transaction {loaded[:envs][env][:token]}
end

#urlObject



58
59
60
# File 'lib/daphne_util/tools.rb', line 58

def url
  loaded.transaction { loaded[:envs][env][:url] }
end

#url=(x_url) ⇒ Object



62
63
64
65
66
67
68
69
70
71
72
# File 'lib/daphne_util/tools.rb', line 62

def url=(x_url)
  loaded.transaction do
    old_env = loaded[:envs][env]
    new_env = old_env.merge(url: x_url)

    loaded[:envs][env] = new_env
  end

  save
  loaded.transaction { loaded[:envs][env][:url] } 
end

#versionObject



90
91
92
# File 'lib/daphne_util/tools.rb', line 90

def version
  loaded.transaction { loaded[:envs][env][:version] }
end

#version=(x_version) ⇒ Object



94
95
96
97
98
99
100
101
102
103
104
# File 'lib/daphne_util/tools.rb', line 94

def version=(x_version)
  loaded.transaction do
    old_env = loaded[:envs][env]
    new_env = old_env.merge(version: (x_version.scan(/\d+/).first || self.class.default_version))

    loaded[:envs][env] = new_env
  end

  save
  loaded.transaction {loaded[:envs][env][:version]}
end