Split up in multiple files
[amazing.git] / lib / amazing / widgets / memory.rb
blob55df5b34f1ffbe9122ebae62177f4c58beeab128
1 # Copyright (C) 2008 Dag Odenhall <dag.odenhall@gmail.com>
2 # Licensed under the Academic Free License version 3.0
4 require 'amazing/widget'
5 require 'amazing/proc_file'
7 module Amazing
8   module Widgets
9     class Memory < Widget
10       description "Various memory related data"
11       field :total, "Total kilobytes of memory", 0
12       field :free, "Free kilobytes of memory", 0
13       field :buffers, nil, 0 # TODO: description
14       field :cached, nil, 0 # TODO: description
15       field :usage, "Percentage of used memory", 0
16       default "@usage"
18       init do
19         meminfo = ProcFile.new("meminfo")[0]
20         @total = meminfo["MemTotal"].to_i
21         @free = meminfo["MemFree"].to_i
22         @buffers = meminfo["Buffers"].to_i
23         @cached = meminfo["Cached"].to_i
24         @usage = ((@total - @free - @cached - @buffers) * 100) / @total.to_f
25       end
26     end
27   end
28 end